From 52bab918c4ba712cb1d0925375d6309fa01a1341 Mon Sep 17 00:00:00 2001 From: Jose Luis Carcel <jose.carcel@atos.net> Date: Wed, 26 Jul 2023 07:42:54 +0000 Subject: [PATCH 001/213] Update file context.proto --- proto/context.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/proto/context.proto b/proto/context.proto index 55a80470d..87680a5b9 100644 --- a/proto/context.proto +++ b/proto/context.proto @@ -448,9 +448,10 @@ message EndPointId { message EndPoint { EndPointId endpoint_id = 1; string name = 2; - string endpoint_type = 3; + string endpoint_type = 3; // == 'smartnics' repeated kpi_sample_types.KpiSampleType kpi_sample_types = 4; Location endpoint_location = 5; + map<string, google.Any> capabilities = 6; } message EndPointName { -- GitLab From ab9a0dcd86da5bcd9e2230b9b9bbd18b3c696797 Mon Sep 17 00:00:00 2001 From: Jose Luis Carcel <jose.carcel@atos.net> Date: Wed, 26 Jul 2023 08:18:08 +0000 Subject: [PATCH 002/213] Create Context Smartnics --- proto/context-ext-smartnics.proto | 100 ++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 proto/context-ext-smartnics.proto diff --git a/proto/context-ext-smartnics.proto b/proto/context-ext-smartnics.proto new file mode 100644 index 000000000..f4783da73 --- /dev/null +++ b/proto/context-ext-smartnics.proto @@ -0,0 +1,100 @@ +// 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. + +// References: +// https://www.nvidia.com/content/dam/en-zz/Solutions/data-center/products/a30-gpu/pdf/a30-datasheet.pdf +// https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/documents/datasheet-nvidia-bluefield-2-dpu.pdf +// https://www.nvidia.com/content/dam/en-zz/Solutions/networking/ethernet-adapters/connectX-6-dx-datasheet.pdf +// converged accel: https://www.nvidia.com/content/dam/en-zz/Solutions/gtcf21/converged-accelerator/pdf/datasheet.pdf + +// bluefield-2 = connectX-6 + DPUs +// conv_accel = bluefield-2 + GPU + +syntax = "proto3"; +package context-ext-smartnics; + +import context; +import "kpi_sample_types.proto"; + +message SmartnicsCapabilities { + string vendor = 1; + string model = 2; + string serial_number = 3; + repeated Transceiver transceivers = 4; + repeated DPU dpus = 5; + repeated GPU gpus = 6; +} + +enum TransceiverPortTypeEnum { + TRANSCEIVER_PORT_TYPE_UNDEFINED = 0; + TRANSCEIVER_PORT_TYPE_SFP = 1; + TRANSCEIVER_PORT_TYPE_SFP_PLUS = 2; + TRANSCEIVER_PORT_TYPE_QSFP_28 = 3; + TRANSCEIVER_PORT_TYPE_QSFP_56 = 4; + TRANSCEIVER_PORT_TYPE_QSFP_DD = 5; +} + +enum TransceiverPortSpeedEnum { + TRANSCEIVER_PORT_SPEED_UNDEFINED = 0; + TRANSCEIVER_PORT_SPEED_1G = 1; + TRANSCEIVER_PORT_SPEED_10G = 2; + TRANSCEIVER_PORT_SPEED_25G = 3; + TRANSCEIVER_PORT_SPEED_40G = 4; + TRANSCEIVER_PORT_SPEED_100G = 5; + TRANSCEIVER_PORT_SPEED_200G = 6; + TRANSCEIVER_PORT_SPEED_400G = 7; + TRANSCEIVER_PORT_SPEED_800G = 8; +} + +message Transceiver { + TransceiverPortTypeEnum port_type = 1; + repeated TransceiverPortSpeedEnum port_speeds = 2; + repeated kpi_sample_types.KpiSampleType kpi_sample_types = 3; +} + +message DPU { + uint32 num_cores = 1; + repeated DPU_Core cores = 2; + repeated DPU_Memory memories = 3; +} + +enum DpuCoreArchitectureEnum { + DPU_CORE_ARCHITECTURE_UNDEFINED = 0; + DPU_CORE_ARCHITECTURE_32BIT = 1; + DPU_CORE_ARCHITECTURE_64BIT = 2; +} + +message DPU_Core { + string model = 1; // Armv8 A72 + enum DpuCoreArchitectureEnum architecture = 2; // 64-bit + // define cache: + // -- 1MB L2 cache per 2 cores + // -- 6MB L3 cache with plurality of eviction policies +} + +message DPU_Memory { + // define RAM and eMMC + // -- DDR4 DIMM Support + // -- > Single DDR4 DRAM controller + // -- > 16GB / 32GB of on-board DDR4 + // -- > ECC error protection support +} + +message GPU { + enum Architecture architecture = 1; + enum ComputeCapabilities compute_capabilities = 2; + uint64 memory_size_mb = 3; + uint32 num_cores = 4; + // complete with specs of GPU +} -- GitLab From baf109068617e6002665b0a3b07888c160e37da9 Mon Sep 17 00:00:00 2001 From: Jose Luis Carcel <jose.carcel@atos.net> Date: Wed, 26 Jul 2023 08:58:00 +0000 Subject: [PATCH 003/213] Add new directory --- src/device/service/drivers/smartnic_probes/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/device/service/drivers/smartnic_probes/.gitkeep diff --git a/src/device/service/drivers/smartnic_probes/.gitkeep b/src/device/service/drivers/smartnic_probes/.gitkeep new file mode 100644 index 000000000..e69de29bb -- GitLab From 1e17fbc1da0fb88c5dead7d83de277ea118d7323 Mon Sep 17 00:00:00 2001 From: Jose Luis Carcel <jose.carcel@atos.net> Date: Wed, 26 Jul 2023 08:58:54 +0000 Subject: [PATCH 004/213] Added Probes-Agent YANG --- .../drivers/smartnic_probes/probes-agent.yang | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/device/service/drivers/smartnic_probes/probes-agent.yang diff --git a/src/device/service/drivers/smartnic_probes/probes-agent.yang b/src/device/service/drivers/smartnic_probes/probes-agent.yang new file mode 100644 index 000000000..71e1337c4 --- /dev/null +++ b/src/device/service/drivers/smartnic_probes/probes-agent.yang @@ -0,0 +1,44 @@ +probes-agent.yang + +# augment de openconfig probes + +augment /probes/probe { + leaf probe_type { + type enumeration { + enum plain_traffic; + enum morpheus_pipeline; + } + } +} + +augment /probes/probe/tests/test/config { + uses morpheus_pipelines; +} + +grouping morpheus_pipelines { + list morpheus_pipelines { + key name; + uses morpheus_pipeline; + } +} + +grouping morpheus_pipeline { + leaf name { type string; } + leaf num_threads { type uint16; } + // other settings + // https://github.com/nv-morpheus/Morpheus/blob/branch-23.11/examples/abp_pcap_detection/run.py + + list stages { + key name; + uses morpheus_pipeline_stage; + } +} + +grouping morpheus_pipeline_stage { + leaf name { type string; } + // enum stage type + // stage parameters + // soportar custom stages + // https://github.com/nv-morpheus/Morpheus/blob/branch-23.11/examples/abp_pcap_detection/run.py + +} -- GitLab From af997d4865cd625ae2ed9feb06f0f35a84325df6 Mon Sep 17 00:00:00 2001 From: Ricard Vilalta <ricard.vilalta@cttc.es> Date: Thu, 27 Jul 2023 07:57:31 +0000 Subject: [PATCH 005/213] Add new directory --- .../drivers/smartnic_probes/smartnics_probes_agent/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/device/service/drivers/smartnic_probes/smartnics_probes_agent/.gitkeep diff --git a/src/device/service/drivers/smartnic_probes/smartnics_probes_agent/.gitkeep b/src/device/service/drivers/smartnic_probes/smartnics_probes_agent/.gitkeep new file mode 100644 index 000000000..e69de29bb -- GitLab From e6505c21208113eff2b8e5dbe7fed0b8ed2f1f7e Mon Sep 17 00:00:00 2001 From: carcel <jose.carcel@atos.net> Date: Thu, 3 Aug 2023 12:14:12 +0200 Subject: [PATCH 006/213] Update Context SmartNICs --- proto/context-ext-smartnics.proto | 56 ++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/proto/context-ext-smartnics.proto b/proto/context-ext-smartnics.proto index f4783da73..2a3fe6138 100644 --- a/proto/context-ext-smartnics.proto +++ b/proto/context-ext-smartnics.proto @@ -13,8 +13,6 @@ // limitations under the License. // References: -// https://www.nvidia.com/content/dam/en-zz/Solutions/data-center/products/a30-gpu/pdf/a30-datasheet.pdf -// https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/documents/datasheet-nvidia-bluefield-2-dpu.pdf // https://www.nvidia.com/content/dam/en-zz/Solutions/networking/ethernet-adapters/connectX-6-dx-datasheet.pdf // converged accel: https://www.nvidia.com/content/dam/en-zz/Solutions/gtcf21/converged-accelerator/pdf/datasheet.pdf @@ -77,24 +75,50 @@ enum DpuCoreArchitectureEnum { message DPU_Core { string model = 1; // Armv8 A72 - enum DpuCoreArchitectureEnum architecture = 2; // 64-bit - // define cache: - // -- 1MB L2 cache per 2 cores - // -- 6MB L3 cache with plurality of eviction policies + enum DpuCoreArchitectureEnum architecture = 2; + uint64 l2_cache_size_mb = 3; + uint64 l3_cache_size_mb = 4; } message DPU_Memory { - // define RAM and eMMC - // -- DDR4 DIMM Support - // -- > Single DDR4 DRAM controller - // -- > 16GB / 32GB of on-board DDR4 - // -- > ECC error protection support + string RamMemoryType = 1; //On-Board DDR4 + string eMMCMemoryType = 2; //eMMC + enum DpuRamMemorySizeGB RamMemorySizeGB = 3; + enum DpueMMCMemorySizeGB eMMCMemorySizeGB = 4; +} + +enum DpuRamMemorySizeGB { + DPU_MEMORY_DDR4_RAM_UNDEFINED = 0; + DPU_MEMORY_DDR4_RAM_16GB = 1; + DPU_MEMORY_DDR4_RAM_32GB = 2; +} + +enum DpueMMCMemorySizeGB { + DPU_MEMORY_eMMC_UNDEFINED = 0; + DPU_MEMORY_eMMC_32GB = 1; + DPU_MEMORY_eMMC_64GB = 2; + DPU_MEMORY_eMMC_128GB = 3; } message GPU { - enum Architecture architecture = 1; - enum ComputeCapabilities compute_capabilities = 2; - uint64 memory_size_mb = 3; - uint32 num_cores = 4; - // complete with specs of GPU + enum Architecture architecture = 1; //AMPERE? + enum ComputeCapabilities compute_capabilities = 2; //MIG? + uint64 memory_size_gb = 3; //24 GB HBM2 + uint32 num_CUDA_cores = 4; //3804 + uint32 num_Tensor_cores = 5; //224 + uint32 peak_fp_32 = 6; //10.3TF + uint32 peak_fp_64 = 7; //5.2TF + uint32 peak fp_64_tensor_core = 8; //10.3TF +} + +enum Architecture { + ARCH_UNDEFINED = 0; + ARCH_AMPERE = 1; +} + +enum ComputeCapabilities { + MIG_UNDEFINED = 0; + MIG_4_AT_6GB = 1; + MIG_2_AT_12GB = 2; + MIG_1_AT_24GB = 3; } -- GitLab From 6d77d5e611716a23a7a23148167ce3285714dd81 Mon Sep 17 00:00:00 2001 From: carcel <jose.carcel@atos.net> Date: Thu, 3 Aug 2023 12:32:01 +0200 Subject: [PATCH 007/213] Update Context SmartNICs --- proto/context-ext-smartnics.proto | 33 ++++++++++++++++--------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/proto/context-ext-smartnics.proto b/proto/context-ext-smartnics.proto index 2a3fe6138..f54535e7b 100644 --- a/proto/context-ext-smartnics.proto +++ b/proto/context-ext-smartnics.proto @@ -15,14 +15,13 @@ // References: // https://www.nvidia.com/content/dam/en-zz/Solutions/networking/ethernet-adapters/connectX-6-dx-datasheet.pdf // converged accel: https://www.nvidia.com/content/dam/en-zz/Solutions/gtcf21/converged-accelerator/pdf/datasheet.pdf - // bluefield-2 = connectX-6 + DPUs // conv_accel = bluefield-2 + GPU syntax = "proto3"; package context-ext-smartnics; -import context; +import "context"; import "kpi_sample_types.proto"; message SmartnicsCapabilities { @@ -75,7 +74,7 @@ enum DpuCoreArchitectureEnum { message DPU_Core { string model = 1; // Armv8 A72 - enum DpuCoreArchitectureEnum architecture = 2; + DpuCoreArchitectureEnum architecture = 2; uint64 l2_cache_size_mb = 3; uint64 l3_cache_size_mb = 4; } @@ -83,8 +82,8 @@ message DPU_Core { message DPU_Memory { string RamMemoryType = 1; //On-Board DDR4 string eMMCMemoryType = 2; //eMMC - enum DpuRamMemorySizeGB RamMemorySizeGB = 3; - enum DpueMMCMemorySizeGB eMMCMemorySizeGB = 4; + DpuRamMemorySizeGB RamMemorySizeGB = 3; + DpueMMCMemorySizeGB eMMCMemorySizeGB = 4; } enum DpuRamMemorySizeGB { @@ -100,17 +99,6 @@ enum DpueMMCMemorySizeGB { DPU_MEMORY_eMMC_128GB = 3; } -message GPU { - enum Architecture architecture = 1; //AMPERE? - enum ComputeCapabilities compute_capabilities = 2; //MIG? - uint64 memory_size_gb = 3; //24 GB HBM2 - uint32 num_CUDA_cores = 4; //3804 - uint32 num_Tensor_cores = 5; //224 - uint32 peak_fp_32 = 6; //10.3TF - uint32 peak_fp_64 = 7; //5.2TF - uint32 peak fp_64_tensor_core = 8; //10.3TF -} - enum Architecture { ARCH_UNDEFINED = 0; ARCH_AMPERE = 1; @@ -122,3 +110,16 @@ enum ComputeCapabilities { MIG_2_AT_12GB = 2; MIG_1_AT_24GB = 3; } + + +message GPU { + Architecture architecture = 1; //AMPERE? + ComputeCapabilities compute_capabilities = 2; //MIG? + uint64 memory_size_gb = 3; //24 GB HBM2 + uint32 num_CUDA_cores = 4; //3804 + uint32 num_Tensor_cores = 5; //224 + uint32 peak_fp_32 = 6; //10.3TF + uint32 peak_fp_64 = 7; //5.2TF + uint32 peak_fp_64_tensor_core = 8; //10.3TF +} + -- GitLab From 69d1887348454e7ab1aed261b60e3dc7cd9afffb Mon Sep 17 00:00:00 2001 From: carcel <jose.carcel@atos.net> Date: Thu, 21 Sep 2023 16:42:23 +0200 Subject: [PATCH 008/213] SmartNIC, NOS and NS Data Models --- proto/context-ext-smartnics.proto | 31 +++---- proto/nfv_client.proto | 44 +++++++++ .../drivers/smartnic_probes/probes-agent.yang | 89 ++++++++++++++++--- ztp_device.yang | 43 +++++++++ 4 files changed, 180 insertions(+), 27 deletions(-) create mode 100644 proto/nfv_client.proto create mode 100644 ztp_device.yang diff --git a/proto/context-ext-smartnics.proto b/proto/context-ext-smartnics.proto index f54535e7b..953b27e86 100644 --- a/proto/context-ext-smartnics.proto +++ b/proto/context-ext-smartnics.proto @@ -16,7 +16,7 @@ // https://www.nvidia.com/content/dam/en-zz/Solutions/networking/ethernet-adapters/connectX-6-dx-datasheet.pdf // converged accel: https://www.nvidia.com/content/dam/en-zz/Solutions/gtcf21/converged-accelerator/pdf/datasheet.pdf // bluefield-2 = connectX-6 + DPUs -// conv_accel = bluefield-2 + GPU +// conv_accel = bluefield-2 + GPU (A30) syntax = "proto3"; package context-ext-smartnics; @@ -73,15 +73,15 @@ enum DpuCoreArchitectureEnum { } message DPU_Core { - string model = 1; // Armv8 A72 + string model = 1; DpuCoreArchitectureEnum architecture = 2; uint64 l2_cache_size_mb = 3; uint64 l3_cache_size_mb = 4; } message DPU_Memory { - string RamMemoryType = 1; //On-Board DDR4 - string eMMCMemoryType = 2; //eMMC + string RamMemoryType = 1; + string eMMCMemoryType = 2; DpuRamMemorySizeGB RamMemorySizeGB = 3; DpueMMCMemorySizeGB eMMCMemorySizeGB = 4; } @@ -99,27 +99,28 @@ enum DpueMMCMemorySizeGB { DPU_MEMORY_eMMC_128GB = 3; } -enum Architecture { +enum GPUArchitecture { ARCH_UNDEFINED = 0; ARCH_AMPERE = 1; } -enum ComputeCapabilities { +enum GPUComputeCapabilities { MIG_UNDEFINED = 0; - MIG_4_AT_6GB = 1; + MIG_4_AT_6GB = 1; MIG_2_AT_12GB = 2; MIG_1_AT_24GB = 3; } message GPU { - Architecture architecture = 1; //AMPERE? - ComputeCapabilities compute_capabilities = 2; //MIG? - uint64 memory_size_gb = 3; //24 GB HBM2 - uint32 num_CUDA_cores = 4; //3804 - uint32 num_Tensor_cores = 5; //224 - uint32 peak_fp_32 = 6; //10.3TF - uint32 peak_fp_64 = 7; //5.2TF - uint32 peak_fp_64_tensor_core = 8; //10.3TF + string model = 1; + GPUArchitecture architecture = 2; + GPUComputeCapabilities compute_capabilities = 3; + uint64 memory_size_gb = 4; + uint32 num_CUDA_cores = 5; + uint32 num_Tensor_cores = 6; + uint32 peak_fp_32 = 7; + uint32 peak_fp_64 = 8; + uint32 peak_fp_64_tensor_core = 9; } diff --git a/proto/nfv_client.proto b/proto/nfv_client.proto new file mode 100644 index 000000000..d880a394c --- /dev/null +++ b/proto/nfv_client.proto @@ -0,0 +1,44 @@ +// 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. + +syntax = "proto3"; +package nfv_client; + +import "context.proto"; + +message Nsd { + string nsd_name = 1; +} + +message Ns { + string ns_id=1; + string ns_name=2; + string nsd_name=3; + string vim_account=4; +} + +message NsList { + repeated Ns ns = 1; +} + +message NsdList { + repeated Nsd nsd = 1; +} + +service nfv_client { + rpc CreateNs (ns) returns (ns_id) {} // Stable not final + rpc DeleteNs (ns) returns (context.Empty) {} +} + + diff --git a/src/device/service/drivers/smartnic_probes/probes-agent.yang b/src/device/service/drivers/smartnic_probes/probes-agent.yang index 71e1337c4..6029cd204 100644 --- a/src/device/service/drivers/smartnic_probes/probes-agent.yang +++ b/src/device/service/drivers/smartnic_probes/probes-agent.yang @@ -1,8 +1,18 @@ -probes-agent.yang +module probes-agent { -# augment de openconfig probes +namespace "urn:probes-agent"; +prefix "probes-agent"; -augment /probes/probe { +import openconfig-probes { prefix oc-probes; } + +organization "EVIDEN"; +contact "jose.carcel@eviden.com"; +description "Basic example of data model for configuring SmartNICs through Morpheus API"; +revision "2023-08-03" { + description "Basic example of data model for configuring SmartNICs through Morpheus API"; +} + +augment '/oc-probes:probes/oc-probes:probe' { leaf probe_type { type enumeration { enum plain_traffic; @@ -11,7 +21,7 @@ augment /probes/probe { } } -augment /probes/probe/tests/test/config { +augment '/oc-probes:probes/oc-probes:probe/oc-probes:tests/oc-probes:test/oc-probes:config' { uses morpheus_pipelines; } @@ -25,20 +35,75 @@ grouping morpheus_pipelines { grouping morpheus_pipeline { leaf name { type string; } leaf num_threads { type uint16; } - // other settings - // https://github.com/nv-morpheus/Morpheus/blob/branch-23.11/examples/abp_pcap_detection/run.py - + leaf pipeline_batch_size {type uint64; } + leaf model_max_batch_size {type uint64; } + leaf input_file {type string; } + leaf output_file {type string; } + leaf model_fea_length {type uint16; } + leaf model_name {type string; } + leaf iterative {type boolean; } + leaf server_url {type string; } + leaf file_type {type files; } list stages { key name; uses morpheus_pipeline_stage; } } +typedef files { + type enumeration { + enum "auto"; + enum "csv"; + enum "json"; + } +} + +typedef stage { + type enumeration { + enum "FileSourceStage"; + enum "DeserializeStage"; + enum "AbpPcapPreprocessingStage"; + enum "MonitorStage"; + enum "TritonInferenceStage"; + enum "AddClassificationsStage"; + enum "SerializeStage"; + enum "WriteToFileStage"; + } +} + +grouping prob { + leaf value { + type string; + description "probs"; + } +} + +grouping conf { + leaf mode {type string; } + leaf num_threads { type uint16; } + leaf pipeline_batch_size { type uint64; } + leaf model_max_batch_size { type uint64; } + leaf model_fea_length { type uint64; } + list class_labels { + key "value"; + uses prob; } +} + grouping morpheus_pipeline_stage { leaf name { type string; } - // enum stage type - // stage parameters - // soportar custom stages - // https://github.com/nv-morpheus/Morpheus/blob/branch-23.11/examples/abp_pcap_detection/run.py - + leaf stage_type {type stage; } + list configuration {key "mode"; uses conf;} + leaf filename {type string;} + leaf iterative {type boolean;} + leaf file_type {type files;} + leaf filter_null {type boolean;} + leaf descriptions {type string;} + leaf model_name {type string;} + leaf server_url {type string;} + leaf force_convert_inputs {type boolean;} + leaf unit {type string;} + list labels {key "value"; uses prob;} + leaf kwargs {type empty;} + leaf overwrite {type boolean;} } +} \ No newline at end of file diff --git a/ztp_device.yang b/ztp_device.yang new file mode 100644 index 000000000..748bc54c3 --- /dev/null +++ b/ztp_device.yang @@ -0,0 +1,43 @@ +module ztp_device { + + yang-version "1"; + + namespace "urn:ztp_nos"; + prefix "ztp_nos"; + organization "EVIDEN"; + contact "jose.carcel@eviden.com"; + description "Basic example of data model for modelling NOS ZTP Device"; + + revision "2023-08-03" { + description "Basic example of data model for modelling NOS ZTP Device"; + reference ""; + } + + grouping config{ + leaf ztp_device_sw_url{ + type string; + } + leaf config_script_url{ + type string; + } + } + + typedef state { + type enumeration{ + enum "UNDEF"; + enum "INIT_HW"; + enum "INIT_SW"; + enum "CONFIGURED"; + enum "RUNNING"; + enum "UPDATING"; + enum "MIGRATING"; + enum "DELETED"; + } + } + + grouping state { + leaf ztp_device_state { + type state; + } + } +} \ No newline at end of file -- GitLab From 432b8193084f06f381afad5bf2dac269de747d84 Mon Sep 17 00:00:00 2001 From: carcel <jose.carcel@atos.net> Date: Tue, 3 Oct 2023 17:26:37 +0200 Subject: [PATCH 009/213] Update SmartNIC, NOS and NS Data Models --- proto/any.proto | 162 +++++ proto/context.proto | 3 +- ...nics.proto => context_ext_smartnics.proto} | 37 +- proto/nfv_client.proto | 11 +- proto/nos_client.proto | 33 + .../automation/src/ztp-agent/ztp_device.yang | 3 + .../smartnic_probes/ietf-yang-types.yang | 480 +++++++++++++++ .../openconfig-extensions.yang | 206 +++++++ .../openconfig-inet-types.yang | 478 +++++++++++++++ .../openconfig-probes-types.yang | 86 +++ .../smartnic_probes/openconfig-probes.yang | 575 ++++++++++++++++++ .../smartnic_probes/openconfig-types.yang | 471 ++++++++++++++ .../drivers/smartnic_probes/probes-agent.yang | 150 +++-- .../references_probes_libraries.txt | 6 + 14 files changed, 2611 insertions(+), 90 deletions(-) create mode 100644 proto/any.proto rename proto/{context-ext-smartnics.proto => context_ext_smartnics.proto} (79%) create mode 100644 proto/nos_client.proto rename ztp_device.yang => src/automation/src/ztp-agent/ztp_device.yang (91%) create mode 100644 src/device/service/drivers/smartnic_probes/ietf-yang-types.yang create mode 100644 src/device/service/drivers/smartnic_probes/openconfig-extensions.yang create mode 100644 src/device/service/drivers/smartnic_probes/openconfig-inet-types.yang create mode 100644 src/device/service/drivers/smartnic_probes/openconfig-probes-types.yang create mode 100644 src/device/service/drivers/smartnic_probes/openconfig-probes.yang create mode 100644 src/device/service/drivers/smartnic_probes/openconfig-types.yang create mode 100644 src/device/service/drivers/smartnic_probes/references_probes_libraries.txt diff --git a/proto/any.proto b/proto/any.proto new file mode 100644 index 000000000..eff44e509 --- /dev/null +++ b/proto/any.proto @@ -0,0 +1,162 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option go_package = "google.golang.org/protobuf/types/known/anypb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "AnyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// // or ... +// if (any.isSameTypeAs(Foo.getDefaultInstance())) { +// foo = any.unpack(Foo.getDefaultInstance()); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := anypb.New(foo) +// if err != nil { +// ... +// } +// ... +// foo := &pb.Foo{} +// if err := any.UnmarshalTo(foo); err != nil { +// ... +// } +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": <string>, +// "lastName": <string> +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +message Any { + // A URL/resource name that uniquely identifies the type of the serialized + // protocol buffer message. This string must contain at least + // one "/" character. The last segment of the URL's path must represent + // the fully qualified name of the type (as in + // `path/google.protobuf.Duration`). The name should be in a canonical form + // (e.g., leading "." is not accepted). + // + // In practice, teams usually precompile into the binary all types that they + // expect it to use in the context of Any. However, for URLs which use the + // scheme `http`, `https`, or no scheme, one can optionally set up a type + // server that maps type URLs to message definitions as follows: + // + // * If no scheme is provided, `https` is assumed. + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Note: this functionality is not currently available in the official + // protobuf release, and it is not used for type URLs beginning with + // type.googleapis.com. As of May 2023, there are no widely used type server + // implementations and no plans to implement one. + // + // Schemes other than `http`, `https` (or the empty scheme) might be + // used with implementation specific semantics. + // + string type_url = 1; + + // Must be a valid serialized protocol buffer of the above specified type. + bytes value = 2; +} diff --git a/proto/context.proto b/proto/context.proto index 87680a5b9..856d6f71d 100644 --- a/proto/context.proto +++ b/proto/context.proto @@ -15,6 +15,7 @@ syntax = "proto3"; package context; +import "any.proto"; import "acl.proto"; import "kpi_sample_types.proto"; @@ -451,7 +452,7 @@ message EndPoint { string endpoint_type = 3; // == 'smartnics' repeated kpi_sample_types.KpiSampleType kpi_sample_types = 4; Location endpoint_location = 5; - map<string, google.Any> capabilities = 6; + map<string, google.protobuf.Any> capabilities = 6; } message EndPointName { diff --git a/proto/context-ext-smartnics.proto b/proto/context_ext_smartnics.proto similarity index 79% rename from proto/context-ext-smartnics.proto rename to proto/context_ext_smartnics.proto index 953b27e86..fe834b493 100644 --- a/proto/context-ext-smartnics.proto +++ b/proto/context_ext_smartnics.proto @@ -19,9 +19,8 @@ // conv_accel = bluefield-2 + GPU (A30) syntax = "proto3"; -package context-ext-smartnics; +package context_ext_smartnics; -import "context"; import "kpi_sample_types.proto"; message SmartnicsCapabilities { @@ -82,40 +81,14 @@ message DPU_Core { message DPU_Memory { string RamMemoryType = 1; string eMMCMemoryType = 2; - DpuRamMemorySizeGB RamMemorySizeGB = 3; - DpueMMCMemorySizeGB eMMCMemorySizeGB = 4; + uint64 RamMemorySizeGB = 3; + uint64 eMMCMemorySizeGB = 4; } -enum DpuRamMemorySizeGB { - DPU_MEMORY_DDR4_RAM_UNDEFINED = 0; - DPU_MEMORY_DDR4_RAM_16GB = 1; - DPU_MEMORY_DDR4_RAM_32GB = 2; -} - -enum DpueMMCMemorySizeGB { - DPU_MEMORY_eMMC_UNDEFINED = 0; - DPU_MEMORY_eMMC_32GB = 1; - DPU_MEMORY_eMMC_64GB = 2; - DPU_MEMORY_eMMC_128GB = 3; -} - -enum GPUArchitecture { - ARCH_UNDEFINED = 0; - ARCH_AMPERE = 1; -} - -enum GPUComputeCapabilities { - MIG_UNDEFINED = 0; - MIG_4_AT_6GB = 1; - MIG_2_AT_12GB = 2; - MIG_1_AT_24GB = 3; -} - - message GPU { string model = 1; - GPUArchitecture architecture = 2; - GPUComputeCapabilities compute_capabilities = 3; + string architecture = 2; + string compute_capabilities = 3; uint64 memory_size_gb = 4; uint32 num_CUDA_cores = 5; uint32 num_Tensor_cores = 6; diff --git a/proto/nfv_client.proto b/proto/nfv_client.proto index d880a394c..d903e7907 100644 --- a/proto/nfv_client.proto +++ b/proto/nfv_client.proto @@ -19,6 +19,7 @@ import "context.proto"; message Nsd { string nsd_name = 1; + string config_params=2; } message Ns { @@ -26,6 +27,9 @@ message Ns { string ns_name=2; string nsd_name=3; string vim_account=4; + string config_params=5; + string status = 6; + string status_message = 7; } message NsList { @@ -37,8 +41,11 @@ message NsdList { } service nfv_client { - rpc CreateNs (ns) returns (ns_id) {} // Stable not final - rpc DeleteNs (ns) returns (context.Empty) {} + rpc GetNsList (context.Empty) returns (NsList) {} + rpc GetNsdList (context.Empty) returns (NsdList) {} + rpc CreateNs (Ns) returns (Ns) {} + rpc UpdateNs (Ns) returns (Ns) {} + rpc DeleteNs (Ns) returns (context.Empty) {} } diff --git a/proto/nos_client.proto b/proto/nos_client.proto new file mode 100644 index 000000000..e0e35a648 --- /dev/null +++ b/proto/nos_client.proto @@ -0,0 +1,33 @@ +// 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. + +syntax = "proto3"; +package nos_client; + +message NOS_SW { + string ztp_device_sw_url = 1; + bytes ztp_device_sw_file = 2; +} + +message Config_Script { + string config_script_url = 1; + bytes config_script_file = 2; +} + +service nos_client { + rpc GetNOSFile (NOS_SW) returns (NOS_SW) {} + rpc GetConfigScriptFile (Config_Script) returns (Config_Script) {} +} + + diff --git a/ztp_device.yang b/src/automation/src/ztp-agent/ztp_device.yang similarity index 91% rename from ztp_device.yang rename to src/automation/src/ztp-agent/ztp_device.yang index 748bc54c3..f506d6413 100644 --- a/ztp_device.yang +++ b/src/automation/src/ztp-agent/ztp_device.yang @@ -20,6 +20,9 @@ module ztp_device { leaf config_script_url{ type string; } + leaf ip_range { + type string; // check IP regular expression + } } typedef state { diff --git a/src/device/service/drivers/smartnic_probes/ietf-yang-types.yang b/src/device/service/drivers/smartnic_probes/ietf-yang-types.yang new file mode 100644 index 000000000..371a091d1 --- /dev/null +++ b/src/device/service/drivers/smartnic_probes/ietf-yang-types.yang @@ -0,0 +1,480 @@ +module ietf-yang-types { + + namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; + prefix "yang"; + + organization + "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; + + contact + "WG Web: <http://tools.ietf.org/wg/netmod/> + WG List: <mailto:netmod@ietf.org> + + WG Chair: David Kessens + <mailto:david.kessens@nsn.com> + + WG Chair: Juergen Schoenwaelder + <mailto:j.schoenwaelder@jacobs-university.de> + + Editor: Juergen Schoenwaelder + <mailto:j.schoenwaelder@jacobs-university.de>"; + + description + "This module contains a collection of generally useful derived + YANG data types. + + Copyright (c) 2013 IETF Trust and the persons identified as + authors of the code. All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, is permitted pursuant to, and subject + to the license terms contained in, the Simplified BSD License + set forth in Section 4.c of the IETF Trust's Legal Provisions + Relating to IETF Documents + (http://trustee.ietf.org/license-info). + + This version of this YANG module is part of RFC 6991; see + the RFC itself for full legal notices."; + + revision 2013-07-15 { + description + "This revision adds the following new data types: + - yang-identifier + - hex-string + - uuid + - dotted-quad"; + reference + "RFC 6991: Common YANG Data Types"; + } + + revision 2010-09-24 { + description + "Initial revision."; + reference + "RFC 6021: Common YANG Data Types"; + } + + /*** collection of counter and gauge types ***/ + + typedef counter32 { + type uint32; + description + "The counter32 type represents a non-negative integer + that monotonically increases until it reaches a + maximum value of 2^32-1 (4294967295 decimal), when it + wraps around and starts increasing again from zero. + + Counters have no defined 'initial' value, and thus, a + single value of a counter has (in general) no information + content. Discontinuities in the monotonically increasing + value normally occur at re-initialization of the + management system, and at other times as specified in the + description of a schema node using this type. If such + other times can occur, for example, the creation of + a schema node of type counter32 at times other than + re-initialization, then a corresponding schema node + should be defined, with an appropriate type, to indicate + the last discontinuity. + + The counter32 type should not be used for configuration + schema nodes. A default statement SHOULD NOT be used in + combination with the type counter32. + + In the value set and its semantics, this type is equivalent + to the Counter32 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef zero-based-counter32 { + type yang:counter32; + default "0"; + description + "The zero-based-counter32 type represents a counter32 + that has the defined 'initial' value zero. + + A schema node of this type will be set to zero (0) on creation + and will thereafter increase monotonically until it reaches + a maximum value of 2^32-1 (4294967295 decimal), when it + wraps around and starts increasing again from zero. + + Provided that an application discovers a new schema node + of this type within the minimum time to wrap, it can use the + 'initial' value as a delta. It is important for a management + station to be aware of this minimum time and the actual time + between polls, and to discard data if the actual time is too + long or there is no defined minimum time. + + In the value set and its semantics, this type is equivalent + to the ZeroBasedCounter32 textual convention of the SMIv2."; + reference + "RFC 4502: Remote Network Monitoring Management Information + Base Version 2"; + } + + typedef counter64 { + type uint64; + description + "The counter64 type represents a non-negative integer + that monotonically increases until it reaches a + maximum value of 2^64-1 (18446744073709551615 decimal), + when it wraps around and starts increasing again from zero. + + Counters have no defined 'initial' value, and thus, a + single value of a counter has (in general) no information + content. Discontinuities in the monotonically increasing + value normally occur at re-initialization of the + management system, and at other times as specified in the + description of a schema node using this type. If such + other times can occur, for example, the creation of + a schema node of type counter64 at times other than + re-initialization, then a corresponding schema node + should be defined, with an appropriate type, to indicate + the last discontinuity. + + The counter64 type should not be used for configuration + schema nodes. A default statement SHOULD NOT be used in + combination with the type counter64. + + In the value set and its semantics, this type is equivalent + to the Counter64 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef zero-based-counter64 { + type yang:counter64; + default "0"; + description + "The zero-based-counter64 type represents a counter64 that + has the defined 'initial' value zero. + + + + + A schema node of this type will be set to zero (0) on creation + and will thereafter increase monotonically until it reaches + a maximum value of 2^64-1 (18446744073709551615 decimal), + when it wraps around and starts increasing again from zero. + + Provided that an application discovers a new schema node + of this type within the minimum time to wrap, it can use the + 'initial' value as a delta. It is important for a management + station to be aware of this minimum time and the actual time + between polls, and to discard data if the actual time is too + long or there is no defined minimum time. + + In the value set and its semantics, this type is equivalent + to the ZeroBasedCounter64 textual convention of the SMIv2."; + reference + "RFC 2856: Textual Conventions for Additional High Capacity + Data Types"; + } + + typedef gauge32 { + type uint32; + description + "The gauge32 type represents a non-negative integer, which + may increase or decrease, but shall never exceed a maximum + value, nor fall below a minimum value. The maximum value + cannot be greater than 2^32-1 (4294967295 decimal), and + the minimum value cannot be smaller than 0. The value of + a gauge32 has its maximum value whenever the information + being modeled is greater than or equal to its maximum + value, and has its minimum value whenever the information + being modeled is smaller than or equal to its minimum value. + If the information being modeled subsequently decreases + below (increases above) the maximum (minimum) value, the + gauge32 also decreases (increases). + + In the value set and its semantics, this type is equivalent + to the Gauge32 type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef gauge64 { + type uint64; + description + "The gauge64 type represents a non-negative integer, which + may increase or decrease, but shall never exceed a maximum + value, nor fall below a minimum value. The maximum value + cannot be greater than 2^64-1 (18446744073709551615), and + the minimum value cannot be smaller than 0. The value of + a gauge64 has its maximum value whenever the information + being modeled is greater than or equal to its maximum + value, and has its minimum value whenever the information + being modeled is smaller than or equal to its minimum value. + If the information being modeled subsequently decreases + below (increases above) the maximum (minimum) value, the + gauge64 also decreases (increases). + + In the value set and its semantics, this type is equivalent + to the CounterBasedGauge64 SMIv2 textual convention defined + in RFC 2856"; + reference + "RFC 2856: Textual Conventions for Additional High Capacity + Data Types"; + } + + /*** collection of identifier-related types ***/ + + typedef object-identifier { + type string { + pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' + + '(\.(0|([1-9]\d*)))*'; + } + description + "The object-identifier type represents administratively + assigned names in a registration-hierarchical-name tree. + + Values of this type are denoted as a sequence of numerical + non-negative sub-identifier values. Each sub-identifier + value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers + are separated by single dots and without any intermediate + whitespace. + + The ASN.1 standard restricts the value space of the first + sub-identifier to 0, 1, or 2. Furthermore, the value space + of the second sub-identifier is restricted to the range + 0 to 39 if the first sub-identifier is 0 or 1. Finally, + the ASN.1 standard requires that an object identifier + has always at least two sub-identifiers. The pattern + captures these restrictions. + + Although the number of sub-identifiers is not limited, + module designers should realize that there may be + implementations that stick with the SMIv2 limit of 128 + sub-identifiers. + + This type is a superset of the SMIv2 OBJECT IDENTIFIER type + since it is not restricted to 128 sub-identifiers. Hence, + this type SHOULD NOT be used to represent the SMIv2 OBJECT + IDENTIFIER type; the object-identifier-128 type SHOULD be + used instead."; + reference + "ISO9834-1: Information technology -- Open Systems + Interconnection -- Procedures for the operation of OSI + Registration Authorities: General procedures and top + arcs of the ASN.1 Object Identifier tree"; + } + + typedef object-identifier-128 { + type object-identifier { + pattern '\d*(\.\d*){1,127}'; + } + description + "This type represents object-identifiers restricted to 128 + sub-identifiers. + + In the value set and its semantics, this type is equivalent + to the OBJECT IDENTIFIER type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef yang-identifier { + type string { + length "1..max"; + pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; + pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; + } + description + "A YANG identifier string as defined by the 'identifier' + rule in Section 12 of RFC 6020. An identifier must + start with an alphabetic character or an underscore + followed by an arbitrary sequence of alphabetic or + numeric characters, underscores, hyphens, or dots. + + A YANG identifier MUST NOT start with any possible + combination of the lowercase or uppercase character + sequence 'xml'."; + reference + "RFC 6020: YANG - A Data Modeling Language for the Network + Configuration Protocol (NETCONF)"; + } + + /*** collection of types related to date and time***/ + + typedef date-and-time { + type string { + pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' + + '(Z|[\+\-]\d{2}:\d{2})'; + } + description + "The date-and-time type is a profile of the ISO 8601 + standard for representation of dates and times using the + Gregorian calendar. The profile is defined by the + date-time production in Section 5.6 of RFC 3339. + + The date-and-time type is compatible with the dateTime XML + schema type with the following notable exceptions: + + (a) The date-and-time type does not allow negative years. + + (b) The date-and-time time-offset -00:00 indicates an unknown + time zone (see RFC 3339) while -00:00 and +00:00 and Z + all represent the same time zone in dateTime. + + (c) The canonical format (see below) of data-and-time values + differs from the canonical format used by the dateTime XML + schema type, which requires all times to be in UTC using + the time-offset 'Z'. + + This type is not equivalent to the DateAndTime textual + convention of the SMIv2 since RFC 3339 uses a different + separator between full-date and full-time and provides + higher resolution of time-secfrac. + + The canonical format for date-and-time values with a known time + zone uses a numeric time zone offset that is calculated using + the device's configured known offset to UTC time. A change of + the device's offset to UTC time will cause date-and-time values + to change accordingly. Such changes might happen periodically + in case a server follows automatically daylight saving time + (DST) time zone offset changes. The canonical format for + date-and-time values with an unknown time zone (usually + referring to the notion of local time) uses the time-offset + -00:00."; + reference + "RFC 3339: Date and Time on the Internet: Timestamps + RFC 2579: Textual Conventions for SMIv2 + XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; + } + + typedef timeticks { + type uint32; + description + "The timeticks type represents a non-negative integer that + represents the time, modulo 2^32 (4294967296 decimal), in + hundredths of a second between two epochs. When a schema + node is defined that uses this type, the description of + the schema node identifies both of the reference epochs. + + In the value set and its semantics, this type is equivalent + to the TimeTicks type of the SMIv2."; + reference + "RFC 2578: Structure of Management Information Version 2 + (SMIv2)"; + } + + typedef timestamp { + type yang:timeticks; + description + "The timestamp type represents the value of an associated + timeticks schema node at which a specific occurrence + happened. The specific occurrence must be defined in the + description of any schema node defined using this type. When + the specific occurrence occurred prior to the last time the + associated timeticks attribute was zero, then the timestamp + value is zero. Note that this requires all timestamp values + to be reset to zero when the value of the associated timeticks + attribute reaches 497+ days and wraps around to zero. + + The associated timeticks schema node must be specified + in the description of any schema node using this type. + + In the value set and its semantics, this type is equivalent + to the TimeStamp textual convention of the SMIv2."; + reference + "RFC 2579: Textual Conventions for SMIv2"; + } + + /*** collection of generic address types ***/ + + typedef phys-address { + type string { + pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; + } + + + + + description + "Represents media- or physical-level addresses represented + as a sequence octets, each octet represented by two hexadecimal + numbers. Octets are separated by colons. The canonical + representation uses lowercase characters. + + In the value set and its semantics, this type is equivalent + to the PhysAddress textual convention of the SMIv2."; + reference + "RFC 2579: Textual Conventions for SMIv2"; + } + + typedef mac-address { + type string { + pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; + } + description + "The mac-address type represents an IEEE 802 MAC address. + The canonical representation uses lowercase characters. + + In the value set and its semantics, this type is equivalent + to the MacAddress textual convention of the SMIv2."; + reference + "IEEE 802: IEEE Standard for Local and Metropolitan Area + Networks: Overview and Architecture + RFC 2579: Textual Conventions for SMIv2"; + } + + /*** collection of XML-specific types ***/ + + typedef xpath1.0 { + type string; + description + "This type represents an XPATH 1.0 expression. + + When a schema node is defined that uses this type, the + description of the schema node MUST specify the XPath + context in which the XPath expression is evaluated."; + reference + "XPATH: XML Path Language (XPath) Version 1.0"; + } + + /*** collection of string types ***/ + + typedef hex-string { + type string { + pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; + } + description + "A hexadecimal string with octets represented as hex digits + separated by colons. The canonical representation uses + lowercase characters."; + } + + typedef uuid { + type string { + pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; + } + description + "A Universally Unique IDentifier in the string representation + defined in RFC 4122. The canonical representation uses + lowercase characters. + + The following is an example of a UUID in string representation: + f81d4fae-7dec-11d0-a765-00a0c91e6bf6 + "; + reference + "RFC 4122: A Universally Unique IDentifier (UUID) URN + Namespace"; + } + + typedef dotted-quad { + type string { + pattern + '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' + + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; + } + description + "An unsigned 32-bit number expressed in the dotted-quad + notation, i.e., four octets written as decimal numbers + and separated with the '.' (full stop) character."; + } +} diff --git a/src/device/service/drivers/smartnic_probes/openconfig-extensions.yang b/src/device/service/drivers/smartnic_probes/openconfig-extensions.yang new file mode 100644 index 000000000..2e0fd9f07 --- /dev/null +++ b/src/device/service/drivers/smartnic_probes/openconfig-extensions.yang @@ -0,0 +1,206 @@ +module openconfig-extensions { + + yang-version "1"; + + // namespace + namespace "http://openconfig.net/yang/openconfig-ext"; + + prefix "oc-ext"; + + // meta + organization "OpenConfig working group"; + + contact + "OpenConfig working group + www.openconfig.net"; + + description + "This module provides extensions to the YANG language to allow + OpenConfig specific functionality and meta-data to be defined."; + + oc-ext:openconfig-version "0.5.1"; + + revision "2022-10-05" { + description + "Add missing version statement."; + reference "0.5.1"; + } + + revision "2020-06-16" { + description + "Add extension for POSIX pattern statements."; + reference "0.5.0"; + } + + revision "2018-10-17" { + description + "Add extension for regular expression type."; + reference "0.4.0"; + } + + revision "2017-04-11" { + description + "rename password type to 'hashed' and clarify description"; + reference "0.3.0"; + } + + revision "2017-01-29" { + description + "Added extension for annotating encrypted values."; + reference "0.2.0"; + } + + revision "2015-10-09" { + description + "Initial OpenConfig public release"; + reference "0.1.0"; + } + + + // extension statements + extension openconfig-version { + argument "semver" { + yin-element false; + } + description + "The OpenConfig version number for the module. This is + expressed as a semantic version number of the form: + x.y.z + where: + * x corresponds to the major version, + * y corresponds to a minor version, + * z corresponds to a patch version. + This version corresponds to the model file within which it is + defined, and does not cover the whole set of OpenConfig models. + + Individual YANG modules are versioned independently -- the + semantic version is generally incremented only when there is a + change in the corresponding file. Submodules should always + have the same semantic version as their parent modules. + + A major version number of 0 indicates that this model is still + in development (whether within OpenConfig or with industry + partners), and is potentially subject to change. + + Following a release of major version 1, all modules will + increment major revision number where backwards incompatible + changes to the model are made. + + The minor version is changed when features are added to the + model that do not impact current clients use of the model. + + The patch-level version is incremented when non-feature changes + (such as bugfixes or clarifications to human-readable + descriptions that do not impact model functionality) are made + that maintain backwards compatibility. + + The version number is stored in the module meta-data."; + } + + extension openconfig-hashed-value { + description + "This extension provides an annotation on schema nodes to + indicate that the corresponding value should be stored and + reported in hashed form. + + Hash algorithms are by definition not reversible. Clients + reading the configuration or applied configuration for the node + should expect to receive only the hashed value. Values written + in cleartext will be hashed. This annotation may be used on + nodes such as secure passwords in which the device never reports + a cleartext value, even if the input is provided as cleartext."; + } + + extension regexp-posix { + description + "This extension indicates that the regular expressions included + within the YANG module specified are conformant with the POSIX + regular expression format rather than the W3C standard that is + specified by RFC6020 and RFC7950."; + } + + extension posix-pattern { + argument "pattern" { + yin-element false; + } + description + "Provides a POSIX ERE regular expression pattern statement as an + alternative to YANG regular expresssions based on XML Schema Datatypes. + It is used the same way as the standard YANG pattern statement defined in + RFC6020 and RFC7950, but takes an argument that is a POSIX ERE regular + expression string."; + reference + "POSIX Extended Regular Expressions (ERE) Specification: + https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04"; + } + + extension telemetry-on-change { + description + "The telemetry-on-change annotation is specified in the context + of a particular subtree (container, or list) or leaf within the + YANG schema. Where specified, it indicates that the value stored + by the nodes within the context change their value only in response + to an event occurring. The event may be local to the target, for + example - a configuration change, or external - such as the failure + of a link. + + When a telemetry subscription allows the target to determine whether + to export the value of a leaf in a periodic or event-based fashion + (e.g., TARGET_DEFINED mode in gNMI), leaves marked as + telemetry-on-change should only be exported when they change, + i.e., event-based."; + } + + extension telemetry-atomic { + description + "The telemetry-atomic annotation is specified in the context of + a subtree (containre, or list), and indicates that all nodes + within the subtree are always updated together within the data + model. For example, all elements under the subtree may be updated + as a result of a new alarm being raised, or the arrival of a new + protocol message. + + Transport protocols may use the atomic specification to determine + optimisations for sending or storing the corresponding data."; + } + + extension operational { + description + "The operational annotation is specified in the context of a + grouping, leaf, or leaf-list within a YANG module. It indicates + that the nodes within the context are derived state on the device. + + OpenConfig data models divide nodes into the following three categories: + + - intended configuration - these are leaves within a container named + 'config', and are the writable configuration of a target. + - applied configuration - these are leaves within a container named + 'state' and are the currently running value of the intended configuration. + - derived state - these are the values within the 'state' container which + are not part of the applied configuration of the device. Typically, they + represent state values reflecting underlying operational counters, or + protocol statuses."; + } + + extension catalog-organization { + argument "org" { + yin-element false; + } + description + "This extension specifies the organization name that should be used within + the module catalogue on the device for the specified YANG module. It stores + a pithy string where the YANG organization statement may contain more + details."; + } + + extension origin { + argument "origin" { + yin-element false; + } + description + "This extension specifies the name of the origin that the YANG module + falls within. This allows multiple overlapping schema trees to be used + on a single network element without requiring module based prefixing + of paths."; + } +} diff --git a/src/device/service/drivers/smartnic_probes/openconfig-inet-types.yang b/src/device/service/drivers/smartnic_probes/openconfig-inet-types.yang new file mode 100644 index 000000000..3d3ed425e --- /dev/null +++ b/src/device/service/drivers/smartnic_probes/openconfig-inet-types.yang @@ -0,0 +1,478 @@ +module openconfig-inet-types { + + yang-version "1"; + namespace "http://openconfig.net/yang/types/inet"; + prefix "oc-inet"; + + import openconfig-extensions { prefix "oc-ext"; } + + organization + "OpenConfig working group"; + + contact + "OpenConfig working group + www.openconfig.net"; + + description + "This module contains a set of Internet address related + types for use in OpenConfig modules. + + Portions of this code were derived from IETF RFC 6021. + Please reproduce this note if possible. + + IETF code is subject to the following copyright and license: + Copyright (c) IETF Trust and the persons identified as authors of + the code. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, is permitted pursuant to, and subject to the license + terms contained in, the Simplified BSD License set forth in + Section 4.c of the IETF Trust's Legal Provisions Relating + to IETF Documents (http://trustee.ietf.org/license-info)."; + + oc-ext:openconfig-version "0.6.0"; + + revision "2023-02-06" { + description + "Add ipv6-link-local and ipv6-address-type"; + reference "0.6.0"; + } + + revision "2021-08-17" { + description + "Add ip-address-zoned typedef as a union between ipv4-address-zoned + and ipv6-address-zoned types."; + reference "0.5.0"; + } + + revision "2021-07-14" { + description + "Use auto-generated regex for ipv4 pattern statements: + - ipv4-address + - ipv4-address-zoned + - ipv4-prefix"; + reference "0.4.1"; + } + + revision "2021-01-07" { + description + "Remove module extension oc-ext:regexp-posix by making pattern regexes + conform to RFC7950. + + Types impacted: + - ipv4-address + - ipv4-address-zoned + - ipv6-address + - domain-name"; + reference "0.4.0"; + } + + revision "2020-10-12" { + description + "Fix anchors for domain-name pattern."; + reference "0.3.5"; + } + + revision "2020-06-30" { + description + "Add OpenConfig POSIX pattern extensions and add anchors for domain-name + pattern."; + reference "0.3.4"; + } + + revision "2019-04-25" { + description + "Fix regex bug for ipv6-prefix type"; + reference "0.3.3"; + } + + revision "2018-11-21" { + description + "Add OpenConfig module metadata extensions."; + reference "0.3.2"; + } + + revision 2017-08-24 { + description + "Minor formatting fixes."; + reference "0.3.1"; + } + + revision 2017-07-06 { + description + "Add domain-name and host typedefs"; + reference "0.3.0"; + } + + revision 2017-04-03 { + description + "Add ip-version typedef."; + reference "0.2.0"; + } + + revision 2017-04-03 { + description + "Update copyright notice."; + reference "0.1.1"; + } + + revision 2017-01-26 { + description + "Initial module for inet types"; + reference "0.1.0"; + } + + // OpenConfig specific extensions for module metadata. + oc-ext:catalog-organization "openconfig"; + oc-ext:origin "openconfig"; + + // IPv4 and IPv6 types. + + typedef ipv4-address { + type string { + pattern + '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|' + + '[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}'; + oc-ext:posix-pattern + '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|' + + '[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3})$'; + } + description + "An IPv4 address in dotted quad notation using the default + zone."; + } + + typedef ipv4-address-zoned { + type string { + pattern + '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|' + + '[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}(%[a-zA-Z0-9_]+)'; + oc-ext:posix-pattern + '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|' + + '[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}(%[a-zA-Z0-9_]+))$'; + } + description + "An IPv4 address in dotted quad notation. This type allows + specification of a zone index to disambiguate identical + address values. For link-local addresses, the index is + typically the interface index or interface name."; + } + + typedef ipv6-address { + type string { + pattern + // Must support compression through different lengths + // therefore this regexp is complex. + '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,7}:|' + + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + + ')'; + oc-ext:posix-pattern + // Must support compression through different lengths + // therefore this regexp is complex. + '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,7}:|' + + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + + ')$'; + } + description + "An IPv6 address represented as either a full address; shortened + or mixed-shortened formats, using the default zone."; + } + + typedef ipv6-address-zoned { + type string { + pattern + // Must support compression through different lengths + // therefore this regexp is complex. + '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,7}:|' + + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + + ')(%[a-zA-Z0-9_]+)$'; + oc-ext:posix-pattern + // Must support compression through different lengths + // therefore this regexp is complex. + '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,7}:|' + + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + + ')(%[a-zA-Z0-9_]+)$'; + } + description + "An IPv6 address represented as either a full address; shortened + or mixed-shortened formats. This type allows specification of + a zone index to disambiguate identical address values. For + link-local addresses, the index is typically the interface + index or interface name."; + } + + typedef ipv4-prefix { + type string { + pattern + '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|' + + '[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}/([0-9]|[12][0-9]|' + + '3[0-2])'; + oc-ext:posix-pattern + '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\.([0-9]|' + + '[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3}/([0-9]|[12][0-9]|' + + '3[0-2]))$'; + } + description + "An IPv4 prefix represented in dotted quad notation followed by + a slash and a CIDR mask (0 <= mask <= 32)."; + } + + typedef ipv6-prefix { + type string { + pattern + '(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,7}:|' + + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])'; + oc-ext:posix-pattern + '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,7}:|' + + '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' + + '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' + + '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' + + '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' + + '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' + + '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' + + ':((:[0-9a-fA-F]{1,4}){1,7}|:)' + + ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$'; + } + description + "An IPv6 prefix represented in full, shortened, or mixed + shortened format followed by a slash and CIDR mask + (0 <= mask <= 128)."; + } + + typedef ip-address { + type union { + type ipv4-address; + type ipv6-address; + } + description + "An IPv4 or IPv6 address with no prefix specified."; + } + + typedef ip-address-zoned { + type union { + type ipv4-address-zoned; + type ipv6-address-zoned; + } + description + "An IPv4 or IPv6 address with no prefix specified and an optional + zone index."; + } + + typedef ip-prefix { + type union { + type ipv4-prefix; + type ipv6-prefix; + } + description + "An IPv4 or IPv6 prefix."; + } + + typedef ip-version { + type enumeration { + enum UNKNOWN { + value 0; + description + "An unknown or unspecified version of the Internet + protocol."; + } + enum IPV4 { + value 4; + description + "The IPv4 protocol as defined in RFC 791."; + } + enum IPV6 { + value 6; + description + "The IPv6 protocol as defined in RFC 2460."; + } + } + description + "This value represents the version of the IP protocol. + Note that integer representation of the enumerated values + are not specified, and are not required to follow the + InetVersion textual convention in SMIv2."; + reference + "RFC 791: Internet Protocol + RFC 2460: Internet Protocol, Version 6 (IPv6) Specification + RFC 4001: Textual Conventions for Internet Network Addresses"; + } + + typedef ipv6-address-type { + type enumeration { + enum GLOBAL_UNICAST { + description + "The IPv6 address is a global unicast address type and must be in + the format defined in RFC 4291 section 2.4."; + } + enum LINK_LOCAL_UNICAST { + description + "The IPv6 address is a Link-Local unicast address type and must be + in the format defined in RFC 4291 section 2.4."; + } + } + description + "The value represents the type of IPv6 address"; + reference + "RFC 4291: IP Version 6 Addressing Architecture + section 2.5"; + } + + typedef domain-name { + type string { + length "1..253"; + pattern + '(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + + '|\.)'; + oc-ext:posix-pattern + '^(((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' + + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' + + '|\.)$'; + } + description + "The domain-name type represents a DNS domain name. + Fully quallified left to the models which utilize this type. + + Internet domain names are only loosely specified. Section + 3.5 of RFC 1034 recommends a syntax (modified in Section + 2.1 of RFC 1123). The pattern above is intended to allow + for current practice in domain name use, and some possible + future expansion. It is designed to hold various types of + domain names, including names used for A or AAAA records + (host names) and other records, such as SRV records. Note + that Internet host names have a stricter syntax (described + in RFC 952) than the DNS recommendations in RFCs 1034 and + 1123, and that systems that want to store host names in + schema nodes using the domain-name type are recommended to + adhere to this stricter standard to ensure interoperability. + + The encoding of DNS names in the DNS protocol is limited + to 255 characters. Since the encoding consists of labels + prefixed by a length bytes and there is a trailing NULL + byte, only 253 characters can appear in the textual dotted + notation. + + Domain-name values use the US-ASCII encoding. Their canonical + format uses lowercase US-ASCII characters. Internationalized + domain names MUST be encoded in punycode as described in RFC + 3492"; + } + + typedef host { + type union { + type ip-address; + type domain-name; + } + description + "The host type represents either an unzoned IP address or a DNS + domain name."; + } + + typedef as-number { + type uint32; + description + "A numeric identifier for an autonomous system (AS). An AS is a + single domain, under common administrative control, which forms + a unit of routing policy. Autonomous systems can be assigned a + 2-byte identifier, or a 4-byte identifier which may have public + or private scope. Private ASNs are assigned from dedicated + ranges. Public ASNs are assigned from ranges allocated by IANA + to the regional internet registries (RIRs)."; + reference + "RFC 1930 Guidelines for creation, selection, and registration + of an Autonomous System (AS) + RFC 4271 A Border Gateway Protocol 4 (BGP-4)"; + } + + typedef dscp { + type uint8 { + range "0..63"; + } + description + "A differentiated services code point (DSCP) marking within the + IP header."; + reference + "RFC 2474 Definition of the Differentiated Services Field + (DS Field) in the IPv4 and IPv6 Headers"; + } + + typedef ipv6-flow-label { + type uint32 { + range "0..1048575"; + } + description + "The IPv6 flow-label is a 20-bit value within the IPv6 header + which is optionally used by the source of the IPv6 packet to + label sets of packets for which special handling may be + required."; + reference + "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification"; + } + + typedef port-number { + type uint16; + description + "A 16-bit port number used by a transport protocol such as TCP + or UDP."; + reference + "RFC 768 User Datagram Protocol + RFC 793 Transmission Control Protocol"; + } + + typedef uri { + type string; + description + "An ASCII-encoded Uniform Resource Identifier (URI) as defined + in RFC 3986."; + reference + "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax"; + } + + typedef url { + type string; + description + "An ASCII-encoded Uniform Resource Locator (URL) as defined + in RFC 3986, section 1.1.3"; + reference + "RFC 3986, paragraph 1.1.3"; + } + +} diff --git a/src/device/service/drivers/smartnic_probes/openconfig-probes-types.yang b/src/device/service/drivers/smartnic_probes/openconfig-probes-types.yang new file mode 100644 index 000000000..c5e13f370 --- /dev/null +++ b/src/device/service/drivers/smartnic_probes/openconfig-probes-types.yang @@ -0,0 +1,86 @@ +module openconfig-probes-types { + + yang-version "1"; + + // namespace + namespace "http://openconfig.net/yang/probes/types"; + + prefix "oc-probes-types"; + + // import some basic types + import openconfig-extensions { prefix oc-ext; } + + // meta + organization "OpenConfig working group"; + + contact + "OpenConfig working group + www.openconfig.net"; + + description + "This module defines types related to the probes."; + + oc-ext:openconfig-version "0.1.1"; + + revision "2018-11-21" { + description + "Add OpenConfig module metadata extensions."; + reference "0.1.1"; + } + + revision "2017-09-05" { + description + "Initial public revision"; + reference "0.1.0"; + } + + // OpenConfig specific extensions for module metadata. + oc-ext:regexp-posix; + oc-ext:catalog-organization "openconfig"; + oc-ext:origin "openconfig"; + + typedef test-type { + type enumeration { + enum ICMP { + description + "Send ICMP echo requests."; + } + enum ICMP6 { + description + "Send ICMP6 echo requests."; + } + enum ICMP_TIMESTAMP { + description + "Send ICMP timestamp requests."; + } + enum ICMP6_TIMESTAMP { + description + "Sedn ICMP6 timestamp requests."; + } + enum TCP { + description + "Send TPC packets."; + } + enum UDP { + description + "Send UDP packets."; + } + enum UDP_TIMESTAMP { + description + "Send UDP packets with timestamp."; + } + enum HTTP_GET { + description + "Execute HTTP GET requests."; + } + enum HTTP_GET_META { + description + "Execute HTTP GET requests of metadata."; + } + } + description + "Type definition with enumerations describing the basis of + the probe test type identifier"; + } + +} \ No newline at end of file diff --git a/src/device/service/drivers/smartnic_probes/openconfig-probes.yang b/src/device/service/drivers/smartnic_probes/openconfig-probes.yang new file mode 100644 index 000000000..27b7e4c0d --- /dev/null +++ b/src/device/service/drivers/smartnic_probes/openconfig-probes.yang @@ -0,0 +1,575 @@ +module openconfig-probes { + + // namespace + namespace "http://openconfig.net/yang/probes"; + + prefix "oc-probes"; + + import ietf-yang-types { prefix yang; } + import openconfig-types { prefix oc-types; } + import openconfig-extensions { prefix oc-ext; } + import openconfig-inet-types { prefix oc-inet; } + import openconfig-probes-types { prefix oc-probes-types; } + + organization "OpenConfig working group"; + + contact + "OpenConfig working group + www.openconfig.net"; + + description + "This module defines configuration and operational state data + for the probes. + A probe consists on a group of tests, each test being a + source-destination pair to poll. The destination can be either + IP Address (and eventually port) or URL, depending on the + nature of the test. The test can send ICMP, UDP, TCP, or HTTP + requests. + Each test groups a list of test items, the test results + being an overall view or average of the items list. + However, the test preserves only a limited set of history + items, whose length can be controlled using the history-size."; + + oc-ext:openconfig-version "0.0.2"; + + revision "2018-11-21" { + description + "Add OpenConfig module metadata extensions."; + reference "0.0.2"; + } + + revision "2017-09-05" { + description + "Initial public revision"; + reference "0.0.1"; + } + + // OpenConfig specific extensions for module metadata. + oc-ext:regexp-posix; + oc-ext:catalog-organization "openconfig"; + oc-ext:origin "openconfig"; + + grouping test-target { + description + "Groups the config and state containers + for an individual test."; + + container target { + description + "The target configuration of the test. + The nature of the target depends on the probe type: + for HTTP probes we need to provide an URL to poll, + while ICMP probes require an IP address to monitor."; + + container config { + description + "Configuration data for the test target."; + + uses test-target-base; + } + + container state { + config false; + + description + "Operational data for the test target."; + + uses test-target-base; + } + } + } + + grouping test-target-base { + description + "Targe types for the probe test."; + + leaf address { + type oc-inet:ip-address; + description + "IP address of the target, either IPv4 or IPv6."; + } + + leaf port { + type oc-inet:port-number; + description + "Destination port."; + } + + leaf url { + type oc-inet:url; + description + "Target URL to probe."; + } + } + + grouping probe-test-config-base { + description + "Definition of test details."; + + leaf test-type { + type oc-probes-types:test-type; + description + "The type of the probe test."; + mandatory true; + } + + leaf count { + type yang:counter64; + description + "The number of probes per test."; + } + + leaf interval { + type yang:counter64; + description + "Time between two consecutive probes."; + } + + leaf source { + type oc-inet:ip-address; + description + "Source address used when probing, either IPv4 or IPv6."; + } + + leaf history-size { + type yang:counter64; + description + "The number of history entries stored."; + } + + leaf source-port { + type oc-inet:port-number; + description + "Source number used."; + } + + leaf dscp { + type oc-inet:dscp; + description + "DSCP code points"; + } + + } + + grouping probe-test-state-history-item-base { + description + "The test item results counters and statistics. + An item presents the results of a single execution + of the test. + The results of the test depend on the values + of the total items, or an average over a certain + period of time."; + + leaf id { + type yang:counter64; + description + "The test item ID."; + } + + leaf timestamp { + type oc-types:timeticks64; + description + "The test timestamp. + This is not the timestamp when the test + was actually executed nither when it finished. + Should be the timestamp when the test has been scheduled. + It may not be the same with start-timestamp."; + } + + leaf start-timestamp { + type oc-types:timeticks64; + description + "The timestamp when the test started."; + } + + leaf end-timestamp { + type oc-types:timeticks64; + description + "The timestamp when the test finished."; + } + + leaf test-duration { + type yang:counter64; + description + "The duration of the test, in microseconds."; + } + + leaf failed { + type boolean; + description + "Whether the test failed or succeeded."; + } + + leaf probes-sent { + type yang:counter64; + description + "Number of test probes sent."; + } + + leaf probes-received { + type yang:counter64; + description + "Number of test probes received."; + } + + leaf loss-percentage { + type oc-types:percentage; + description + "The loss percentage."; + } + + leaf jitter { + type yang:counter64; + description + "The round trip jitter, in microseconds."; + } + + leaf min-delay { + type yang:counter64; + description + "The minimum delay recorded during the test, in microseconds."; + } + + leaf max-delay { + type yang:counter64; + description + "The maximum delay recorded during the test, in microseconds."; + } + + leaf avg-delay { + type yang:counter64; + description + "The average delay recorded during the test, in microseconds."; + } + + leaf stddev-delay { + type yang:counter64; + description + "The standard deviation of the delay of the test."; + } + + } + + grouping probe-test-state-history-item { + description + "A history item of the probe results."; + + container state { + + config false; + + description + "A history item of the probe results: operational data only."; + + uses probe-test-state-history-item-base; + } + + } + + grouping probe-test-state-history { + + description + "The history of the test results."; + + container items { + + description + "The list of items in the probe history. + The length depends on the history size."; + + list item { + key "id"; + description + "List of history items."; + + leaf id { + type leafref { + path "../state/id"; + } + description + "Reference to the history entry ID."; + } + + uses probe-test-state-history-item; + } + + } + + } + + grouping probe-test-state-results { + description + "The test results counters and statistics."; + + leaf timestamp { + type oc-types:timeticks64; + description + "The test timestamp. + This is not the timestamp when the test + was actually executed nither when it finished. + Should be the timestamp when the test has been scheduled. + It may not be the same with start-timestamp."; + } + + leaf start-timestamp { + type oc-types:timeticks64; + description + "The timestamp when the test started."; + } + + leaf last-test-timestamp { + type oc-types:timeticks64; + description + "The timestamp when the test finished."; + } + + leaf test-duration { + type yang:counter64; + description + "The duration of the test, in microseconds."; + } + + leaf failed { + type boolean; + description + "Whether the test failed or succeeded."; + } + + leaf probes-sent { + type yang:counter64; + description + "Number of test probes sent."; + } + + leaf probes-received { + type yang:counter64; + description + "Number of test probes received."; + } + + leaf loss-percentage { + type oc-types:percentage; + description + "The loss percentage."; + } + + leaf jitter { + type yang:counter64; + description + "The round trip jitter, in microseconds."; + } + + leaf min-delay { + type yang:counter64; + description + "The minimum delay recorded during the test, in microseconds."; + } + + leaf max-delay { + type yang:counter64; + description + "The maximum delay recorded during the test, in microseconds."; + } + + leaf avg-delay { + type yang:counter64; + description + "The average delay recorded during the test, in microseconds."; + } + + leaf stddev-delay { + type yang:counter64; + description + "The standard deviation of the delay of the test."; + } + + + } + + grouping probe-test-state { + + description + "Operational data and results for the probes."; + + } + + grouping probe-test-config { + description + "Definition of test details."; + + leaf name { + type string; + description + "The name of the test probe"; + mandatory true; + } + + leaf enabled { + type boolean; + default true; + description + "Whether the test is enabled."; + } + + uses probe-test-config-base; + + } + + grouping probe-tests-top { + description + "Top-level grouping for the tests withing a probe."; + + list test { + key "name"; + description + "List of tests associated with this probe."; + + leaf name { + type leafref { + path "../config/name"; + } + description + "Reference to the list key"; + } + + container config { + description + "Configuration data for the test of this probe."; + + uses probe-test-config; + } + + container state { + + config false; + + description + "Operational state data"; + + uses probe-test-config; + uses probe-test-state; + } + + uses test-target; + + container results { + description + "Contains the results of the tests."; + + container state { + + config false; + + description + "Results of this test: operational data only"; + + uses probe-test-state-results; + } + + container history { + + config false; + + description + "Historical data of the tests."; + + uses probe-test-state-history; + } + + } + + } + // end list of probes + + } + + grouping probe-config { + description + "Definition of probe details."; + + leaf name { + type string; + description + "The name of the probe."; + mandatory true; + } + + leaf enabled { + type boolean; + default true; + description + "Whether the probe is enabled."; + } + + } + + grouping probe-state { + description + "Definition of probes operation data."; + } + + grouping probes-top { + description + "Top-level grouping for probes model"; + + list probe { + key "name"; + description + "List of probes configured."; + + leaf name { + type leafref { + path "../config/name"; + } + description + "Reference to the list key"; + } + + container config { + description + "Configuration data for the probes."; + + uses probe-config; + } + + container state { + + config false; + + description + "Operational state data"; + + uses probe-config; + uses probe-state; + } + + container tests { + + description + "The tests associated to be executed for the probe."; + + uses probe-tests-top; + } + + } + // end list of probes + + } + + grouping openconfig-probes-top { + + description + "The top level grouping of the probes model."; + + container probes { + description + "The container containing the list of probes."; + + uses probes-top; + } + + } + + uses openconfig-probes-top; + +} \ No newline at end of file diff --git a/src/device/service/drivers/smartnic_probes/openconfig-types.yang b/src/device/service/drivers/smartnic_probes/openconfig-types.yang new file mode 100644 index 000000000..89e32d515 --- /dev/null +++ b/src/device/service/drivers/smartnic_probes/openconfig-types.yang @@ -0,0 +1,471 @@ +module openconfig-types { + yang-version "1"; + + namespace "http://openconfig.net/yang/openconfig-types"; + + prefix "oc-types"; + + // import statements + import openconfig-extensions { prefix oc-ext; } + + // meta + organization + "OpenConfig working group"; + + contact + "OpenConfig working group + netopenconfig@googlegroups.com"; + + description + "This module contains a set of general type definitions that + are used across OpenConfig models. It can be imported by modules + that make use of these types."; + + oc-ext:openconfig-version "0.6.0"; + + revision "2019-04-16" { + description + "Clarify definition of timeticks64."; + reference "0.6.0"; + } + + revision "2018-11-21" { + description + "Add OpenConfig module metadata extensions."; + reference "0.5.1"; + } + + revision "2018-05-05" { + description + "Add grouping of min-max-time and + included them to all stats with min/max/avg"; + reference "0.5.0"; + } + + revision "2018-01-16" { + description + "Add interval to min/max/avg stats; add percentage stat"; + reference "0.4.0"; + } + + revision "2017-08-16" { + description + "Apply fix for ieetfloat32 length parameter"; + reference "0.3.3"; + } + + revision "2017-01-13" { + description + "Add ADDRESS_FAMILY identity"; + reference "0.3.2"; + } + + revision "2016-11-14" { + description + "Correct length of ieeefloat32"; + reference "0.3.1"; + } + + revision "2016-11-11" { + description + "Additional types - ieeefloat32 and routing-password"; + reference "0.3.0"; + } + + revision "2016-05-31" { + description + "OpenConfig public release"; + reference "0.2.0"; + } + + // OpenConfig specific extensions for module metadata. + oc-ext:regexp-posix; + oc-ext:catalog-organization "openconfig"; + oc-ext:origin "openconfig"; + + typedef percentage { + type uint8 { + range "0..100"; + } + description + "Integer indicating a percentage value"; + } + + typedef std-regexp { + type string; + description + "This type definition is a placeholder for a standard + definition of a regular expression that can be utilised in + OpenConfig models. Further discussion is required to + consider the type of regular expressions that are to be + supported. An initial proposal is POSIX compatible."; + } + + typedef timeticks64 { + type uint64; + units "nanoseconds"; + description + "The timeticks64 represents the time, modulo 2^64 in + nanoseconds between two epochs. The leaf using this + type must define the epochs that tests are relative to."; + } + + typedef ieeefloat32 { + type binary { + length "4"; + } + description + "An IEEE 32-bit floating point number. The format of this number + is of the form: + 1-bit sign + 8-bit exponent + 23-bit fraction + The floating point value is calculated using: + (-1)**S * 2**(Exponent-127) * (1+Fraction)"; + } + + typedef routing-password { + type string; + description + "This type is indicative of a password that is used within + a routing protocol which can be returned in plain text to the + NMS by the local system. Such passwords are typically stored + as encrypted strings. Since the encryption used is generally + well known, it is possible to extract the original value from + the string - and hence this format is not considered secure. + Leaves specified with this type should not be modified by + the system, and should be returned to the end-user in plain + text. This type exists to differentiate passwords, which + may be sensitive, from other string leaves. It could, for + example, be used by the NMS to censor this data when + viewed by particular users."; + } + + typedef stat-interval { + type uint64; + units nanoseconds; + description + "A time interval over which a set of statistics is computed. + A common usage is to report the interval over which + avg/min/max stats are computed and reported."; + } + + grouping stat-interval-state { + description + "Reusable leaf definition for stats computation interval"; + + leaf interval { + type oc-types:stat-interval; + description + "If supported by the system, this reports the time interval + over which the min/max/average statistics are computed by + the system."; + } + } + + grouping min-max-time { + description + "Common grouping for recording the absolute time at which + the minimum and maximum values occurred in the statistics"; + + leaf min-time { + type oc-types:timeticks64; + description + "The absolute time at which the minimum value occurred. + The value is the timestamp in nanoseconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; + } + + leaf max-time { + type oc-types:timeticks64; + description + "The absolute time at which the maximum value occurred. + The value is the timestamp in nanoseconds relative to + the Unix Epoch (Jan 1, 1970 00:00:00 UTC)."; + } + } + + grouping avg-min-max-stats-precision1 { + description + "Common nodes for recording average, minimum, and + maximum values for a statistic. These values all have + fraction-digits set to 1. Statistics are computed + and reported based on a moving time interval (e.g., the last + 30s). If supported by the device, the time interval over which + the statistics are computed is also reported."; + + leaf avg { + type decimal64 { + fraction-digits 1; + } + description + "The arithmetic mean value of the statistic over the + time interval."; + } + + leaf min { + type decimal64 { + fraction-digits 1; + } + description + "The minimum value of the statistic over the time + interval."; + } + + leaf max { + type decimal64 { + fraction-digits 1; + } + description + "The maximum value of the statitic over the time + interval."; + } + + uses stat-interval-state; + uses min-max-time; + } + + grouping avg-min-max-instant-stats-precision1 { + description + "Common grouping for recording an instantaneous statistic value + in addition to avg-min-max stats"; + + leaf instant { + type decimal64 { + fraction-digits 1; + } + description + "The instantaneous value of the statistic."; + } + + uses avg-min-max-stats-precision1; + } + + grouping avg-min-max-instant-stats-precision2-dB { + description + "Common grouping for recording dB values with 2 decimal + precision. Values include the instantaneous, average, + minimum, and maximum statistics. Statistics are computed + and reported based on a moving time interval (e.g., the last + 30s). If supported by the device, the time interval over which + the statistics are computed, and the times at which the minimum + and maximum values occurred, are also reported."; + + leaf instant { + type decimal64 { + fraction-digits 2; + } + units dB; + description + "The instantaneous value of the statistic."; + } + + leaf avg { + type decimal64 { + fraction-digits 2; + } + units dB; + description + "The arithmetic mean value of the statistic over the + time interval."; + } + + leaf min { + type decimal64 { + fraction-digits 2; + } + units dB; + description + "The minimum value of the statistic over the time interval."; + } + + leaf max { + type decimal64 { + fraction-digits 2; + } + units dB; + description + "The maximum value of the statistic over the time + interval."; + } + + uses stat-interval-state; + uses min-max-time; + } + + grouping avg-min-max-instant-stats-precision2-dBm { + description + "Common grouping for recording dBm values with 2 decimal + precision. Values include the instantaneous, average, + minimum, and maximum statistics. Statistics are computed + and reported based on a moving time interval (e.g., the last + 30s). If supported by the device, the time interval over which + the statistics are computed, and the times at which the minimum + and maximum values occurred, are also reported."; + + leaf instant { + type decimal64 { + fraction-digits 2; + } + units dBm; + description + "The instantaneous value of the statistic."; + } + + leaf avg { + type decimal64 { + fraction-digits 2; + } + units dBm; + description + "The arithmetic mean value of the statistic over the + time interval."; + } + + leaf min { + type decimal64 { + fraction-digits 2; + } + units dBm; + description + "The minimum value of the statistic over the time + interval."; + } + + leaf max { + type decimal64 { + fraction-digits 2; + } + units dBm; + description + "The maximum value of the statistic over the time interval."; + } + + uses stat-interval-state; + uses min-max-time; + } + + grouping avg-min-max-instant-stats-precision2-mA { + description + "Common grouping for recording mA values with 2 decimal + precision. Values include the instantaneous, average, + minimum, and maximum statistics. Statistics are computed + and reported based on a moving time interval (e.g., the last + 30s). If supported by the device, the time interval over which + the statistics are computed, and the times at which the minimum + and maximum values occurred, are also reported."; + + leaf instant { + type decimal64 { + fraction-digits 2; + } + units mA; + description + "The instantaneous value of the statistic."; + } + + leaf avg { + type decimal64 { + fraction-digits 2; + } + units mA; + description + "The arithmetic mean value of the statistic over the + time interval."; + } + + leaf min { + type decimal64 { + fraction-digits 2; + } + units mA; + description + "The minimum value of the statistic over the time + interval."; + } + + leaf max { + type decimal64 { + fraction-digits 2; + } + units mA; + description + "The maximum value of the statistic over the time + interval."; + } + + uses stat-interval-state; + uses min-max-time; + } + + grouping avg-min-max-instant-stats-pct { + description + "Common grouping for percentage statistics. + Values include the instantaneous, average, + minimum, and maximum statistics. Statistics are computed + and reported based on a moving time interval (e.g., the last + 30s). If supported by the device, the time interval over which + the statistics are computed, and the times at which the minimum + and maximum values occurred, are also reported."; + + leaf instant { + type oc-types:percentage; + description + "The instantaneous percentage value."; + } + + leaf avg { + type oc-types:percentage; + description + "The arithmetic mean value of the percentage measure of the + statistic over the time interval."; + } + + leaf min { + type oc-types:percentage; + description + "The minimum value of the percentage measure of the + statistic over the time interval."; + } + + leaf max { + type oc-types:percentage; + description + "The maximum value of the percentage measure of the + statistic over the time interval."; + } + + uses stat-interval-state; + uses min-max-time; + } + + identity ADDRESS_FAMILY { + description + "A base identity for all address families"; + } + + identity IPV4 { + base ADDRESS_FAMILY; + description + "The IPv4 address family"; + } + + identity IPV6 { + base ADDRESS_FAMILY; + description + "The IPv6 address family"; + } + + identity MPLS { + base ADDRESS_FAMILY; + description + "The MPLS address family"; + } + + identity L2_ETHERNET { + base ADDRESS_FAMILY; + description + "The 802.3 Ethernet address family"; + } + +} diff --git a/src/device/service/drivers/smartnic_probes/probes-agent.yang b/src/device/service/drivers/smartnic_probes/probes-agent.yang index 6029cd204..897d2f129 100644 --- a/src/device/service/drivers/smartnic_probes/probes-agent.yang +++ b/src/device/service/drivers/smartnic_probes/probes-agent.yang @@ -25,32 +25,7 @@ augment '/oc-probes:probes/oc-probes:probe/oc-probes:tests/oc-probes:test/oc-pro uses morpheus_pipelines; } -grouping morpheus_pipelines { - list morpheus_pipelines { - key name; - uses morpheus_pipeline; - } -} - -grouping morpheus_pipeline { - leaf name { type string; } - leaf num_threads { type uint16; } - leaf pipeline_batch_size {type uint64; } - leaf model_max_batch_size {type uint64; } - leaf input_file {type string; } - leaf output_file {type string; } - leaf model_fea_length {type uint16; } - leaf model_name {type string; } - leaf iterative {type boolean; } - leaf server_url {type string; } - leaf file_type {type files; } - list stages { - key name; - uses morpheus_pipeline_stage; - } -} - -typedef files { +typedef files{ type enumeration { enum "auto"; enum "csv"; @@ -58,27 +33,14 @@ typedef files { } } -typedef stage { - type enumeration { - enum "FileSourceStage"; - enum "DeserializeStage"; - enum "AbpPcapPreprocessingStage"; - enum "MonitorStage"; - enum "TritonInferenceStage"; - enum "AddClassificationsStage"; - enum "SerializeStage"; - enum "WriteToFileStage"; - } -} - -grouping prob { +grouping prob{ leaf value { - type string; + type string; // e.g. "probs" description "probs"; } } -grouping conf { +grouping conf{ leaf mode {type string; } leaf num_threads { type uint16; } leaf pipeline_batch_size { type uint64; } @@ -90,20 +52,98 @@ grouping conf { } grouping morpheus_pipeline_stage { - leaf name { type string; } - leaf stage_type {type stage; } - list configuration {key "mode"; uses conf;} - leaf filename {type string;} - leaf iterative {type boolean;} - leaf file_type {type files;} - leaf filter_null {type boolean;} - leaf descriptions {type string;} + leaf stage_name { type string; } + choice stage_type { + case FileSourceStage { + container FileSourceStage { + list fs_configuration {key "mode"; uses conf;} + leaf filename {type string;} + leaf iterative {type boolean;} + leaf file_type {type files;} + leaf filter_null {type boolean;} + } + } + case DeserializeStage { + container DeserializeStage { + list ds_configuration {key "mode"; uses conf;} + } + } + case AbpPcapPreprocessingStage { + container AbpPcapPreprocessingStage { + list apps_configuration {key "mode"; uses conf;} + } + } + case MonitorStage { + container MonitorStage { + list ms_configuration {key "mode"; uses conf;} + leaf descriptions {type string;} + leaf unit {type string;} + } + } + case TritonInferenceStage { + container TritonInferenceStage { + list tis_configuration {key "mode"; uses conf;} + leaf model_name {type string;} + leaf server_url {type string;} + leaf force_convert_inputs {type boolean;} + } + } + case AddClassificationsStage{ + container AddClassificationsStage { + list acs_configuration {key "mode"; uses conf;} + list labels {key "value"; uses prob;} + } + } + case SerializeStage { + container SerializeStage { + list ss_configuration {key "mode"; uses conf;} + leaf kwargs {type empty;} + } + } + case WriteToFileStage{ + container WriteToFileStage { + list wfs_configuration {key "mode"; uses conf;} + leaf wfs_filename {type string;} + leaf overwrite {type boolean;} + } + } + case CustomStage { + list custom { + key "field_name"; + leaf field_name {type string;} + leaf field_value {type string;} + } + } + } +} + +grouping morpheus_pipeline { + leaf pipeline_name {type string;} + leaf num_threads {type uint16;} + leaf pipeline_batch_size {type uint64; } + leaf model_max_batch_size {type uint64; } + leaf input_file {type string;} + leaf output_file {type string;} + leaf model_fea_length {type uint16;} leaf model_name {type string;} + leaf iterative {type boolean;} leaf server_url {type string;} - leaf force_convert_inputs {type boolean;} - leaf unit {type string;} - list labels {key "value"; uses prob;} - leaf kwargs {type empty;} - leaf overwrite {type boolean;} + leaf file_type {type files;} + list stages { + key "stage_name"; + uses morpheus_pipeline_stage; + } +} + +grouping morpheus_pipelines { + list morpheus_pipeline { + key "pipeline_name"; + uses morpheus_pipeline; + } +} + +container morpheus_pipelines { + uses morpheus_pipelines; } + } \ No newline at end of file diff --git a/src/device/service/drivers/smartnic_probes/references_probes_libraries.txt b/src/device/service/drivers/smartnic_probes/references_probes_libraries.txt new file mode 100644 index 000000000..7628b7c2f --- /dev/null +++ b/src/device/service/drivers/smartnic_probes/references_probes_libraries.txt @@ -0,0 +1,6 @@ +ietf-yang-types.yang -> https://github.com/YangModels/yang/blob/main/vendor/cisco/xe/1661/ietf-yang-types.yang +openconfig-extensions.yang -> https://github.com/openconfig/public/blob/master/release/models/openconfig-extensions.yang +openconfig-inet-types.yang -> https://github.com/openconfig/public/blob/master/release/models/types/openconfig-inet-types.yang +openconfig-probes-types.yang -> https://github.com/openconfig/public/blob/master/release/models/probes/openconfig-probes-types.yang +openconfig-probes.yang -> https://github.com/openconfig/public/blob/master/release/models/probes/openconfig-probes.yang +openconfig-types.yang -> https://github.com/openconfig/public/blob/master/release/models/types/openconfig-types.yang -- GitLab From 654eb4328bdb90c9b267cad11683385e02d191f6 Mon Sep 17 00:00:00 2001 From: carcel <jose.carcel@atos.net> Date: Wed, 20 Mar 2024 10:14:21 +0000 Subject: [PATCH 010/213] Morpheus Client Extension --- manifests/nginx_ingress_http.yaml | 7 + proto/context.proto | 1 + src/common/DeviceTypes.py | 1 + src/common/tools/object_factory/Device.py | 11 + src/common/type_checkers/Assertions.py | 1 + .../data/sql_hash_join_full_scan_tests.sql | 2 +- .../database/models/enums/DeviceDriver.py | 1 + src/device/service/drivers/__init__.py | 12 + .../drivers/ietf_l2vpn/TfsDebugApiClient.py | 2 + .../drivers/smartnic/SmartnicDriver.py | 122 ++++ src/device/service/drivers/smartnic/Tools.py | 174 +++++ .../service/drivers/smartnic/__init__.py | 20 + src/nbi/service/__main__.py | 2 + .../nbi_plugins/agent_probes/Resources.py | 236 +++++++ .../nbi_plugins/agent_probes/Tools.py | 118 ++++ .../nbi_plugins/agent_probes/__init__.py | 69 ++ .../data/agent_probes_configuration_rule.json | 17 + src/nbi/tests/data/agent_probes_device.json | 27 + src/policy/Dockerfile | 67 +- .../java/org/etsi/tfs/policy/Serializer.java | 4 + .../context/model/DeviceDriverEnum.java | 3 +- src/policy/src/main/proto/acl.proto | 70 +- src/policy/src/main/proto/context.proto | 616 +++++++++++++++++- .../src/main/proto/context_policy.proto | 29 +- src/policy/src/main/proto/device.proto | 35 +- .../src/main/proto/kpi_sample_types.proto | 43 +- src/policy/src/main/proto/monitoring.proto | 175 ++++- src/policy/src/main/proto/policy.proto | 114 +++- src/policy/src/main/proto/policy_action.proto | 43 +- .../src/main/proto/policy_condition.proto | 44 +- src/policy/src/main/proto/service.proto | 26 +- .../service_handler_api/FilterFields.py | 1 + .../service/service_handlers/__init__.py | 6 + src/webui/service/device/forms.py | 1 + src/webui/service/device/routes.py | 2 + src/webui/service/templates/device/add.html | 1 + src/ztp/Dockerfile | 68 +- src/ztp/src/main/proto/acl.proto | 70 +- src/ztp/src/main/proto/context.proto | 616 +++++++++++++++++- src/ztp/src/main/proto/device.proto | 35 +- src/ztp/src/main/proto/kpi_sample_types.proto | 43 +- src/ztp/src/main/proto/monitoring.proto | 175 ++++- src/ztp/src/main/proto/ztp.proto | 70 +- 43 files changed, 3160 insertions(+), 20 deletions(-) create mode 100644 src/device/service/drivers/smartnic/SmartnicDriver.py create mode 100644 src/device/service/drivers/smartnic/Tools.py create mode 100644 src/device/service/drivers/smartnic/__init__.py create mode 100644 src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py create mode 100644 src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py create mode 100644 src/nbi/service/rest_server/nbi_plugins/agent_probes/__init__.py create mode 100644 src/nbi/tests/data/agent_probes_configuration_rule.json create mode 100644 src/nbi/tests/data/agent_probes_device.json mode change 120000 => 100644 src/policy/Dockerfile mode change 120000 => 100644 src/policy/src/main/proto/acl.proto mode change 120000 => 100644 src/policy/src/main/proto/context.proto mode change 120000 => 100644 src/policy/src/main/proto/context_policy.proto mode change 120000 => 100644 src/policy/src/main/proto/device.proto mode change 120000 => 100644 src/policy/src/main/proto/kpi_sample_types.proto mode change 120000 => 100644 src/policy/src/main/proto/monitoring.proto mode change 120000 => 100644 src/policy/src/main/proto/policy.proto mode change 120000 => 100644 src/policy/src/main/proto/policy_action.proto mode change 120000 => 100644 src/policy/src/main/proto/policy_condition.proto mode change 120000 => 100644 src/policy/src/main/proto/service.proto mode change 120000 => 100644 src/ztp/Dockerfile mode change 120000 => 100644 src/ztp/src/main/proto/acl.proto mode change 120000 => 100644 src/ztp/src/main/proto/context.proto mode change 120000 => 100644 src/ztp/src/main/proto/device.proto mode change 120000 => 100644 src/ztp/src/main/proto/kpi_sample_types.proto mode change 120000 => 100644 src/ztp/src/main/proto/monitoring.proto mode change 120000 => 100644 src/ztp/src/main/proto/ztp.proto diff --git a/manifests/nginx_ingress_http.yaml b/manifests/nginx_ingress_http.yaml index e8e8a80e4..336f164b4 100644 --- a/manifests/nginx_ingress_http.yaml +++ b/manifests/nginx_ingress_http.yaml @@ -50,6 +50,13 @@ spec: name: nbiservice port: number: 8080 + - path: /()(agent-probes/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 - path: /()(bmw/.*) pathType: Prefix backend: diff --git a/proto/context.proto b/proto/context.proto index 5085cad33..856caa4f9 100644 --- a/proto/context.proto +++ b/proto/context.proto @@ -204,6 +204,7 @@ enum DeviceDriverEnum { DEVICEDRIVER_GNMI_OPENCONFIG = 8; DEVICEDRIVER_FLEXSCALE = 9; DEVICEDRIVER_IETF_ACTN = 10; + DEVICEDRIVER_SMARTNIC = 12; } enum DeviceOperationalStatusEnum { diff --git a/src/common/DeviceTypes.py b/src/common/DeviceTypes.py index 72b3e21fd..5ed4b6681 100644 --- a/src/common/DeviceTypes.py +++ b/src/common/DeviceTypes.py @@ -47,6 +47,7 @@ class DeviceTypeEnum(Enum): PACKET_ROUTER = 'packet-router' PACKET_SWITCH = 'packet-switch' XR_CONSTELLATION = 'xr-constellation' + SMARTNIC = 'smartnic' # ETSI TeraFlowSDN controller TERAFLOWSDN_CONTROLLER = 'teraflowsdn' diff --git a/src/common/tools/object_factory/Device.py b/src/common/tools/object_factory/Device.py index 76959232a..b3182e302 100644 --- a/src/common/tools/object_factory/Device.py +++ b/src/common/tools/object_factory/Device.py @@ -49,6 +49,9 @@ DEVICE_TFS_DRIVERS = [DeviceDriverEnum.DEVICEDRIVER_IETF_L2VPN] DEVICE_IETF_ACTN_TYPE = DeviceTypeEnum.OPEN_LINE_SYSTEM.value DEVICE_IETF_ACTN_DRIVERS = [DeviceDriverEnum.DEVICEDRIVER_IETF_ACTN] +DEVICE_SMARTNIC_TYPE = DeviceTypeEnum.SMARTNIC.value +DEVICE_SMARTNIC_DRIVERS = [DeviceDriverEnum.DEVICEDRIVER_SMARTNIC] + def json_device_id(device_uuid : str): return {'device_uuid': {'uuid': device_uuid}} @@ -148,6 +151,14 @@ def json_device_ietf_actn_disabled( device_uuid, DEVICE_IETF_ACTN_TYPE, DEVICE_DISABLED, name=name, endpoints=endpoints, config_rules=config_rules, drivers=drivers) +def json_device_smartnic_disabled( + device_uuid : str, name : Optional[str] = None, endpoints : List[Dict] = [], config_rules : List[Dict] = [], + drivers : List[Dict] = DEVICE_SMARTNIC_DRIVERS + ): + return json_device( + device_uuid, DEVICE_SMARTNIC_TYPE, DEVICE_DISABLED, name=name, endpoints=endpoints, config_rules=config_rules, + drivers=drivers) + def json_device_connect_rules(address : str, port : int, settings : Dict = {}) -> List[Dict]: return [ json_config_rule_set('_connect/address', address), diff --git a/src/common/type_checkers/Assertions.py b/src/common/type_checkers/Assertions.py index 87d8e54ee..06bcd4482 100644 --- a/src/common/type_checkers/Assertions.py +++ b/src/common/type_checkers/Assertions.py @@ -48,6 +48,7 @@ def validate_device_driver_enum(message): 'DEVICEDRIVER_GNMI_OPENCONFIG', 'DEVICEDRIVER_FLEXSCALE', 'DEVICEDRIVER_IETF_ACTN', + 'DEVICEDRIVER_SMARTNIC' ] def validate_device_operational_status_enum(message): 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..34330f916 100644 --- a/src/context/data/sql_hash_join_full_scan_tests.sql +++ b/src/context/data/sql_hash_join_full_scan_tests.sql @@ -9,7 +9,7 @@ CREATE DATABASE tests; USE tests; CREATE TYPE public.orm_deviceoperationalstatusenum AS ENUM ('UNDEFINED', 'DISABLED', 'ENABLED'); -CREATE TYPE public.orm_devicedriverenum AS ENUM ('UNDEFINED', 'OPENCONFIG', 'TRANSPORT_API', 'P4', 'IETF_NETWORK_TOPOLOGY', 'ONF_TR_352', 'XR', 'IETF_L2VPN'); +CREATE TYPE public.orm_devicedriverenum AS ENUM ('UNDEFINED', 'OPENCONFIG', 'TRANSPORT_API', 'P4', 'IETF_NETWORK_TOPOLOGY', 'ONF_TR_352', 'XR', 'IETF_L2VPN', 'SMARTNIC'); CREATE TYPE public.configrulekindenum AS ENUM ('CUSTOM', 'ACL'); CREATE TYPE public.orm_configactionenum AS ENUM ('UNDEFINED', 'SET', 'DELETE'); diff --git a/src/context/service/database/models/enums/DeviceDriver.py b/src/context/service/database/models/enums/DeviceDriver.py index 8e15bf058..559291965 100644 --- a/src/context/service/database/models/enums/DeviceDriver.py +++ b/src/context/service/database/models/enums/DeviceDriver.py @@ -33,6 +33,7 @@ class ORM_DeviceDriverEnum(enum.Enum): GNMI_OPENCONFIG = DeviceDriverEnum.DEVICEDRIVER_GNMI_OPENCONFIG FLEXSCALE = DeviceDriverEnum.DEVICEDRIVER_FLEXSCALE IETF_ACTN = DeviceDriverEnum.DEVICEDRIVER_IETF_ACTN + SMARTNIC = DeviceDriverEnum.DEVICEDRIVER_SMARTNIC grpc_to_enum__device_driver = functools.partial( grpc_to_enum, DeviceDriverEnum, ORM_DeviceDriverEnum) diff --git a/src/device/service/drivers/__init__.py b/src/device/service/drivers/__init__.py index 27c61f89f..1534655db 100644 --- a/src/device/service/drivers/__init__.py +++ b/src/device/service/drivers/__init__.py @@ -136,6 +136,18 @@ if LOAD_ALL_DEVICE_DRIVERS: FilterFieldEnum.DRIVER : DeviceDriverEnum.DEVICEDRIVER_P4, } ])) + +if LOAD_ALL_DEVICE_DRIVERS: + from .smartnic.SmartnicDriver import SmartnicDriver # pylint: disable=wrong-import-position + DRIVERS.append( + (SmartnicDriver, [ + { + # Real P4 Switch, specifying P4 Driver => use P4Driver + FilterFieldEnum.DEVICE_TYPE: DeviceTypeEnum.SMARTNIC, + FilterFieldEnum.DRIVER : DeviceDriverEnum.DEVICEDRIVER_SMARTNIC, + } + ])) + if LOAD_ALL_DEVICE_DRIVERS: from .microwave.IETFApiDriver import IETFApiDriver # pylint: disable=wrong-import-position diff --git a/src/device/service/drivers/ietf_l2vpn/TfsDebugApiClient.py b/src/device/service/drivers/ietf_l2vpn/TfsDebugApiClient.py index 06c55c5dc..ee2d1ab6e 100644 --- a/src/device/service/drivers/ietf_l2vpn/TfsDebugApiClient.py +++ b/src/device/service/drivers/ietf_l2vpn/TfsDebugApiClient.py @@ -45,6 +45,8 @@ MAPPING_DRIVER = { 'DEVICEDRIVER_IETF_L2VPN' : 7, 'DEVICEDRIVER_GNMI_OPENCONFIG' : 8, 'DEVICEDRIVER_FLEXSCALE' : 9, + 'DEVICEDRIVER_IETF_ACTN' : 10, + 'DEVICEDRIVER_SMARTNIC' : 12 } MSG_ERROR = 'Could not retrieve devices in remote TeraFlowSDN instance({:s}). status_code={:s} reply={:s}' diff --git a/src/device/service/drivers/smartnic/SmartnicDriver.py b/src/device/service/drivers/smartnic/SmartnicDriver.py new file mode 100644 index 000000000..4bad52db4 --- /dev/null +++ b/src/device/service/drivers/smartnic/SmartnicDriver.py @@ -0,0 +1,122 @@ +# 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, requests, threading +from requests.auth import HTTPBasicAuth +from typing import Any, Iterator, List, Optional, Tuple, Union +from common.method_wrappers.Decorator import MetricsPool, metered_subclass_method +from common.type_checkers.Checkers import chk_string, chk_type +from device.service.driver_api._Driver import _Driver +from . import ALL_RESOURCE_KEYS +from .Tools import create_connectivity_service, find_key, config_getter, delete_connectivity_service + +LOGGER = logging.getLogger(__name__) + +DRIVER_NAME = 'smartnic' +METRICS_POOL = MetricsPool('Device', 'Driver', labels={'driver': DRIVER_NAME}) + +class SmartnicDriver(_Driver): + def __init__(self, address: str, port: int, **settings) -> None: + super().__init__(DRIVER_NAME, address, port, **settings) + self.__lock = threading.Lock() + self.__started = threading.Event() + self.__terminate = threading.Event() + username = self.settings.get('username') + password = self.settings.get('password') + #self.__auth = HTTPBasicAuth(username, password) if username is not None and password is not None else None + scheme = self.settings.get('scheme', 'http') + self.__tapi_root = '{:s}://{:s}:{:d}'.format(scheme, self.address, int(self.port)) + self.__timeout = int(self.settings.get('timeout', 120)) + + def Connect(self) -> bool: + url = self.__tapi_root + with self.__lock: + if self.__started.is_set(): return True + try: + requests.get(url, timeout=self.__timeout, verify=False) + #requests.get(url, timeout=self.__timeout, verify=False, auth=self.__auth) + except requests.exceptions.Timeout: + LOGGER.exception('Timeout connecting {:s}'.format(str(self.__tapi_root))) + return False + except Exception: # pylint: disable=broad-except + LOGGER.exception('Exception connecting {:s}'.format(str(self.__tapi_root))) + return False + else: + self.__started.set() + return True + + def Disconnect(self) -> bool: + with self.__lock: + self.__terminate.set() + return True + + @metered_subclass_method(METRICS_POOL) + def GetInitialConfig(self) -> List[Tuple[str, Any]]: + with self.__lock: + return [] + + @metered_subclass_method(METRICS_POOL) + def GetConfig(self, resource_keys : List[str] = []) -> List[Tuple[str, Union[Any, None, Exception]]]: + chk_type('resources', resource_keys, list) + results = [] + with self.__lock: + if len(resource_keys) == 0: resource_keys = ALL_RESOURCE_KEYS + for i, resource_key in enumerate(resource_keys): + str_resource_name = 'resource_key[#{:d}]'.format(i) + chk_string(str_resource_name, resource_key, allow_empty=False) + results.extend(config_getter( + self.__tapi_root, resource_key, timeout=self.__timeout)) + return results + + @metered_subclass_method(METRICS_POOL) + def SetConfig(self, resources: List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: + results = [] + if len(resources) == 0: + return results + with self.__lock: + for resource in resources: + LOGGER.info('resource = {:s}'.format(str(resource))) + config_rules = find_key(resource, 'config_rules') + data = create_connectivity_service( + self.__tapi_root, config_rules, timeout=self.__timeout) + results.extend(data) + return results + + @metered_subclass_method(METRICS_POOL) + def DeleteConfig(self, resources: List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: + results = [] + if len(resources) == 0: return results + with self.__lock: + for resource in resources: + LOGGER.info('resource = {:s}'.format(str(resource))) + config_rules = find_key(resource, 'config_rules') + results.extend(delete_connectivity_service( + self.__tapi_root, config_rules, timeout=self.__timeout)) + return results + + @metered_subclass_method(METRICS_POOL) + def SubscribeState(self, subscriptions : List[Tuple[str, float, float]]) -> List[Union[bool, Exception]]: + # TODO: TAPI does not support monitoring by now + return [False for _ in subscriptions] + + @metered_subclass_method(METRICS_POOL) + def UnsubscribeState(self, subscriptions : List[Tuple[str, float, float]]) -> List[Union[bool, Exception]]: + # TODO: TAPI does not support monitoring by now + return [False for _ in subscriptions] + + def GetState( + self, blocking=False, terminate : Optional[threading.Event] = None + ) -> Iterator[Tuple[float, str, Any]]: + # TODO: TAPI does not support monitoring by now + return [] diff --git a/src/device/service/drivers/smartnic/Tools.py b/src/device/service/drivers/smartnic/Tools.py new file mode 100644 index 000000000..54961bbdd --- /dev/null +++ b/src/device/service/drivers/smartnic/Tools.py @@ -0,0 +1,174 @@ +# 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 json, logging, operator, requests +from requests.auth import HTTPBasicAuth +from typing import Optional +#from device.service.driver_api._Driver import RESOURCE_ENDPOINTS, RESOURCE_SERVICES, RESOURCE_INTERFACES + + +import logging +from typing import Any, Dict, Optional, Tuple +from common.proto.kpi_sample_types_pb2 import KpiSampleType +from common.type_checkers.Checkers import chk_attribute, chk_string, chk_type +from device.service.driver_api._Driver import RESOURCE_ENDPOINTS, RESOURCE_INTERFACES + +LOGGER = logging.getLogger(__name__) + + +SPECIAL_RESOURCE_MAPPINGS = { + RESOURCE_ENDPOINTS : '/endpoints', + RESOURCE_INTERFACES : '/interfaces' +} + +HTTP_OK_CODES = { + 200, # OK + 201, # Created + 202, # Accepted + 204, # No Content +} + +def find_key(resource, key): + return json.loads(resource[1])[key] + + +def config_getter( + root_url : str, resource_key : str, auth : Optional[HTTPBasicAuth] = None, timeout : Optional[int] = None +): + url = '{:s}/manage-probe/ports'.format(root_url) + result = [] + try: + response = requests.get(url, timeout=timeout, verify=False) + except requests.exceptions.Timeout: + LOGGER.exception('Timeout connecting {:s}'.format(url)) + return result + except Exception as e: # pylint: disable=broad-except + LOGGER.exception('Exception retrieving {:s}'.format(resource_key)) + result.append((resource_key, e)) + return result + return response + + # try: + # context = json.loads(response.content) + # except Exception as e: # pylint: disable=broad-except + # LOGGER.warning('Unable to decode reply: {:s}'.format(str(response.content))) + # result.append((resource_key, e)) + # return result + + + +def create_connectivity_service( + root_url, config_rules, timeout : Optional[int] = None, auth : Optional[HTTPBasicAuth] = None +): + + url = '{:s}/configure'.format(root_url) + headers = {'content-type': 'application/json'} + results = [] + try: + LOGGER.info('Configuring Smartnic rules') + response = requests.post( + url=url, data=json.dumps(config_rules), timeout=timeout, headers=headers, verify=False) + LOGGER.info('SmartNIC Probes response: {:s}'.format(str(response))) + except Exception as e: # pylint: disable=broad-except + LOGGER.exception('Exception creating ConfigRule') + results.append(e) + else: + if response.status_code not in HTTP_OK_CODES: + msg = 'Could not create ConfigRule status_code={:s} reply={:s}' + LOGGER.error(msg.format(str(response.status_code), str(response))) + results.append(response.status_code in HTTP_OK_CODES) + return results + +def delete_connectivity_service(root_url, config_rules, timeout : Optional[int] = None, auth : Optional[HTTPBasicAuth] = None +): + url = '{:s}/configure'.format(root_url) + results = [] + try: + response = requests.delete(url=url, timeout=timeout, verify=False) + except Exception as e: # pylint: disable=broad-except + LOGGER.exception('Exception deleting ConfigRule') + results.append(e) + else: + if response.status_code not in HTTP_OK_CODES: + msg = 'Could not delete ConfigRule status_code={:s} reply={:s}' + LOGGER.error(msg.format(str(response.status_code), str(response))) + results.append(response.status_code in HTTP_OK_CODES) + return results + +def process_optional_string_field( + endpoint_data : Dict[str, Any], field_name : str, endpoint_resource_value : Dict[str, Any] +) -> None: + field_value = chk_attribute(field_name, endpoint_data, 'endpoint_data', default=None) + if field_value is None: return + chk_string('endpoint_data.{:s}'.format(field_name), field_value) + if len(field_value) > 0: endpoint_resource_value[field_name] = field_value + +def compose_resource_endpoint(endpoint_data : Dict[str, Any]) -> Optional[Tuple[str, Dict]]: + try: + # Check type of endpoint_data + chk_type('endpoint_data', endpoint_data, dict) + + # Check endpoint UUID (mandatory) + endpoint_uuid = chk_attribute('uuid', endpoint_data, 'endpoint_data') + chk_string('endpoint_data.uuid', endpoint_uuid, min_length=1) + endpoint_resource_path = SPECIAL_RESOURCE_MAPPINGS.get(RESOURCE_ENDPOINTS) + endpoint_resource_key = '{:s}/endpoint[{:s}]'.format(endpoint_resource_path, endpoint_uuid) + endpoint_resource_value = {'uuid': endpoint_uuid} + + # Check endpoint optional string fields + process_optional_string_field(endpoint_data, 'name', endpoint_resource_value) + process_optional_string_field(endpoint_data, 'type', endpoint_resource_value) + process_optional_string_field(endpoint_data, 'context_uuid', endpoint_resource_value) + process_optional_string_field(endpoint_data, 'topology_uuid', endpoint_resource_value) + + # Check endpoint sample types (optional) + endpoint_sample_types = chk_attribute('sample_types', endpoint_data, 'endpoint_data', default=[]) + chk_type('endpoint_data.sample_types', endpoint_sample_types, list) + sample_types = {} + sample_type_errors = [] + for i,endpoint_sample_type in enumerate(endpoint_sample_types): + field_name = 'endpoint_data.sample_types[{:d}]'.format(i) + try: + chk_type(field_name, endpoint_sample_type, (int, str)) + if isinstance(endpoint_sample_type, int): + metric_name = KpiSampleType.Name(endpoint_sample_type) + metric_id = endpoint_sample_type + elif isinstance(endpoint_sample_type, str): + metric_id = KpiSampleType.Value(endpoint_sample_type) + metric_name = endpoint_sample_type + else: + str_type = str(type(endpoint_sample_type)) + raise Exception('Bad format: {:s}'.format(str_type)) # pylint: disable=broad-exception-raised + except Exception as e: # pylint: disable=broad-exception-caught + MSG = 'Unsupported {:s}({:s}) : {:s}' + sample_type_errors.append(MSG.format(field_name, str(endpoint_sample_type), str(e))) + + metric_name = metric_name.lower().replace('kpisampletype_', '') + monitoring_resource_key = '{:s}/state/{:s}'.format(endpoint_resource_key, metric_name) + sample_types[metric_id] = monitoring_resource_key + + if len(sample_type_errors) > 0: + # pylint: disable=broad-exception-raised + raise Exception('Malformed Sample Types:\n{:s}'.format('\n'.join(sample_type_errors))) + + if len(sample_types) > 0: + endpoint_resource_value['sample_types'] = sample_types + + if 'location' in endpoint_data: + endpoint_resource_value['location'] = endpoint_data['location'] + + return endpoint_resource_key, endpoint_resource_value + except: # pylint: disable=bare-except + LOGGER.exception('Problem composing endpoint({:s})'.format(str(endpoint_data))) + return None diff --git a/src/device/service/drivers/smartnic/__init__.py b/src/device/service/drivers/smartnic/__init__.py new file mode 100644 index 000000000..bc88d00fa --- /dev/null +++ b/src/device/service/drivers/smartnic/__init__.py @@ -0,0 +1,20 @@ +# 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. +from device.service.driver_api._Driver import RESOURCE_ENDPOINTS, RESOURCE_SERVICES, RESOURCE_INTERFACES + +ALL_RESOURCE_KEYS = [ + RESOURCE_ENDPOINTS, + RESOURCE_SERVICES, + RESOURCE_INTERFACES +] diff --git a/src/nbi/service/__main__.py b/src/nbi/service/__main__.py index 8834e45a2..0b6fb18e3 100644 --- a/src/nbi/service/__main__.py +++ b/src/nbi/service/__main__.py @@ -20,6 +20,7 @@ from common.Settings import ( wait_for_environment_variables) from .NbiService import NbiService from .rest_server.RestServer import RestServer +from .rest_server.nbi_plugins.agent_probes import register_agent_probes from .rest_server.nbi_plugins.debug_api import register_debug_api from .rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api from .rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn @@ -62,6 +63,7 @@ def main(): grpc_service.start() rest_server = RestServer() + register_agent_probes(rest_server) register_debug_api(rest_server) register_etsi_bwm_api(rest_server) register_ietf_l2vpn(rest_server) # Registering L2VPN entrypoint diff --git a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py new file mode 100644 index 000000000..2b0a537cc --- /dev/null +++ b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py @@ -0,0 +1,236 @@ +# 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 json +from flask.json import jsonify +from flask_restful import Resource, request +from common.proto.context_pb2 import Empty +from common.tools.grpc.Tools import grpc_message_to_json +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient +from .Tools import ( + format_grpc_to_json, grpc_connection_id, grpc_context_id, grpc_device, grpc_device_id, grpc_link_id, grpc_policy_rule_id, + grpc_service_id, grpc_service, grpc_slice_id, grpc_topology_id) + +class _Resource(Resource): + def __init__(self) -> None: + super().__init__() + self.client = ContextClient() + self.device_client = DeviceClient() + self.service_client = ServiceClient() + +class ContextIds(_Resource): + def get(self): + return format_grpc_to_json(self.client.ListContextIds(Empty())) + +class Contexts(_Resource): + def get(self): + return format_grpc_to_json(self.client.ListContexts(Empty())) + +class DummyContexts(_Resource): + def get(self): + contexts = grpc_message_to_json(self.client.ListContexts(Empty()), use_integers_for_enums=True)['contexts'] + devices = grpc_message_to_json(self.client.ListDevices(Empty()), use_integers_for_enums=True)['devices'] + links = grpc_message_to_json(self.client.ListLinks(Empty()), use_integers_for_enums=True)['links'] + + topologies = list() + slices = list() + services = list() + connections = list() + + for context in contexts: + context_uuid = context['context_id']['context_uuid']['uuid'] + context_id = grpc_context_id(context_uuid) + + topologies.extend(grpc_message_to_json( + self.client.ListTopologies(context_id), + use_integers_for_enums=True + )['topologies']) + + slices.extend(grpc_message_to_json( + self.client.ListSlices(context_id), + use_integers_for_enums=True + )['slices']) + + context_services = grpc_message_to_json( + self.client.ListServices(context_id), + use_integers_for_enums=True + )['services'] + services.extend(context_services) + + for service in context_services: + service_uuid = service['service_id']['service_uuid']['uuid'] + service_id = grpc_service_id(context_uuid, service_uuid) + connections.extend(grpc_message_to_json( + self.client.ListConnections(service_id), + use_integers_for_enums=True + )['connections']) + + for device in devices: + for config_rule in device['device_config']['config_rules']: + if 'custom' not in config_rule: continue + resource_value = config_rule['custom']['resource_value'] + if not isinstance(resource_value, str): continue + try: + resource_value = json.loads(resource_value) + except: # pylint: disable=bare-except + pass + config_rule['custom']['resource_value'] = resource_value + + dummy_context = {'dummy_mode': True} + if len(contexts ) > 0: dummy_context['contexts' ] = contexts + if len(topologies ) > 0: dummy_context['topologies' ] = topologies + if len(devices ) > 0: dummy_context['devices' ] = devices + if len(links ) > 0: dummy_context['links' ] = links + if len(slices ) > 0: dummy_context['slices' ] = slices + if len(services ) > 0: dummy_context['services' ] = services + if len(connections) > 0: dummy_context['connections'] = connections + return jsonify(dummy_context) + +class Context(_Resource): + def get(self, context_uuid : str): + return format_grpc_to_json(self.client.GetContext(grpc_context_id(context_uuid))) + +class TopologyIds(_Resource): + def get(self, context_uuid : str): + return format_grpc_to_json(self.client.ListTopologyIds(grpc_context_id(context_uuid))) + +class Topologies(_Resource): + def get(self, context_uuid : str): + return format_grpc_to_json(self.client.ListTopologies(grpc_context_id(context_uuid))) + +class Topology(_Resource): + def get(self, context_uuid : str, topology_uuid : str): + return format_grpc_to_json(self.client.GetTopology(grpc_topology_id(context_uuid, topology_uuid))) + +class ServiceIds(_Resource): + def get(self, context_uuid : str): + return format_grpc_to_json(self.client.ListServiceIds(grpc_context_id(context_uuid))) + +class Services(_Resource): + def get(self, context_uuid : str): + return format_grpc_to_json(self.client.ListServices(grpc_context_id(context_uuid))) + +class Service(_Resource): + def get(self, context_uuid : str, service_uuid : str): + return format_grpc_to_json(self.client.GetService(grpc_service_id(context_uuid, service_uuid))) + + def post(self, context_uuid : str, service_uuid : str): # pylint: disable=unused-argument + service = request.get_json()['services'][0] + return format_grpc_to_json(self.service_client.CreateService(grpc_service( + service_uuid = service['service_id']['service_uuid']['uuid'], + service_type = service['service_type'], + context_uuid = service['service_id']['context_id']['context_uuid']['uuid'], + ))) + + def put(self, context_uuid : str, service_uuid : str): # pylint: disable=unused-argument + service = request.get_json()['services'][0] + return format_grpc_to_json(self.service_client.UpdateService(grpc_service( + service_uuid = service['service_id']['service_uuid']['uuid'], + service_type = service['service_type'], + context_uuid = service['service_id']['context_id']['context_uuid']['uuid'], + status = service['service_status']['service_status'], + endpoint_ids = service['service_endpoint_ids'], + constraints = service['service_constraints'], + config_rules = service['service_config']['config_rules'] + ))) + + def delete(self, context_uuid : str, service_uuid : str): + return format_grpc_to_json(self.service_client.DeleteService(grpc_service_id( + context_uuid, service_uuid, + ))) + +class SliceIds(_Resource): + def get(self, context_uuid : str): + return format_grpc_to_json(self.client.ListSliceIds(grpc_context_id(context_uuid))) + +class Slices(_Resource): + def get(self, context_uuid : str): + return format_grpc_to_json(self.client.ListSlices(grpc_context_id(context_uuid))) + +class Slice(_Resource): + def get(self, context_uuid : str, slice_uuid : str): + return format_grpc_to_json(self.client.GetSlice(grpc_slice_id(context_uuid, slice_uuid))) + +class DeviceIds(_Resource): + def get(self): + return format_grpc_to_json(self.client.ListDeviceIds(Empty())) + +class Devices(_Resource): + def get(self): + return format_grpc_to_json(self.client.ListDevices(Empty())) + +class Device(_Resource): + def get(self, device_uuid : str): + return format_grpc_to_json(self.client.GetDevice(grpc_device_id(device_uuid))) + + def post(self, device_uuid : str): # pylint: disable=unused-argument + device = request.get_json()['devices'][0] + return format_grpc_to_json(self.device_client.AddDevice(grpc_device( + device_uuid = device['device_id']['device_uuid']['uuid'], + device_type = device['device_type'], + config_rules = device['device_config']['config_rules'], + status = device['device_operational_status'], + drivers = device['device_drivers'], + endpoints = device['device_endpoints'] + ))) + + def put(self, device_uuid : str): # pylint: disable=unused-argument + device = request.get_json()['devices'][0] + return format_grpc_to_json(self.device_client.ConfigureDevice(grpc_device( + device_uuid = device['device_id']['device_uuid']['uuid'], + device_type = device['device_type'], + device_config = device['device_config']['config_rules'], + device_operational_status = device['device_operational_status'], + device_drivers = device['device_drivers'], + device_endpoints = device['device_endpoints'] + ))) + + +class LinkIds(_Resource): + def get(self): + return format_grpc_to_json(self.client.ListLinkIds(Empty())) + +class Links(_Resource): + def get(self): + return format_grpc_to_json(self.client.ListLinks(Empty())) + +class Link(_Resource): + def get(self, link_uuid : str): + return format_grpc_to_json(self.client.GetLink(grpc_link_id(link_uuid))) + +class ConnectionIds(_Resource): + def get(self, context_uuid : str, service_uuid : str): + return format_grpc_to_json(self.client.ListConnectionIds(grpc_service_id(context_uuid, service_uuid))) + +class Connections(_Resource): + def get(self, context_uuid : str, service_uuid : str): + return format_grpc_to_json(self.client.ListConnections(grpc_service_id(context_uuid, service_uuid))) + +class Connection(_Resource): + def get(self, connection_uuid : str): + return format_grpc_to_json(self.client.GetConnection(grpc_connection_id(connection_uuid))) + +class PolicyRuleIds(_Resource): + def get(self): + return format_grpc_to_json(self.client.ListPolicyRuleIds(Empty())) + +class PolicyRules(_Resource): + def get(self): + return format_grpc_to_json(self.client.ListPolicyRules(Empty())) + +class PolicyRule(_Resource): + def get(self, policy_rule_uuid : str): + return format_grpc_to_json(self.client.GetPolicyRule(grpc_policy_rule_id(policy_rule_uuid))) diff --git a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py new file mode 100644 index 000000000..17b6dcdfd --- /dev/null +++ b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py @@ -0,0 +1,118 @@ +# 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. + +from flask.json import jsonify +from common.proto.context_pb2 import ( + ConnectionId, ContextId, DeviceDriverEnum, Device, DeviceId, DeviceOperationalStatusEnum, LinkId, ServiceId, SliceId, TopologyId, Service, ServiceStatusEnum +) +from common.proto.policy_pb2 import PolicyRuleId +from common.tools.grpc.Tools import grpc_message_to_json +from common.tools.object_factory.Connection import json_connection_id +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.ConfigRule import json_config_rule +from common.tools.object_factory.Constraint import json_constraint_custom +from common.tools.object_factory.EndPoint import json_endpoint_id, json_endpoint +from common.tools.object_factory.Device import json_device_id, json_device +from common.tools.object_factory.Link import json_link_id +from common.tools.object_factory.PolicyRule import json_policyrule_id +from common.tools.object_factory.Service import json_service_id, json_service +from common.tools.object_factory.Slice import json_slice_id +from common.tools.object_factory.Topology import json_topology_id + + +def format_grpc_to_json(grpc_reply): + return jsonify(grpc_message_to_json(grpc_reply)) + +def grpc_connection_id(connection_uuid): + return ConnectionId(**json_connection_id(connection_uuid)) + +def grpc_context_id(context_uuid): + return ContextId(**json_context_id(context_uuid)) + +def grpc_device_id(device_uuid): + return DeviceId(**json_device_id(device_uuid)) + +def grpc_device( + device_uuid, device_type, config_rules=None, status=None, drivers=None, endpoints=None +): + json_config_rules = [ + json_config_rule( + config_rule['action'], + config_rule['custom']['resource_key'], + config_rule['custom']['resource_value'] + ) + for config_rule in config_rules + ] if config_rules else [] + json_status = status if status else DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_UNDEFINED + json_drivers = drivers if drivers else DeviceDriverEnum.DEVICEDRIVER_UNDEFINED + json_endpoints = [ + json_endpoint( + endpoint['device_id']['device_uuid']['uuid'], + endpoint['endpoint_uuid']['uuid'], + endpoint['endpoint_type'], + endpoint['topology_id'], + endpoint['kpi_sample_types'], + endpoint['location']['region'] + ) + for endpoint in endpoints + ] if endpoints else [] + return Device(**json_device( + device_uuid, device_type, json_config_rules, json_status, + json_drivers, json_endpoints)) + +def grpc_link_id(link_uuid): + return LinkId(**json_link_id(link_uuid)) + +def grpc_service_id(context_uuid, service_uuid): + return ServiceId(**json_service_id(service_uuid, context_id=json_context_id(context_uuid))) + +def grpc_service( + service_uuid, service_type, context_uuid, status=None, endpoint_ids=None, constraints=None, config_rules=None +): + json_context = json_context_id(context_uuid) + json_status = status if status else ServiceStatusEnum.SERVICESTATUS_PLANNED + json_endpoints_ids = [ + json_endpoint_id( + json_device_id(endpoint_id['device_id']['device_uuid']['uuid']), + endpoint_id['endpoint_uuid']['uuid'] + ) + for endpoint_id in endpoint_ids + ] if endpoint_ids else [] + json_constraints = [ + json_constraint_custom( + constraint['custom']['constraint_type'], + constraint['custom']['constraint_value'] + ) + for constraint in constraints + ] if constraints else [] + json_config_rules = [ + json_config_rule( + config_rule['action'], + config_rule['custom']['resource_key'], + config_rule['custom']['resource_value'] + ) + for config_rule in config_rules + ] if config_rules else [] + return Service(**json_service( + service_uuid, service_type, json_context, json_status, + json_endpoints_ids, json_constraints, json_config_rules)) + +def grpc_slice_id(context_uuid, slice_uuid): + return SliceId(**json_slice_id(slice_uuid, context_id=json_context_id(context_uuid))) + +def grpc_topology_id(context_uuid, topology_uuid): + return TopologyId(**json_topology_id(topology_uuid, context_id=json_context_id(context_uuid))) + +def grpc_policy_rule_id(policy_rule_uuid): + return PolicyRuleId(**json_policyrule_id(policy_rule_uuid)) diff --git a/src/nbi/service/rest_server/nbi_plugins/agent_probes/__init__.py b/src/nbi/service/rest_server/nbi_plugins/agent_probes/__init__.py new file mode 100644 index 000000000..0b85500fc --- /dev/null +++ b/src/nbi/service/rest_server/nbi_plugins/agent_probes/__init__.py @@ -0,0 +1,69 @@ +# 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. + +from nbi.service.rest_server.RestServer import RestServer +from .Resources import ( + Connection, ConnectionIds, Connections, + Context, ContextIds, Contexts, + Device, DeviceIds, Devices, + DummyContexts, + Link, LinkIds, Links, + PolicyRule, PolicyRuleIds, PolicyRules, + Service, ServiceIds, Services, + Slice, SliceIds, Slices, + Topologies, Topology, TopologyIds +) + +URL_PREFIX = '/agent-probes' + +# Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type. +RESOURCES = [ + # (endpoint_name, resource_class, resource_url) + # ('api.context_ids', ContextIds, '/context_ids'), + # ('api.contexts', Contexts, '/contexts'), + # ('api.dummy_contexts', DummyContexts, '/dummy_contexts'), + # ('api.context', Context, '/context/<path:context_uuid>'), + + # ('api.topology_ids', TopologyIds, '/context/<path:context_uuid>/topology_ids'), + # ('api.topologies', Topologies, '/context/<path:context_uuid>/topologies'), + # ('api.topology', Topology, '/context/<path:context_uuid>/topology/<path:topology_uuid>'), + + # ('api.service_ids', ServiceIds, '/context/<path:context_uuid>/service_ids'), + # ('api.services', Services, '/context/<path:context_uuid>/services'), + # ('api.service', Service, '/context/<path:context_uuid>/service/<path:service_uuid>'), + + # ('api.slice_ids', SliceIds, '/context/<path:context_uuid>/slice_ids'), + # ('api.slices', Slices, '/context/<path:context_uuid>/slices'), + # ('api.slice', Slice, '/context/<path:context_uuid>/slice/<path:slice_uuid>'), + + ('api.smartnic.device_ids', DeviceIds, '/device_ids'), + ('api.smartnic.devices', Devices, '/devices'), + ('api.smartnic.device', Device, '/device/<path:device_uuid>'), + + # ('api.link_ids', LinkIds, '/link_ids'), + # ('api.links', Links, '/links'), + # ('api.link', Link, '/link/<path:link_uuid>'), + + # ('api.connection_ids', ConnectionIds, '/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids'), + # ('api.connections', Connections, '/context/<path:context_uuid>/service/<path:service_uuid>/connections'), + # ('api.connection', Connection, '/connection/<path:connection_uuid>'), + + # ('api.policyrule_ids', PolicyRuleIds, '/policyrule_ids'), + # ('api.policyrules', PolicyRules, '/policyrules'), + # ('api.policyrule', PolicyRule, '/policyrule/<path:policyrule_uuid>'), +] + +def register_agent_probes(rest_server : RestServer): + for endpoint_name, resource_class, resource_url in RESOURCES: + rest_server.add_resource(resource_class, URL_PREFIX + resource_url, endpoint=endpoint_name) diff --git a/src/nbi/tests/data/agent_probes_configuration_rule.json b/src/nbi/tests/data/agent_probes_configuration_rule.json new file mode 100644 index 000000000..dbbf953ad --- /dev/null +++ b/src/nbi/tests/data/agent_probes_configuration_rule.json @@ -0,0 +1,17 @@ +{ + "devices": [ + { + "device_id": {"device_uuid":{"uuid":"smp-01"}}, + "device_type": "smartnic", + "device_config": {"config_rules": [ + {"action": 1, "custom": { + "resource_key": "config_rules", + "resource_value": {"pipeline_name":"pipeline_example","num_threads":2,"pipeline_batch_size":2048,"model_max_batch_size":4096,"input_file":"inputfile1.csv","output_file":"outputfile1.csv","nic_addr": "10.10.2.25", "gpu_addr":"11.6.15.2", "model_fea_length":8,"model_name":"modelname1","iterative":false,"server_url":"servertest.com","file_type":"csv","stages":{"FileSourceStage":{"stage_name":"FileSourceStage","FileSourceStage":{"fs_configuration":{"FsConf":{"mode":"FsConf"}},"filename":"file1.csv","file_type":"csv"}},"DeserializeStage":{"stage_name":"DeserializeStage","DeserializeStage":{"ds_configuration":{"DeserializeConf":{"mode":"DeserializeConf"}}}},"AbpPcapPreprocessingStage":{"stage_name":"AbpPcapPreprocessingStage","AbpPcapPreprocessingStage":{"apps_configuration":{"AppsConf":{"mode":"AppsConf"}}}},"MonitorStage":{"stage_name":"MonitorStage","MonitorStage":{"ms_configuration":{"MonitoringConf":{"mode":"MonitoringConf"}},"descriptions":"MetricMonitoring","unit":"kbps"}},"TritonInferenceStage":{"stage_name":"TritonInferenceStage","TritonInferenceStage":{"tis_configuration":{"TritonConf":{"mode":"TritonConf"}},"model_name":"Modeltest1","server_url":"servertest.com","force_convert_inputs":false}},"AddClassificationsStage":{"stage_name":"AddClassificationsStage","AddClassificationsStage":{"acs_configuration":{"ClassificationConf":{"mode":"ClassificationConf"}}}},"SerializeStage":{"stage_name":"SerializeStage","SerializeStage":{"ss_configuration":{"SerializeConf":{"mode":"SerializeConf"}}}},"WriteToFileStage":{"stage_name":"WriteToFileStage","WriteToFileStage":{"wfs_configuration":{"WFSConf":{"mode":"WFSConf"}},"wfs_filename":"file2.txt","overwrite":false}},"CustomStage":{"stage_name":"CustomStage","custom":{"name":{"field_name":"name","field_value":"test"}}}}} + }} + ]}, + "device_operational_status": 1, + "device_drivers": ["smartnic"], + "device_endpoints": [] + } + ] +} diff --git a/src/nbi/tests/data/agent_probes_device.json b/src/nbi/tests/data/agent_probes_device.json new file mode 100644 index 000000000..e9d931528 --- /dev/null +++ b/src/nbi/tests/data/agent_probes_device.json @@ -0,0 +1,27 @@ +{ + + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"topology_uuid": {"uuid": "admin"}, "context_id": {"context_uuid": {"uuid": "admin"}}}} + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "smp-01"}}, + "device_type": "smartnic", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "172.17.0.3"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8000"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "username": "admin", "password": "admin", "base_url": "/manage-probe", "timeout" : 120 + }}} + ]}, + "device_operational_status": 1, + "device_drivers": [12], + "device_endpoints": [] + } + + ] +} + \ No newline at end of file diff --git a/src/policy/Dockerfile b/src/policy/Dockerfile deleted file mode 120000 index eec732273..000000000 --- a/src/policy/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -src/main/docker/Dockerfile.multistage.jvm \ No newline at end of file diff --git a/src/policy/Dockerfile b/src/policy/Dockerfile new file mode 100644 index 000000000..2c6412d07 --- /dev/null +++ b/src/policy/Dockerfile @@ -0,0 +1,66 @@ +# 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. + +# Multi-stage Docker image build + +# Stage 1 +FROM maven:3-jdk-11 AS builder + +# Define working directory +WORKDIR /app + +# Copy every file in working directory, as defined in .dockerignore file +COPY ./pom.xml pom.xml +COPY ./src src/ +COPY ./target/generated-sources/ target/generated-sources/ +RUN mvn --errors --batch-mode package -Dmaven.test.skip=true + +# Stage 2 +FROM builder AS unit-test + +RUN mvn --errors --batch-mode -Pgenerate-consolidated-coverage verify + +# Stage 3 +FROM registry.access.redhat.com/ubi8/ubi-minimal:8.4 AS release + +ARG JAVA_PACKAGE=java-11-openjdk-headless +ARG RUN_JAVA_VERSION=1.3.8 +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' +# Install java and the run-java script +# Also set up permissions for user `1001` +RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \ + && microdnf update \ + && microdnf clean all \ + && mkdir /deployments \ + && chown 1001 /deployments \ + && chmod "g+rwX" /deployments \ + && chown 1001:root /deployments \ + && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \ + && chown 1001 /deployments/run-java.sh \ + && chmod 540 /deployments/run-java.sh \ + && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/conf/security/java.security + +# Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size. +ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" +# We make four distinct layers so if there are application changes the library layers can be re-used +COPY --from=builder --chown=1001 /app/target/quarkus-app/lib/ /deployments/lib/ +COPY --from=builder --chown=1001 /app/target/quarkus-app/*.jar /deployments/ +COPY --from=builder --chown=1001 /app/target/quarkus-app/app/ /deployments/app/ +COPY --from=builder --chown=1001 /app/target/quarkus-app/quarkus/ /deployments/quarkus/ + +EXPOSE 8080 +EXPOSE 6060 +USER 1001 + +ENTRYPOINT [ "/deployments/run-java.sh" ] diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java b/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java index 570a7fb9e..018a08bdf 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/Serializer.java @@ -2304,6 +2304,8 @@ public class Serializer { return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_FLEXSCALE; case IETF_ACTN: return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_IETF_ACTN; + case SMARTNIC: + return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_SMARTNIC; case UNDEFINED: default: return ContextOuterClass.DeviceDriverEnum.DEVICEDRIVER_UNDEFINED; @@ -2333,6 +2335,8 @@ public class Serializer { return DeviceDriverEnum.FLEXSCALE; case DEVICEDRIVER_IETF_ACTN: return DeviceDriverEnum.IETF_ACTN; + case DEVICEDRIVER_SMARTNIC: + return DeviceDriverEnum.SMARTNIC; case DEVICEDRIVER_UNDEFINED: case UNRECOGNIZED: default: diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/model/DeviceDriverEnum.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/DeviceDriverEnum.java index 72a1d7136..937752dc8 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/context/model/DeviceDriverEnum.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/DeviceDriverEnum.java @@ -27,5 +27,6 @@ public enum DeviceDriverEnum { IETF_L2VPN, GNMI_OPENCONFIG, FLEXSCALE, - IETF_ACTN + IETF_ACTN, + SMARTNIC } diff --git a/src/policy/src/main/proto/acl.proto b/src/policy/src/main/proto/acl.proto deleted file mode 120000 index 158ae78eb..000000000 --- a/src/policy/src/main/proto/acl.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/acl.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/acl.proto b/src/policy/src/main/proto/acl.proto new file mode 100644 index 000000000..3dba735dc --- /dev/null +++ b/src/policy/src/main/proto/acl.proto @@ -0,0 +1,69 @@ +// 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. + +syntax = "proto3"; +package acl; + +enum AclRuleTypeEnum { + ACLRULETYPE_UNDEFINED = 0; + ACLRULETYPE_IPV4 = 1; + ACLRULETYPE_IPV6 = 2; + ACLRULETYPE_L2 = 3; + ACLRULETYPE_MPLS = 4; + ACLRULETYPE_MIXED = 5; +} + +enum AclForwardActionEnum { + ACLFORWARDINGACTION_UNDEFINED = 0; + ACLFORWARDINGACTION_DROP = 1; + ACLFORWARDINGACTION_ACCEPT = 2; + ACLFORWARDINGACTION_REJECT = 3; +} + +enum AclLogActionEnum { + ACLLOGACTION_UNDEFINED = 0; + ACLLOGACTION_NOLOG = 1; + ACLLOGACTION_SYSLOG = 2; +} + +message AclMatch { + uint32 dscp = 1; + uint32 protocol = 2; + string src_address = 3; + string dst_address = 4; + uint32 src_port = 5; + uint32 dst_port = 6; + uint32 start_mpls_label = 7; + uint32 end_mpls_label = 8; +} + +message AclAction { + AclForwardActionEnum forward_action = 1; + AclLogActionEnum log_action = 2; +} + +message AclEntry { + uint32 sequence_id = 1; + string description = 2; + AclMatch match = 3; + AclAction action = 4; +} + +message AclRuleSet { + string name = 1; + AclRuleTypeEnum type = 2; + string description = 3; + string user_id = 4; + repeated AclEntry entries = 5; +} diff --git a/src/policy/src/main/proto/context.proto b/src/policy/src/main/proto/context.proto deleted file mode 120000 index 7f33c4bc7..000000000 --- a/src/policy/src/main/proto/context.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/context.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/context.proto b/src/policy/src/main/proto/context.proto new file mode 100644 index 000000000..fce1e71ad --- /dev/null +++ b/src/policy/src/main/proto/context.proto @@ -0,0 +1,615 @@ +// 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. + +syntax = "proto3"; +package context; + +import "acl.proto"; +import "kpi_sample_types.proto"; + +service ContextService { + rpc ListContextIds (Empty ) returns ( ContextIdList ) {} + rpc ListContexts (Empty ) returns ( ContextList ) {} + rpc GetContext (ContextId ) returns ( Context ) {} + rpc SetContext (Context ) returns ( ContextId ) {} + rpc RemoveContext (ContextId ) returns ( Empty ) {} + rpc GetContextEvents (Empty ) returns (stream ContextEvent ) {} + + rpc ListTopologyIds (ContextId ) returns ( TopologyIdList ) {} + rpc ListTopologies (ContextId ) returns ( TopologyList ) {} + rpc GetTopology (TopologyId ) returns ( Topology ) {} + rpc GetTopologyDetails (TopologyId ) returns ( TopologyDetails ) {} + rpc SetTopology (Topology ) returns ( TopologyId ) {} + rpc RemoveTopology (TopologyId ) returns ( Empty ) {} + rpc GetTopologyEvents (Empty ) returns (stream TopologyEvent ) {} + + rpc ListDeviceIds (Empty ) returns ( DeviceIdList ) {} + rpc ListDevices (Empty ) returns ( DeviceList ) {} + rpc GetDevice (DeviceId ) returns ( Device ) {} + rpc SetDevice (Device ) returns ( DeviceId ) {} + rpc RemoveDevice (DeviceId ) returns ( Empty ) {} + rpc GetDeviceEvents (Empty ) returns (stream DeviceEvent ) {} + rpc SelectDevice (DeviceFilter ) returns ( DeviceList ) {} + rpc ListEndPointNames (EndPointIdList) returns ( EndPointNameList) {} + + rpc ListLinkIds (Empty ) returns ( LinkIdList ) {} + rpc ListLinks (Empty ) returns ( LinkList ) {} + rpc GetLink (LinkId ) returns ( Link ) {} + rpc SetLink (Link ) returns ( LinkId ) {} + rpc RemoveLink (LinkId ) returns ( Empty ) {} + rpc GetLinkEvents (Empty ) returns (stream LinkEvent ) {} + + rpc ListServiceIds (ContextId ) returns ( ServiceIdList ) {} + rpc ListServices (ContextId ) returns ( ServiceList ) {} + rpc GetService (ServiceId ) returns ( Service ) {} + rpc SetService (Service ) returns ( ServiceId ) {} + rpc UnsetService (Service ) returns ( ServiceId ) {} + rpc RemoveService (ServiceId ) returns ( Empty ) {} + rpc GetServiceEvents (Empty ) returns (stream ServiceEvent ) {} + rpc SelectService (ServiceFilter ) returns ( ServiceList ) {} + + rpc ListSliceIds (ContextId ) returns ( SliceIdList ) {} + rpc ListSlices (ContextId ) returns ( SliceList ) {} + rpc GetSlice (SliceId ) returns ( Slice ) {} + rpc SetSlice (Slice ) returns ( SliceId ) {} + rpc UnsetSlice (Slice ) returns ( SliceId ) {} + rpc RemoveSlice (SliceId ) returns ( Empty ) {} + rpc GetSliceEvents (Empty ) returns (stream SliceEvent ) {} + rpc SelectSlice (SliceFilter ) returns ( SliceList ) {} + + rpc ListConnectionIds (ServiceId ) returns ( ConnectionIdList) {} + rpc ListConnections (ServiceId ) returns ( ConnectionList ) {} + rpc GetConnection (ConnectionId ) returns ( Connection ) {} + rpc SetConnection (Connection ) returns ( ConnectionId ) {} + rpc RemoveConnection (ConnectionId ) returns ( Empty ) {} + rpc GetConnectionEvents(Empty ) returns (stream ConnectionEvent ) {} +} + +// ----- Generic ------------------------------------------------------------------------------------------------------- +message Empty {} + +message Uuid { + string uuid = 1; +} + +enum EventTypeEnum { + EVENTTYPE_UNDEFINED = 0; + EVENTTYPE_CREATE = 1; + EVENTTYPE_UPDATE = 2; + EVENTTYPE_REMOVE = 3; +} + +message Timestamp { + double timestamp = 1; +} + +message Event { + Timestamp timestamp = 1; + EventTypeEnum event_type = 2; +} + +// ----- Context ------------------------------------------------------------------------------------------------------- +message ContextId { + Uuid context_uuid = 1; +} + +message Context { + ContextId context_id = 1; + string name = 2; + repeated TopologyId topology_ids = 3; + repeated ServiceId service_ids = 4; + repeated SliceId slice_ids = 5; + TeraFlowController controller = 6; +} + +message ContextIdList { + repeated ContextId context_ids = 1; +} + +message ContextList { + repeated Context contexts = 1; +} + +message ContextEvent { + Event event = 1; + ContextId context_id = 2; +} + + +// ----- Topology ------------------------------------------------------------------------------------------------------ +message TopologyId { + ContextId context_id = 1; + Uuid topology_uuid = 2; +} + +message Topology { + TopologyId topology_id = 1; + string name = 2; + repeated DeviceId device_ids = 3; + repeated LinkId link_ids = 4; +} + +message TopologyDetails { + TopologyId topology_id = 1; + string name = 2; + repeated Device devices = 3; + repeated Link links = 4; +} + +message TopologyIdList { + repeated TopologyId topology_ids = 1; +} + +message TopologyList { + repeated Topology topologies = 1; +} + +message TopologyEvent { + Event event = 1; + TopologyId topology_id = 2; +} + + +// ----- Device -------------------------------------------------------------------------------------------------------- +message DeviceId { + Uuid device_uuid = 1; +} + +message Device { + DeviceId device_id = 1; + string name = 2; + string device_type = 3; + DeviceConfig device_config = 4; + DeviceOperationalStatusEnum device_operational_status = 5; + repeated DeviceDriverEnum device_drivers = 6; + repeated EndPoint device_endpoints = 7; + repeated Component components = 8; // Used for inventory + DeviceId controller_id = 9; // Identifier of node controlling the actual device +} + +message Component { //Defined previously to this section - Tested OK + Uuid component_uuid = 1; + string name = 2; + string type = 3; + + map<string, string> attributes = 4; // dict[attr.name => json.dumps(attr.value)] + string parent = 5; +} + +message DeviceConfig { + repeated ConfigRule config_rules = 1; +} + +enum DeviceDriverEnum { + DEVICEDRIVER_UNDEFINED = 0; // also used for emulated + DEVICEDRIVER_OPENCONFIG = 1; + DEVICEDRIVER_TRANSPORT_API = 2; + DEVICEDRIVER_P4 = 3; + DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4; + DEVICEDRIVER_ONF_TR_532 = 5; + DEVICEDRIVER_XR = 6; + DEVICEDRIVER_IETF_L2VPN = 7; + DEVICEDRIVER_GNMI_OPENCONFIG = 8; + DEVICEDRIVER_FLEXSCALE = 9; + DEVICEDRIVER_IETF_ACTN = 10; + DEVICEDRIVER_SMARTNIC = 11; +} + +enum DeviceOperationalStatusEnum { + DEVICEOPERATIONALSTATUS_UNDEFINED = 0; + DEVICEOPERATIONALSTATUS_DISABLED = 1; + DEVICEOPERATIONALSTATUS_ENABLED = 2; +} + +message DeviceIdList { + repeated DeviceId device_ids = 1; +} + +message DeviceList { + repeated Device devices = 1; +} + +message DeviceFilter { + DeviceIdList device_ids = 1; + bool include_endpoints = 2; + bool include_config_rules = 3; + bool include_components = 4; +} + +message DeviceEvent { + Event event = 1; + DeviceId device_id = 2; + DeviceConfig device_config = 3; +} + + +// ----- Link ---------------------------------------------------------------------------------------------------------- +message LinkId { + Uuid link_uuid = 1; +} + +message LinkAttributes { + float total_capacity_gbps = 1; + float used_capacity_gbps = 2; +} + +message Link { + LinkId link_id = 1; + string name = 2; + repeated EndPointId link_endpoint_ids = 3; + LinkAttributes attributes = 4; +} + +message LinkIdList { + repeated LinkId link_ids = 1; +} + +message LinkList { + repeated Link links = 1; +} + +message LinkEvent { + Event event = 1; + LinkId link_id = 2; +} + + +// ----- Service ------------------------------------------------------------------------------------------------------- +message ServiceId { + ContextId context_id = 1; + Uuid service_uuid = 2; +} + +message Service { + ServiceId service_id = 1; + string name = 2; + ServiceTypeEnum service_type = 3; + repeated EndPointId service_endpoint_ids = 4; + repeated Constraint service_constraints = 5; + ServiceStatus service_status = 6; + ServiceConfig service_config = 7; + Timestamp timestamp = 8; +} + +enum ServiceTypeEnum { + SERVICETYPE_UNKNOWN = 0; + SERVICETYPE_L3NM = 1; + SERVICETYPE_L2NM = 2; + SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3; + SERVICETYPE_TE = 4; + SERVICETYPE_E2E = 5; +} + +enum ServiceStatusEnum { + SERVICESTATUS_UNDEFINED = 0; + SERVICESTATUS_PLANNED = 1; + SERVICESTATUS_ACTIVE = 2; + SERVICESTATUS_UPDATING = 3; + SERVICESTATUS_PENDING_REMOVAL = 4; + SERVICESTATUS_SLA_VIOLATED = 5; +} + +message ServiceStatus { + ServiceStatusEnum service_status = 1; +} + +message ServiceConfig { + repeated ConfigRule config_rules = 1; +} + +message ServiceIdList { + repeated ServiceId service_ids = 1; +} + +message ServiceList { + repeated Service services = 1; +} + +message ServiceFilter { + ServiceIdList service_ids = 1; + bool include_endpoint_ids = 2; + bool include_constraints = 3; + bool include_config_rules = 4; +} + +message ServiceEvent { + Event event = 1; + ServiceId service_id = 2; +} + +// ----- Slice --------------------------------------------------------------------------------------------------------- +message SliceId { + ContextId context_id = 1; + Uuid slice_uuid = 2; +} + +message Slice { + SliceId slice_id = 1; + string name = 2; + repeated EndPointId slice_endpoint_ids = 3; + repeated Constraint slice_constraints = 4; + repeated ServiceId slice_service_ids = 5; + repeated SliceId slice_subslice_ids = 6; + SliceStatus slice_status = 7; + SliceConfig slice_config = 8; + SliceOwner slice_owner = 9; + Timestamp timestamp = 10; +} + +message SliceOwner { + Uuid owner_uuid = 1; + string owner_string = 2; +} + +enum SliceStatusEnum { + SLICESTATUS_UNDEFINED = 0; + SLICESTATUS_PLANNED = 1; + SLICESTATUS_INIT = 2; + SLICESTATUS_ACTIVE = 3; + SLICESTATUS_DEINIT = 4; + SLICESTATUS_SLA_VIOLATED = 5; +} + +message SliceStatus { + SliceStatusEnum slice_status = 1; +} + +message SliceConfig { + repeated ConfigRule config_rules = 1; +} + +message SliceIdList { + repeated SliceId slice_ids = 1; +} + +message SliceList { + repeated Slice slices = 1; +} + +message SliceFilter { + SliceIdList slice_ids = 1; + bool include_endpoint_ids = 2; + bool include_constraints = 3; + bool include_service_ids = 4; + bool include_subslice_ids = 5; + bool include_config_rules = 6; +} + +message SliceEvent { + Event event = 1; + SliceId slice_id = 2; +} + +// ----- Connection ---------------------------------------------------------------------------------------------------- +message ConnectionId { + Uuid connection_uuid = 1; +} + +message ConnectionSettings_L0 { + string lsp_symbolic_name = 1; +} + +message ConnectionSettings_L2 { + string src_mac_address = 1; + string dst_mac_address = 2; + uint32 ether_type = 3; + uint32 vlan_id = 4; + uint32 mpls_label = 5; + uint32 mpls_traffic_class = 6; +} + +message ConnectionSettings_L3 { + string src_ip_address = 1; + string dst_ip_address = 2; + uint32 dscp = 3; + uint32 protocol = 4; + uint32 ttl = 5; +} + +message ConnectionSettings_L4 { + uint32 src_port = 1; + uint32 dst_port = 2; + uint32 tcp_flags = 3; + uint32 ttl = 4; +} + +message ConnectionSettings { + ConnectionSettings_L0 l0 = 1; + ConnectionSettings_L2 l2 = 2; + ConnectionSettings_L3 l3 = 3; + ConnectionSettings_L4 l4 = 4; +} + +message Connection { + ConnectionId connection_id = 1; + ServiceId service_id = 2; + repeated EndPointId path_hops_endpoint_ids = 3; + repeated ServiceId sub_service_ids = 4; + ConnectionSettings settings = 5; +} + +message ConnectionIdList { + repeated ConnectionId connection_ids = 1; +} + +message ConnectionList { + repeated Connection connections = 1; +} + +message ConnectionEvent { + Event event = 1; + ConnectionId connection_id = 2; +} + + +// ----- Endpoint ------------------------------------------------------------------------------------------------------ +message EndPointId { + TopologyId topology_id = 1; + DeviceId device_id = 2; + Uuid endpoint_uuid = 3; +} + +message EndPoint { + EndPointId endpoint_id = 1; + string name = 2; + string endpoint_type = 3; + repeated kpi_sample_types.KpiSampleType kpi_sample_types = 4; + Location endpoint_location = 5; +} + +message EndPointName { + EndPointId endpoint_id = 1; + string device_name = 2; + string endpoint_name = 3; + string endpoint_type = 4; +} + +message EndPointIdList { + repeated EndPointId endpoint_ids = 1; +} + +message EndPointNameList { + repeated EndPointName endpoint_names = 1; +} + + +// ----- Configuration ------------------------------------------------------------------------------------------------- +enum ConfigActionEnum { + CONFIGACTION_UNDEFINED = 0; + CONFIGACTION_SET = 1; + CONFIGACTION_DELETE = 2; +} + +message ConfigRule_Custom { + string resource_key = 1; + string resource_value = 2; +} + +message ConfigRule_ACL { + EndPointId endpoint_id = 1; + acl.AclRuleSet rule_set = 2; +} + +message ConfigRule { + ConfigActionEnum action = 1; + oneof config_rule { + ConfigRule_Custom custom = 2; + ConfigRule_ACL acl = 3; + } +} + + +// ----- Constraint ---------------------------------------------------------------------------------------------------- +enum ConstraintActionEnum { + CONSTRAINTACTION_UNDEFINED = 0; + CONSTRAINTACTION_SET = 1; + CONSTRAINTACTION_DELETE = 2; +} + +message Constraint_Custom { + string constraint_type = 1; + string constraint_value = 2; +} + +message Constraint_Schedule { + float start_timestamp = 1; + float duration_days = 2; +} + +message GPS_Position { + float latitude = 1; + float longitude = 2; +} + +message Location { + oneof location { + string region = 1; + GPS_Position gps_position = 2; + } +} + +message Constraint_EndPointLocation { + EndPointId endpoint_id = 1; + Location location = 2; +} + +message Constraint_EndPointPriority { + EndPointId endpoint_id = 1; + uint32 priority = 2; +} + +message Constraint_SLA_Latency { + float e2e_latency_ms = 1; +} + +message Constraint_SLA_Capacity { + float capacity_gbps = 1; +} + +message Constraint_SLA_Availability { + uint32 num_disjoint_paths = 1; + bool all_active = 2; + float availability = 3; // 0.0 .. 100.0 percentage of availability +} + +enum IsolationLevelEnum { + NO_ISOLATION = 0; + PHYSICAL_ISOLATION = 1; + LOGICAL_ISOLATION = 2; + PROCESS_ISOLATION = 3; + PHYSICAL_MEMORY_ISOLATION = 4; + PHYSICAL_NETWORK_ISOLATION = 5; + VIRTUAL_RESOURCE_ISOLATION = 6; + NETWORK_FUNCTIONS_ISOLATION = 7; + SERVICE_ISOLATION = 8; +} + +message Constraint_SLA_Isolation_level { + repeated IsolationLevelEnum isolation_level = 1; +} + +message Constraint_Exclusions { + bool is_permanent = 1; + repeated DeviceId device_ids = 2; + repeated EndPointId endpoint_ids = 3; + repeated LinkId link_ids = 4; +} + +message Constraint { + ConstraintActionEnum action = 1; + oneof constraint { + Constraint_Custom custom = 2; + Constraint_Schedule schedule = 3; + Constraint_EndPointLocation endpoint_location = 4; + Constraint_EndPointPriority endpoint_priority = 5; + Constraint_SLA_Capacity sla_capacity = 6; + Constraint_SLA_Latency sla_latency = 7; + Constraint_SLA_Availability sla_availability = 8; + Constraint_SLA_Isolation_level sla_isolation = 9; + Constraint_Exclusions exclusions = 10; + } +} + + +// ----- Miscellaneous ------------------------------------------------------------------------------------------------- +message TeraFlowController { + ContextId context_id = 1; + string ip_address = 2; + uint32 port = 3; +} + +message AuthenticationResult { + ContextId context_id = 1; + bool authenticated = 2; +} diff --git a/src/policy/src/main/proto/context_policy.proto b/src/policy/src/main/proto/context_policy.proto deleted file mode 120000 index d41593dde..000000000 --- a/src/policy/src/main/proto/context_policy.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/context_policy.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/context_policy.proto b/src/policy/src/main/proto/context_policy.proto new file mode 100644 index 000000000..f6dae4830 --- /dev/null +++ b/src/policy/src/main/proto/context_policy.proto @@ -0,0 +1,28 @@ +// 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. + +syntax = "proto3"; +package context_policy; + +import "context.proto"; +import "policy.proto"; + +// created as a separate service to prevent import-loops in context and policy +service ContextPolicyService { + rpc ListPolicyRuleIds(context.Empty ) returns (policy.PolicyRuleIdList) {} + rpc ListPolicyRules (context.Empty ) returns (policy.PolicyRuleList ) {} + rpc GetPolicyRule (policy.PolicyRuleId ) returns (policy.PolicyRule ) {} + rpc SetPolicyRule (policy.PolicyRule ) returns (policy.PolicyRuleId ) {} + rpc RemovePolicyRule (policy.PolicyRuleId ) returns (context.Empty ) {} +} diff --git a/src/policy/src/main/proto/device.proto b/src/policy/src/main/proto/device.proto deleted file mode 120000 index ad6e7c47e..000000000 --- a/src/policy/src/main/proto/device.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/device.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/device.proto b/src/policy/src/main/proto/device.proto new file mode 100644 index 000000000..30e60079d --- /dev/null +++ b/src/policy/src/main/proto/device.proto @@ -0,0 +1,34 @@ +// 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. + +syntax = "proto3"; +package device; + +import "context.proto"; +import "monitoring.proto"; + +service DeviceService { + rpc AddDevice (context.Device ) returns (context.DeviceId ) {} + rpc ConfigureDevice (context.Device ) returns (context.DeviceId ) {} + rpc DeleteDevice (context.DeviceId ) returns (context.Empty ) {} + rpc GetInitialConfig(context.DeviceId ) returns (context.DeviceConfig) {} + rpc MonitorDeviceKpi(MonitoringSettings) returns (context.Empty ) {} +} + +message MonitoringSettings { + monitoring.KpiId kpi_id = 1; + monitoring.KpiDescriptor kpi_descriptor = 2; + float sampling_duration_s = 3; + float sampling_interval_s = 4; +} diff --git a/src/policy/src/main/proto/kpi_sample_types.proto b/src/policy/src/main/proto/kpi_sample_types.proto deleted file mode 120000 index 98e748bbf..000000000 --- a/src/policy/src/main/proto/kpi_sample_types.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/kpi_sample_types.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/kpi_sample_types.proto b/src/policy/src/main/proto/kpi_sample_types.proto new file mode 100644 index 000000000..5b234a4e3 --- /dev/null +++ b/src/policy/src/main/proto/kpi_sample_types.proto @@ -0,0 +1,42 @@ +// 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. + +syntax = "proto3"; +package kpi_sample_types; + +enum KpiSampleType { + KPISAMPLETYPE_UNKNOWN = 0; + + KPISAMPLETYPE_PACKETS_TRANSMITTED = 101; + KPISAMPLETYPE_PACKETS_RECEIVED = 102; + KPISAMPLETYPE_PACKETS_DROPPED = 103; + KPISAMPLETYPE_BYTES_TRANSMITTED = 201; + KPISAMPLETYPE_BYTES_RECEIVED = 202; + KPISAMPLETYPE_BYTES_DROPPED = 203; + + KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS = 301; + KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS = 302; + + KPISAMPLETYPE_ML_CONFIDENCE = 401; //. can be used by both optical and L3 without any issue + + KPISAMPLETYPE_OPTICAL_SECURITY_STATUS = 501; //. can be used by both optical and L3 without any issue + + KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS = 601; + KPISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS = 602; + KPISAMPLETYPE_L3_UNIQUE_ATTACKERS = 603; + KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CLIENTS = 604; + KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO = 605; + + KPISAMPLETYPE_SERVICE_LATENCY_MS = 701; +} diff --git a/src/policy/src/main/proto/monitoring.proto b/src/policy/src/main/proto/monitoring.proto deleted file mode 120000 index aceaa7328..000000000 --- a/src/policy/src/main/proto/monitoring.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/monitoring.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/monitoring.proto b/src/policy/src/main/proto/monitoring.proto new file mode 100644 index 000000000..45ba48b02 --- /dev/null +++ b/src/policy/src/main/proto/monitoring.proto @@ -0,0 +1,174 @@ +// 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. + +syntax = "proto3"; +package monitoring; + +import "context.proto"; +import "kpi_sample_types.proto"; + +service MonitoringService { + rpc SetKpi (KpiDescriptor ) returns (KpiId ) {} // Stable not final + rpc DeleteKpi (KpiId ) returns (context.Empty ) {} // Stable and final + rpc GetKpiDescriptor (KpiId ) returns (KpiDescriptor ) {} // Stable and final + rpc GetKpiDescriptorList (context.Empty ) returns (KpiDescriptorList ) {} // Stable and final + rpc IncludeKpi (Kpi ) returns (context.Empty ) {} // Stable and final + rpc MonitorKpi (MonitorKpiRequest ) returns (context.Empty ) {} // Stable and final + rpc QueryKpiData (KpiQuery ) returns (RawKpiTable ) {} // Not implemented + rpc SetKpiSubscription (SubsDescriptor ) returns (stream SubsResponse ) {} // Stable not final + rpc GetSubsDescriptor (SubscriptionID ) returns (SubsDescriptor ) {} // Stable and final + rpc GetSubscriptions (context.Empty ) returns (SubsList ) {} // Stable and final + rpc DeleteSubscription (SubscriptionID ) returns (context.Empty ) {} // Stable and final + rpc SetKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {} // Stable not final + rpc GetAlarms (context.Empty ) returns (AlarmList ) {} // Stable and final + rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {} // Stable and final + rpc GetAlarmResponseStream(AlarmSubscription ) returns (stream AlarmResponse) {} // Not Stable not final + rpc DeleteAlarm (AlarmID ) returns (context.Empty ) {} // Stable and final + rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} // Stable not final + rpc GetInstantKpi (KpiId ) returns (Kpi ) {} // Stable not final +} + +message KpiDescriptor { + KpiId kpi_id = 1; + string kpi_description = 2; + repeated KpiId kpi_id_list = 3; + kpi_sample_types.KpiSampleType kpi_sample_type = 4; + context.DeviceId device_id = 5; + context.EndPointId endpoint_id = 6; + context.ServiceId service_id = 7; + context.SliceId slice_id = 8; + context.ConnectionId connection_id = 9; + context.LinkId link_id = 10; +} + +message MonitorKpiRequest { + KpiId kpi_id = 1; + float monitoring_window_s = 2; + float sampling_rate_s = 3; + // Pending add field to reflect Available Device Protocols +} + +message KpiQuery { + repeated KpiId kpi_ids = 1; + float monitoring_window_s = 2; + uint32 last_n_samples = 3; // used when you want something like "get the last N many samples + context.Timestamp start_timestamp = 4; // used when you want something like "get the samples since X date/time" + context.Timestamp end_timestamp = 5; // used when you want something like "get the samples until X date/time" +} + + +message RawKpi { // cell + context.Timestamp timestamp = 1; + KpiValue kpi_value = 2; +} + +message RawKpiList { // column + KpiId kpi_id = 1; + repeated RawKpi raw_kpis = 2; +} + +message RawKpiTable { // table + repeated RawKpiList raw_kpi_lists = 1; +} + +message KpiId { + context.Uuid kpi_id = 1; +} + +message Kpi { + KpiId kpi_id = 1; + context.Timestamp timestamp = 2; + KpiValue kpi_value = 3; +} + +message KpiValueRange { + KpiValue kpiMinValue = 1; + KpiValue kpiMaxValue = 2; + bool inRange = 3; // by default True + bool includeMinValue = 4; // False is outside the interval + bool includeMaxValue = 5; // False is outside the interval +} + +message KpiValue { + oneof value { + int32 int32Val = 1; + uint32 uint32Val = 2; + int64 int64Val = 3; + uint64 uint64Val = 4; + float floatVal = 5; + string stringVal = 6; + bool boolVal = 7; + } +} + + +message KpiList { + repeated Kpi kpi = 1; +} + +message KpiDescriptorList { + repeated KpiDescriptor kpi_descriptor_list = 1; +} + +message SubsDescriptor{ + SubscriptionID subs_id = 1; + KpiId kpi_id = 2; + float sampling_duration_s = 3; + float sampling_interval_s = 4; + context.Timestamp start_timestamp = 5; // used when you want something like "get the samples since X date/time" + context.Timestamp end_timestamp = 6; // used when you want something like "get the samples until X date/time" + // Pending add field to reflect Available Device Protocols +} + +message SubscriptionID { + context.Uuid subs_id = 1; +} + +message SubsResponse { + SubscriptionID subs_id = 1; + KpiList kpi_list = 2; +} + +message SubsList { + repeated SubsDescriptor subs_descriptor = 1; +} + +message AlarmDescriptor { + AlarmID alarm_id = 1; + string alarm_description = 2; + string name = 3; + KpiId kpi_id = 4; + KpiValueRange kpi_value_range = 5; + context.Timestamp timestamp = 6; +} + +message AlarmID{ + context.Uuid alarm_id = 1; +} + +message AlarmSubscription{ + AlarmID alarm_id = 1; + float subscription_timeout_s = 2; + float subscription_frequency_ms = 3; +} + +message AlarmResponse { + AlarmID alarm_id = 1; + string text = 2; + KpiList kpi_list = 3; +} + +message AlarmList { + repeated AlarmDescriptor alarm_descriptor = 1; +} diff --git a/src/policy/src/main/proto/policy.proto b/src/policy/src/main/proto/policy.proto deleted file mode 120000 index df455f961..000000000 --- a/src/policy/src/main/proto/policy.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/policy.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/policy.proto b/src/policy/src/main/proto/policy.proto new file mode 100644 index 000000000..a6f160150 --- /dev/null +++ b/src/policy/src/main/proto/policy.proto @@ -0,0 +1,113 @@ +// 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. + +syntax = "proto3"; +package policy; + +import "context.proto"; +import "policy_condition.proto"; +import "policy_action.proto"; + +service PolicyService { + rpc PolicyAddService (PolicyRuleService) returns (PolicyRuleState) {} + rpc PolicyAddDevice (PolicyRuleDevice) returns (PolicyRuleState) {} + rpc PolicyUpdateService (PolicyRuleService) returns (PolicyRuleState) {} + rpc PolicyUpdateDevice (PolicyRuleDevice) returns (PolicyRuleState) {} + rpc PolicyDelete (PolicyRuleId) returns (PolicyRuleState) {} + rpc GetPolicyService (PolicyRuleId) returns (PolicyRuleService) {} + rpc GetPolicyDevice (PolicyRuleId) returns (PolicyRuleDevice) {} + rpc GetPolicyByServiceId (context.ServiceId) returns (PolicyRuleServiceList) {} +} + +enum PolicyRuleStateEnum { + POLICY_UNDEFINED = 0; // Undefined rule state + POLICY_FAILED = 1; // Rule failed + POLICY_INSERTED = 2; // Rule is just inserted + POLICY_VALIDATED = 3; // Rule content is correct + POLICY_PROVISIONED = 4; // Rule subscribed to Monitoring + POLICY_ACTIVE = 5; // Rule is currently active (alarm is just thrown by Monitoring) + POLICY_ENFORCED = 6; // Rule action is successfully enforced + POLICY_INEFFECTIVE = 7; // The applied rule action did not work as expected + POLICY_EFFECTIVE = 8; // The applied rule action did work as expected + POLICY_UPDATED = 9; // Operator requires a policy to change + POLICY_REMOVED = 10; // Operator requires to remove a policy +} + +message PolicyRuleId { + context.Uuid uuid = 1; +} + +message PolicyRuleState { + PolicyRuleStateEnum policyRuleState = 1; + string policyRuleStateMessage = 2; +} + +// Basic policy rule attributes +message PolicyRuleBasic { + PolicyRuleId policyRuleId = 1; + PolicyRuleState policyRuleState = 2; //policy.proto:58:12: Explicit 'optional' labels are disallowed in the Proto3 syntax. To define 'optional' fields in Proto3, simply remove the 'optional' label, as fields are 'optional' by default. + uint32 priority = 3; + + // Event-Condition-Action (ECA) model + repeated PolicyRuleCondition conditionList = 4; // When these policy conditions are met, an event is automatically thrown + BooleanOperator booleanOperator = 5; // Evaluation operator to be used + repeated PolicyRuleAction actionList = 6; // One or more actions should be applied +} + +// Service-oriented policy rule +message PolicyRuleService { + // Basic policy rule attributes + PolicyRuleBasic policyRuleBasic = 1; + + // Affected service and (some of) its device(s) + context.ServiceId serviceId = 2; + repeated context.DeviceId deviceList = 3; // List of devices this service is traversing (not exhaustive) +} + +// Device-oriented policy rule +message PolicyRuleDevice { + // Basic policy rule attributes + PolicyRuleBasic policyRuleBasic = 1; + + // Affected device(s) + repeated context.DeviceId deviceList = 2; +} + +// Wrapper policy rule object +message PolicyRule { + oneof policy_rule { + PolicyRuleService service = 1; + PolicyRuleDevice device = 2; + } +} + +// A list of policy rule IDs +message PolicyRuleIdList { + repeated PolicyRuleId policyRuleIdList = 1; +} + +// A list of service-oriented policy rules +message PolicyRuleServiceList { + repeated PolicyRuleService policyRuleServiceList = 1; +} + +// A list of device-oriented policy rules +message PolicyRuleDeviceList { + repeated PolicyRuleDevice policyRuleDeviceList = 1; +} + +// A list of policy rules +message PolicyRuleList { + repeated PolicyRule policyRules = 1; +} diff --git a/src/policy/src/main/proto/policy_action.proto b/src/policy/src/main/proto/policy_action.proto deleted file mode 120000 index 63dcef3d2..000000000 --- a/src/policy/src/main/proto/policy_action.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/policy_action.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/policy_action.proto b/src/policy/src/main/proto/policy_action.proto new file mode 100644 index 000000000..d547e9779 --- /dev/null +++ b/src/policy/src/main/proto/policy_action.proto @@ -0,0 +1,42 @@ +// 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. + +syntax = "proto3"; +package policy; + +// Action +message PolicyRuleAction { + PolicyRuleActionEnum action = 1; + repeated PolicyRuleActionConfig action_config = 2; +} + +enum PolicyRuleActionEnum { + POLICYRULE_ACTION_NO_ACTION = 0; + POLICYRULE_ACTION_SET_DEVICE_STATUS = 1; + POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE = 2; + POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT = 3; + POLICY_RULE_ACTION_CALL_SERVICE_RPC = 4; + POLICY_RULE_ACTION_RECALCULATE_PATH = 5; +} + +// Action configuration +message PolicyRuleActionConfig { + string action_key = 1; + string action_value = 2; +} + +// message PolicyRuleAction { +// PolicyRuleActionEnum action = 1; +// repeated string parameters = 2; +// } diff --git a/src/policy/src/main/proto/policy_condition.proto b/src/policy/src/main/proto/policy_condition.proto deleted file mode 120000 index 31f7d9d10..000000000 --- a/src/policy/src/main/proto/policy_condition.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/policy_condition.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/policy_condition.proto b/src/policy/src/main/proto/policy_condition.proto new file mode 100644 index 000000000..2037af93c --- /dev/null +++ b/src/policy/src/main/proto/policy_condition.proto @@ -0,0 +1,43 @@ +// 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. + +syntax = "proto3"; +package policy; + +import "monitoring.proto"; + +// Condition +message PolicyRuleCondition { + monitoring.KpiId kpiId = 1; + NumericalOperator numericalOperator = 2; + monitoring.KpiValue kpiValue = 3; +} + +// Operator to be used when comparing Kpis with condition values +enum NumericalOperator { + POLICYRULE_CONDITION_NUMERICAL_UNDEFINED = 0; // Kpi numerical operator undefined + POLICYRULE_CONDITION_NUMERICAL_EQUAL = 1; // Kpi is equal with value + POLICYRULE_CONDITION_NUMERICAL_NOT_EQUAL = 2; // Kpi is not equal with value + POLICYRULE_CONDITION_NUMERICAL_LESS_THAN = 3; // Kpi is less than value + POLICYRULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL = 4; // Kpi is less than or equal with value + POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN = 5; // Kpi is greater than value + POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL = 6; // Kpi is less than or equal with value +} + +// Operator to be used when evaluating each condition +enum BooleanOperator { + POLICYRULE_CONDITION_BOOLEAN_UNDEFINED = 0; // Boolean operator undefined + POLICYRULE_CONDITION_BOOLEAN_AND = 1; // Boolean AND operator + POLICYRULE_CONDITION_BOOLEAN_OR = 2; // Boolean OR operator +} \ No newline at end of file diff --git a/src/policy/src/main/proto/service.proto b/src/policy/src/main/proto/service.proto deleted file mode 120000 index 5ca543da0..000000000 --- a/src/policy/src/main/proto/service.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/service.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/service.proto b/src/policy/src/main/proto/service.proto new file mode 100644 index 000000000..658859e3c --- /dev/null +++ b/src/policy/src/main/proto/service.proto @@ -0,0 +1,25 @@ +// 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. + +syntax = "proto3"; +package service; + +import "context.proto"; + +service ServiceService { + rpc CreateService (context.Service ) returns (context.ServiceId) {} + rpc UpdateService (context.Service ) returns (context.ServiceId) {} + rpc DeleteService (context.ServiceId) returns (context.Empty ) {} + rpc RecomputeConnections(context.Service ) returns (context.Empty ) {} +} diff --git a/src/service/service/service_handler_api/FilterFields.py b/src/service/service/service_handler_api/FilterFields.py index e771e24f1..e985fe292 100644 --- a/src/service/service/service_handler_api/FilterFields.py +++ b/src/service/service/service_handler_api/FilterFields.py @@ -40,6 +40,7 @@ DEVICE_DRIVER_VALUES = { DeviceDriverEnum.DEVICEDRIVER_GNMI_OPENCONFIG, DeviceDriverEnum.DEVICEDRIVER_FLEXSCALE, DeviceDriverEnum.DEVICEDRIVER_IETF_ACTN, + DeviceDriverEnum.DEVICEDRIVER_SMARTNIC } # Map allowed filter fields to allowed values per Filter field. If no restriction (free text) None is specified diff --git a/src/service/service/service_handlers/__init__.py b/src/service/service/service_handlers/__init__.py index eaf8f715a..61376c0d2 100644 --- a/src/service/service/service_handlers/__init__.py +++ b/src/service/service/service_handlers/__init__.py @@ -94,6 +94,12 @@ SERVICE_HANDLERS = [ FilterFieldEnum.DEVICE_DRIVER : [DeviceDriverEnum.DEVICEDRIVER_IETF_L2VPN], } ]), + # (SMARTNIC_ServiceHandler, [ + # { + # FilterFieldEnum.SERVICE_TYPE : ServiceTypeEnum.SERVICETYPE_L2NM, + # FilterFieldEnum.DEVICE_DRIVER : [DeviceDriverEnum.DEVICEDRIVER_SMARTNIC], + # } + # ]), (E2EOrchestratorServiceHandler, [ { FilterFieldEnum.SERVICE_TYPE : ServiceTypeEnum.SERVICETYPE_E2E, diff --git a/src/webui/service/device/forms.py b/src/webui/service/device/forms.py index 4c04bbfe1..af5ac4564 100644 --- a/src/webui/service/device/forms.py +++ b/src/webui/service/device/forms.py @@ -33,6 +33,7 @@ class AddDeviceForm(FlaskForm): device_drivers_gnmi_openconfig = BooleanField('GNMI OPENCONFIG') device_drivers_flexscale = BooleanField('FLEXSCALE') device_drivers_ietf_actn = BooleanField('IETF ACTN') + device_drivers_smartnic = BooleanField('SMARTNIC') device_config_address = StringField('connect/address',default='127.0.0.1',validators=[DataRequired(), Length(min=5)]) device_config_port = StringField('connect/port',default='0',validators=[DataRequired(), Length(min=1)]) diff --git a/src/webui/service/device/routes.py b/src/webui/service/device/routes.py index 8b8bc236a..8aaaafccf 100644 --- a/src/webui/service/device/routes.py +++ b/src/webui/service/device/routes.py @@ -127,6 +127,8 @@ def add(): device_drivers.append(DeviceDriverEnum.DEVICEDRIVER_GNMI_OPENCONFIG) if form.device_drivers_flexscale.data: device_drivers.append(DeviceDriverEnum.DEVICEDRIVER_FLEXSCALE) + if form.device_drivers_smartnic.data: + device_drivers.append(DeviceDriverEnum.DEVICEDRIVER_SMARTNIC) if form.device_drivers_ietf_actn.data: device_drivers.append(DeviceDriverEnum.DEVICEDRIVER_IETF_ACTN) device_obj.device_drivers.extend(device_drivers) # pylint: disable=no-member diff --git a/src/webui/service/templates/device/add.html b/src/webui/service/templates/device/add.html index c4d7f1685..484bc30bf 100644 --- a/src/webui/service/templates/device/add.html +++ b/src/webui/service/templates/device/add.html @@ -95,6 +95,7 @@ <br /> {{ form.device_drivers_flexscale }} {{ form.device_drivers_flexscale.label(class="col-sm-3 col-form-label") }} {{ form.device_drivers_ietf_actn }} {{ form.device_drivers_ietf_actn.label(class="col-sm-3 col-form-label") }} + {{ form.device_drivers_smartnic }} {{ form.device_drivers_smartnic_actn.label(class="col-sm-3 col-form-label") }} {% endif %} </div> </div> diff --git a/src/ztp/Dockerfile b/src/ztp/Dockerfile deleted file mode 120000 index eec732273..000000000 --- a/src/ztp/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -src/main/docker/Dockerfile.multistage.jvm \ No newline at end of file diff --git a/src/ztp/Dockerfile b/src/ztp/Dockerfile new file mode 100644 index 000000000..43fef96b4 --- /dev/null +++ b/src/ztp/Dockerfile @@ -0,0 +1,67 @@ +# 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. + +# Multi-stage Docker image build + +# Stage 1 +FROM maven:3-jdk-11 AS builder + +# Define working directory +WORKDIR /app + +# Copy every file in working directory, as defined in .dockerignore file +COPY ./pom.xml pom.xml +COPY ./src src/ +COPY ./target/generated-sources/ target/generated-sources/ +RUN mvn --errors --batch-mode package -Dmaven.test.skip=true + +# Stage 2 +FROM builder AS unit-test + +RUN mvn --errors --batch-mode -Pgenerate-consolidated-coverage verify + +# Stage 3 +FROM registry.access.redhat.com/ubi8/ubi-minimal:8.4 AS release + +ARG JAVA_PACKAGE=java-11-openjdk-headless +ARG RUN_JAVA_VERSION=1.3.8 +ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' +# Install java and the run-java script +# Also set up permissions for user `1001` +RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \ + && microdnf update \ + && microdnf clean all \ + && mkdir /deployments \ + && chown 1001 /deployments \ + && chmod "g+rwX" /deployments \ + && chown 1001:root /deployments \ + && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \ + && chown 1001 /deployments/run-java.sh \ + && chmod 540 /deployments/run-java.sh \ + && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/conf/security/java.security + +# Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size. +ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" +# We make four distinct layers so if there are application changes the library layers can be re-used +COPY --from=builder --chown=1001 /app/target/quarkus-app/lib/ /deployments/lib/ +COPY --from=builder --chown=1001 /app/target/quarkus-app/*.jar /deployments/ +COPY --from=builder --chown=1001 /app/target/quarkus-app/app/ /deployments/app/ +COPY --from=builder --chown=1001 /app/target/quarkus-app/quarkus/ /deployments/quarkus/ + +EXPOSE 8080 +EXPOSE 5050 +USER 1001 + +ENTRYPOINT [ "/deployments/run-java.sh" ] + diff --git a/src/ztp/src/main/proto/acl.proto b/src/ztp/src/main/proto/acl.proto deleted file mode 120000 index 158ae78eb..000000000 --- a/src/ztp/src/main/proto/acl.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/acl.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/acl.proto b/src/ztp/src/main/proto/acl.proto new file mode 100644 index 000000000..3dba735dc --- /dev/null +++ b/src/ztp/src/main/proto/acl.proto @@ -0,0 +1,69 @@ +// 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. + +syntax = "proto3"; +package acl; + +enum AclRuleTypeEnum { + ACLRULETYPE_UNDEFINED = 0; + ACLRULETYPE_IPV4 = 1; + ACLRULETYPE_IPV6 = 2; + ACLRULETYPE_L2 = 3; + ACLRULETYPE_MPLS = 4; + ACLRULETYPE_MIXED = 5; +} + +enum AclForwardActionEnum { + ACLFORWARDINGACTION_UNDEFINED = 0; + ACLFORWARDINGACTION_DROP = 1; + ACLFORWARDINGACTION_ACCEPT = 2; + ACLFORWARDINGACTION_REJECT = 3; +} + +enum AclLogActionEnum { + ACLLOGACTION_UNDEFINED = 0; + ACLLOGACTION_NOLOG = 1; + ACLLOGACTION_SYSLOG = 2; +} + +message AclMatch { + uint32 dscp = 1; + uint32 protocol = 2; + string src_address = 3; + string dst_address = 4; + uint32 src_port = 5; + uint32 dst_port = 6; + uint32 start_mpls_label = 7; + uint32 end_mpls_label = 8; +} + +message AclAction { + AclForwardActionEnum forward_action = 1; + AclLogActionEnum log_action = 2; +} + +message AclEntry { + uint32 sequence_id = 1; + string description = 2; + AclMatch match = 3; + AclAction action = 4; +} + +message AclRuleSet { + string name = 1; + AclRuleTypeEnum type = 2; + string description = 3; + string user_id = 4; + repeated AclEntry entries = 5; +} diff --git a/src/ztp/src/main/proto/context.proto b/src/ztp/src/main/proto/context.proto deleted file mode 120000 index 7f33c4bc7..000000000 --- a/src/ztp/src/main/proto/context.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/context.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/context.proto b/src/ztp/src/main/proto/context.proto new file mode 100644 index 000000000..fce1e71ad --- /dev/null +++ b/src/ztp/src/main/proto/context.proto @@ -0,0 +1,615 @@ +// 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. + +syntax = "proto3"; +package context; + +import "acl.proto"; +import "kpi_sample_types.proto"; + +service ContextService { + rpc ListContextIds (Empty ) returns ( ContextIdList ) {} + rpc ListContexts (Empty ) returns ( ContextList ) {} + rpc GetContext (ContextId ) returns ( Context ) {} + rpc SetContext (Context ) returns ( ContextId ) {} + rpc RemoveContext (ContextId ) returns ( Empty ) {} + rpc GetContextEvents (Empty ) returns (stream ContextEvent ) {} + + rpc ListTopologyIds (ContextId ) returns ( TopologyIdList ) {} + rpc ListTopologies (ContextId ) returns ( TopologyList ) {} + rpc GetTopology (TopologyId ) returns ( Topology ) {} + rpc GetTopologyDetails (TopologyId ) returns ( TopologyDetails ) {} + rpc SetTopology (Topology ) returns ( TopologyId ) {} + rpc RemoveTopology (TopologyId ) returns ( Empty ) {} + rpc GetTopologyEvents (Empty ) returns (stream TopologyEvent ) {} + + rpc ListDeviceIds (Empty ) returns ( DeviceIdList ) {} + rpc ListDevices (Empty ) returns ( DeviceList ) {} + rpc GetDevice (DeviceId ) returns ( Device ) {} + rpc SetDevice (Device ) returns ( DeviceId ) {} + rpc RemoveDevice (DeviceId ) returns ( Empty ) {} + rpc GetDeviceEvents (Empty ) returns (stream DeviceEvent ) {} + rpc SelectDevice (DeviceFilter ) returns ( DeviceList ) {} + rpc ListEndPointNames (EndPointIdList) returns ( EndPointNameList) {} + + rpc ListLinkIds (Empty ) returns ( LinkIdList ) {} + rpc ListLinks (Empty ) returns ( LinkList ) {} + rpc GetLink (LinkId ) returns ( Link ) {} + rpc SetLink (Link ) returns ( LinkId ) {} + rpc RemoveLink (LinkId ) returns ( Empty ) {} + rpc GetLinkEvents (Empty ) returns (stream LinkEvent ) {} + + rpc ListServiceIds (ContextId ) returns ( ServiceIdList ) {} + rpc ListServices (ContextId ) returns ( ServiceList ) {} + rpc GetService (ServiceId ) returns ( Service ) {} + rpc SetService (Service ) returns ( ServiceId ) {} + rpc UnsetService (Service ) returns ( ServiceId ) {} + rpc RemoveService (ServiceId ) returns ( Empty ) {} + rpc GetServiceEvents (Empty ) returns (stream ServiceEvent ) {} + rpc SelectService (ServiceFilter ) returns ( ServiceList ) {} + + rpc ListSliceIds (ContextId ) returns ( SliceIdList ) {} + rpc ListSlices (ContextId ) returns ( SliceList ) {} + rpc GetSlice (SliceId ) returns ( Slice ) {} + rpc SetSlice (Slice ) returns ( SliceId ) {} + rpc UnsetSlice (Slice ) returns ( SliceId ) {} + rpc RemoveSlice (SliceId ) returns ( Empty ) {} + rpc GetSliceEvents (Empty ) returns (stream SliceEvent ) {} + rpc SelectSlice (SliceFilter ) returns ( SliceList ) {} + + rpc ListConnectionIds (ServiceId ) returns ( ConnectionIdList) {} + rpc ListConnections (ServiceId ) returns ( ConnectionList ) {} + rpc GetConnection (ConnectionId ) returns ( Connection ) {} + rpc SetConnection (Connection ) returns ( ConnectionId ) {} + rpc RemoveConnection (ConnectionId ) returns ( Empty ) {} + rpc GetConnectionEvents(Empty ) returns (stream ConnectionEvent ) {} +} + +// ----- Generic ------------------------------------------------------------------------------------------------------- +message Empty {} + +message Uuid { + string uuid = 1; +} + +enum EventTypeEnum { + EVENTTYPE_UNDEFINED = 0; + EVENTTYPE_CREATE = 1; + EVENTTYPE_UPDATE = 2; + EVENTTYPE_REMOVE = 3; +} + +message Timestamp { + double timestamp = 1; +} + +message Event { + Timestamp timestamp = 1; + EventTypeEnum event_type = 2; +} + +// ----- Context ------------------------------------------------------------------------------------------------------- +message ContextId { + Uuid context_uuid = 1; +} + +message Context { + ContextId context_id = 1; + string name = 2; + repeated TopologyId topology_ids = 3; + repeated ServiceId service_ids = 4; + repeated SliceId slice_ids = 5; + TeraFlowController controller = 6; +} + +message ContextIdList { + repeated ContextId context_ids = 1; +} + +message ContextList { + repeated Context contexts = 1; +} + +message ContextEvent { + Event event = 1; + ContextId context_id = 2; +} + + +// ----- Topology ------------------------------------------------------------------------------------------------------ +message TopologyId { + ContextId context_id = 1; + Uuid topology_uuid = 2; +} + +message Topology { + TopologyId topology_id = 1; + string name = 2; + repeated DeviceId device_ids = 3; + repeated LinkId link_ids = 4; +} + +message TopologyDetails { + TopologyId topology_id = 1; + string name = 2; + repeated Device devices = 3; + repeated Link links = 4; +} + +message TopologyIdList { + repeated TopologyId topology_ids = 1; +} + +message TopologyList { + repeated Topology topologies = 1; +} + +message TopologyEvent { + Event event = 1; + TopologyId topology_id = 2; +} + + +// ----- Device -------------------------------------------------------------------------------------------------------- +message DeviceId { + Uuid device_uuid = 1; +} + +message Device { + DeviceId device_id = 1; + string name = 2; + string device_type = 3; + DeviceConfig device_config = 4; + DeviceOperationalStatusEnum device_operational_status = 5; + repeated DeviceDriverEnum device_drivers = 6; + repeated EndPoint device_endpoints = 7; + repeated Component components = 8; // Used for inventory + DeviceId controller_id = 9; // Identifier of node controlling the actual device +} + +message Component { //Defined previously to this section - Tested OK + Uuid component_uuid = 1; + string name = 2; + string type = 3; + + map<string, string> attributes = 4; // dict[attr.name => json.dumps(attr.value)] + string parent = 5; +} + +message DeviceConfig { + repeated ConfigRule config_rules = 1; +} + +enum DeviceDriverEnum { + DEVICEDRIVER_UNDEFINED = 0; // also used for emulated + DEVICEDRIVER_OPENCONFIG = 1; + DEVICEDRIVER_TRANSPORT_API = 2; + DEVICEDRIVER_P4 = 3; + DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4; + DEVICEDRIVER_ONF_TR_532 = 5; + DEVICEDRIVER_XR = 6; + DEVICEDRIVER_IETF_L2VPN = 7; + DEVICEDRIVER_GNMI_OPENCONFIG = 8; + DEVICEDRIVER_FLEXSCALE = 9; + DEVICEDRIVER_IETF_ACTN = 10; + DEVICEDRIVER_SMARTNIC = 11; +} + +enum DeviceOperationalStatusEnum { + DEVICEOPERATIONALSTATUS_UNDEFINED = 0; + DEVICEOPERATIONALSTATUS_DISABLED = 1; + DEVICEOPERATIONALSTATUS_ENABLED = 2; +} + +message DeviceIdList { + repeated DeviceId device_ids = 1; +} + +message DeviceList { + repeated Device devices = 1; +} + +message DeviceFilter { + DeviceIdList device_ids = 1; + bool include_endpoints = 2; + bool include_config_rules = 3; + bool include_components = 4; +} + +message DeviceEvent { + Event event = 1; + DeviceId device_id = 2; + DeviceConfig device_config = 3; +} + + +// ----- Link ---------------------------------------------------------------------------------------------------------- +message LinkId { + Uuid link_uuid = 1; +} + +message LinkAttributes { + float total_capacity_gbps = 1; + float used_capacity_gbps = 2; +} + +message Link { + LinkId link_id = 1; + string name = 2; + repeated EndPointId link_endpoint_ids = 3; + LinkAttributes attributes = 4; +} + +message LinkIdList { + repeated LinkId link_ids = 1; +} + +message LinkList { + repeated Link links = 1; +} + +message LinkEvent { + Event event = 1; + LinkId link_id = 2; +} + + +// ----- Service ------------------------------------------------------------------------------------------------------- +message ServiceId { + ContextId context_id = 1; + Uuid service_uuid = 2; +} + +message Service { + ServiceId service_id = 1; + string name = 2; + ServiceTypeEnum service_type = 3; + repeated EndPointId service_endpoint_ids = 4; + repeated Constraint service_constraints = 5; + ServiceStatus service_status = 6; + ServiceConfig service_config = 7; + Timestamp timestamp = 8; +} + +enum ServiceTypeEnum { + SERVICETYPE_UNKNOWN = 0; + SERVICETYPE_L3NM = 1; + SERVICETYPE_L2NM = 2; + SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3; + SERVICETYPE_TE = 4; + SERVICETYPE_E2E = 5; +} + +enum ServiceStatusEnum { + SERVICESTATUS_UNDEFINED = 0; + SERVICESTATUS_PLANNED = 1; + SERVICESTATUS_ACTIVE = 2; + SERVICESTATUS_UPDATING = 3; + SERVICESTATUS_PENDING_REMOVAL = 4; + SERVICESTATUS_SLA_VIOLATED = 5; +} + +message ServiceStatus { + ServiceStatusEnum service_status = 1; +} + +message ServiceConfig { + repeated ConfigRule config_rules = 1; +} + +message ServiceIdList { + repeated ServiceId service_ids = 1; +} + +message ServiceList { + repeated Service services = 1; +} + +message ServiceFilter { + ServiceIdList service_ids = 1; + bool include_endpoint_ids = 2; + bool include_constraints = 3; + bool include_config_rules = 4; +} + +message ServiceEvent { + Event event = 1; + ServiceId service_id = 2; +} + +// ----- Slice --------------------------------------------------------------------------------------------------------- +message SliceId { + ContextId context_id = 1; + Uuid slice_uuid = 2; +} + +message Slice { + SliceId slice_id = 1; + string name = 2; + repeated EndPointId slice_endpoint_ids = 3; + repeated Constraint slice_constraints = 4; + repeated ServiceId slice_service_ids = 5; + repeated SliceId slice_subslice_ids = 6; + SliceStatus slice_status = 7; + SliceConfig slice_config = 8; + SliceOwner slice_owner = 9; + Timestamp timestamp = 10; +} + +message SliceOwner { + Uuid owner_uuid = 1; + string owner_string = 2; +} + +enum SliceStatusEnum { + SLICESTATUS_UNDEFINED = 0; + SLICESTATUS_PLANNED = 1; + SLICESTATUS_INIT = 2; + SLICESTATUS_ACTIVE = 3; + SLICESTATUS_DEINIT = 4; + SLICESTATUS_SLA_VIOLATED = 5; +} + +message SliceStatus { + SliceStatusEnum slice_status = 1; +} + +message SliceConfig { + repeated ConfigRule config_rules = 1; +} + +message SliceIdList { + repeated SliceId slice_ids = 1; +} + +message SliceList { + repeated Slice slices = 1; +} + +message SliceFilter { + SliceIdList slice_ids = 1; + bool include_endpoint_ids = 2; + bool include_constraints = 3; + bool include_service_ids = 4; + bool include_subslice_ids = 5; + bool include_config_rules = 6; +} + +message SliceEvent { + Event event = 1; + SliceId slice_id = 2; +} + +// ----- Connection ---------------------------------------------------------------------------------------------------- +message ConnectionId { + Uuid connection_uuid = 1; +} + +message ConnectionSettings_L0 { + string lsp_symbolic_name = 1; +} + +message ConnectionSettings_L2 { + string src_mac_address = 1; + string dst_mac_address = 2; + uint32 ether_type = 3; + uint32 vlan_id = 4; + uint32 mpls_label = 5; + uint32 mpls_traffic_class = 6; +} + +message ConnectionSettings_L3 { + string src_ip_address = 1; + string dst_ip_address = 2; + uint32 dscp = 3; + uint32 protocol = 4; + uint32 ttl = 5; +} + +message ConnectionSettings_L4 { + uint32 src_port = 1; + uint32 dst_port = 2; + uint32 tcp_flags = 3; + uint32 ttl = 4; +} + +message ConnectionSettings { + ConnectionSettings_L0 l0 = 1; + ConnectionSettings_L2 l2 = 2; + ConnectionSettings_L3 l3 = 3; + ConnectionSettings_L4 l4 = 4; +} + +message Connection { + ConnectionId connection_id = 1; + ServiceId service_id = 2; + repeated EndPointId path_hops_endpoint_ids = 3; + repeated ServiceId sub_service_ids = 4; + ConnectionSettings settings = 5; +} + +message ConnectionIdList { + repeated ConnectionId connection_ids = 1; +} + +message ConnectionList { + repeated Connection connections = 1; +} + +message ConnectionEvent { + Event event = 1; + ConnectionId connection_id = 2; +} + + +// ----- Endpoint ------------------------------------------------------------------------------------------------------ +message EndPointId { + TopologyId topology_id = 1; + DeviceId device_id = 2; + Uuid endpoint_uuid = 3; +} + +message EndPoint { + EndPointId endpoint_id = 1; + string name = 2; + string endpoint_type = 3; + repeated kpi_sample_types.KpiSampleType kpi_sample_types = 4; + Location endpoint_location = 5; +} + +message EndPointName { + EndPointId endpoint_id = 1; + string device_name = 2; + string endpoint_name = 3; + string endpoint_type = 4; +} + +message EndPointIdList { + repeated EndPointId endpoint_ids = 1; +} + +message EndPointNameList { + repeated EndPointName endpoint_names = 1; +} + + +// ----- Configuration ------------------------------------------------------------------------------------------------- +enum ConfigActionEnum { + CONFIGACTION_UNDEFINED = 0; + CONFIGACTION_SET = 1; + CONFIGACTION_DELETE = 2; +} + +message ConfigRule_Custom { + string resource_key = 1; + string resource_value = 2; +} + +message ConfigRule_ACL { + EndPointId endpoint_id = 1; + acl.AclRuleSet rule_set = 2; +} + +message ConfigRule { + ConfigActionEnum action = 1; + oneof config_rule { + ConfigRule_Custom custom = 2; + ConfigRule_ACL acl = 3; + } +} + + +// ----- Constraint ---------------------------------------------------------------------------------------------------- +enum ConstraintActionEnum { + CONSTRAINTACTION_UNDEFINED = 0; + CONSTRAINTACTION_SET = 1; + CONSTRAINTACTION_DELETE = 2; +} + +message Constraint_Custom { + string constraint_type = 1; + string constraint_value = 2; +} + +message Constraint_Schedule { + float start_timestamp = 1; + float duration_days = 2; +} + +message GPS_Position { + float latitude = 1; + float longitude = 2; +} + +message Location { + oneof location { + string region = 1; + GPS_Position gps_position = 2; + } +} + +message Constraint_EndPointLocation { + EndPointId endpoint_id = 1; + Location location = 2; +} + +message Constraint_EndPointPriority { + EndPointId endpoint_id = 1; + uint32 priority = 2; +} + +message Constraint_SLA_Latency { + float e2e_latency_ms = 1; +} + +message Constraint_SLA_Capacity { + float capacity_gbps = 1; +} + +message Constraint_SLA_Availability { + uint32 num_disjoint_paths = 1; + bool all_active = 2; + float availability = 3; // 0.0 .. 100.0 percentage of availability +} + +enum IsolationLevelEnum { + NO_ISOLATION = 0; + PHYSICAL_ISOLATION = 1; + LOGICAL_ISOLATION = 2; + PROCESS_ISOLATION = 3; + PHYSICAL_MEMORY_ISOLATION = 4; + PHYSICAL_NETWORK_ISOLATION = 5; + VIRTUAL_RESOURCE_ISOLATION = 6; + NETWORK_FUNCTIONS_ISOLATION = 7; + SERVICE_ISOLATION = 8; +} + +message Constraint_SLA_Isolation_level { + repeated IsolationLevelEnum isolation_level = 1; +} + +message Constraint_Exclusions { + bool is_permanent = 1; + repeated DeviceId device_ids = 2; + repeated EndPointId endpoint_ids = 3; + repeated LinkId link_ids = 4; +} + +message Constraint { + ConstraintActionEnum action = 1; + oneof constraint { + Constraint_Custom custom = 2; + Constraint_Schedule schedule = 3; + Constraint_EndPointLocation endpoint_location = 4; + Constraint_EndPointPriority endpoint_priority = 5; + Constraint_SLA_Capacity sla_capacity = 6; + Constraint_SLA_Latency sla_latency = 7; + Constraint_SLA_Availability sla_availability = 8; + Constraint_SLA_Isolation_level sla_isolation = 9; + Constraint_Exclusions exclusions = 10; + } +} + + +// ----- Miscellaneous ------------------------------------------------------------------------------------------------- +message TeraFlowController { + ContextId context_id = 1; + string ip_address = 2; + uint32 port = 3; +} + +message AuthenticationResult { + ContextId context_id = 1; + bool authenticated = 2; +} diff --git a/src/ztp/src/main/proto/device.proto b/src/ztp/src/main/proto/device.proto deleted file mode 120000 index ad6e7c47e..000000000 --- a/src/ztp/src/main/proto/device.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/device.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/device.proto b/src/ztp/src/main/proto/device.proto new file mode 100644 index 000000000..30e60079d --- /dev/null +++ b/src/ztp/src/main/proto/device.proto @@ -0,0 +1,34 @@ +// 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. + +syntax = "proto3"; +package device; + +import "context.proto"; +import "monitoring.proto"; + +service DeviceService { + rpc AddDevice (context.Device ) returns (context.DeviceId ) {} + rpc ConfigureDevice (context.Device ) returns (context.DeviceId ) {} + rpc DeleteDevice (context.DeviceId ) returns (context.Empty ) {} + rpc GetInitialConfig(context.DeviceId ) returns (context.DeviceConfig) {} + rpc MonitorDeviceKpi(MonitoringSettings) returns (context.Empty ) {} +} + +message MonitoringSettings { + monitoring.KpiId kpi_id = 1; + monitoring.KpiDescriptor kpi_descriptor = 2; + float sampling_duration_s = 3; + float sampling_interval_s = 4; +} diff --git a/src/ztp/src/main/proto/kpi_sample_types.proto b/src/ztp/src/main/proto/kpi_sample_types.proto deleted file mode 120000 index 98e748bbf..000000000 --- a/src/ztp/src/main/proto/kpi_sample_types.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/kpi_sample_types.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/kpi_sample_types.proto b/src/ztp/src/main/proto/kpi_sample_types.proto new file mode 100644 index 000000000..5b234a4e3 --- /dev/null +++ b/src/ztp/src/main/proto/kpi_sample_types.proto @@ -0,0 +1,42 @@ +// 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. + +syntax = "proto3"; +package kpi_sample_types; + +enum KpiSampleType { + KPISAMPLETYPE_UNKNOWN = 0; + + KPISAMPLETYPE_PACKETS_TRANSMITTED = 101; + KPISAMPLETYPE_PACKETS_RECEIVED = 102; + KPISAMPLETYPE_PACKETS_DROPPED = 103; + KPISAMPLETYPE_BYTES_TRANSMITTED = 201; + KPISAMPLETYPE_BYTES_RECEIVED = 202; + KPISAMPLETYPE_BYTES_DROPPED = 203; + + KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS = 301; + KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS = 302; + + KPISAMPLETYPE_ML_CONFIDENCE = 401; //. can be used by both optical and L3 without any issue + + KPISAMPLETYPE_OPTICAL_SECURITY_STATUS = 501; //. can be used by both optical and L3 without any issue + + KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS = 601; + KPISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS = 602; + KPISAMPLETYPE_L3_UNIQUE_ATTACKERS = 603; + KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CLIENTS = 604; + KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO = 605; + + KPISAMPLETYPE_SERVICE_LATENCY_MS = 701; +} diff --git a/src/ztp/src/main/proto/monitoring.proto b/src/ztp/src/main/proto/monitoring.proto deleted file mode 120000 index aceaa7328..000000000 --- a/src/ztp/src/main/proto/monitoring.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/monitoring.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/monitoring.proto b/src/ztp/src/main/proto/monitoring.proto new file mode 100644 index 000000000..45ba48b02 --- /dev/null +++ b/src/ztp/src/main/proto/monitoring.proto @@ -0,0 +1,174 @@ +// 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. + +syntax = "proto3"; +package monitoring; + +import "context.proto"; +import "kpi_sample_types.proto"; + +service MonitoringService { + rpc SetKpi (KpiDescriptor ) returns (KpiId ) {} // Stable not final + rpc DeleteKpi (KpiId ) returns (context.Empty ) {} // Stable and final + rpc GetKpiDescriptor (KpiId ) returns (KpiDescriptor ) {} // Stable and final + rpc GetKpiDescriptorList (context.Empty ) returns (KpiDescriptorList ) {} // Stable and final + rpc IncludeKpi (Kpi ) returns (context.Empty ) {} // Stable and final + rpc MonitorKpi (MonitorKpiRequest ) returns (context.Empty ) {} // Stable and final + rpc QueryKpiData (KpiQuery ) returns (RawKpiTable ) {} // Not implemented + rpc SetKpiSubscription (SubsDescriptor ) returns (stream SubsResponse ) {} // Stable not final + rpc GetSubsDescriptor (SubscriptionID ) returns (SubsDescriptor ) {} // Stable and final + rpc GetSubscriptions (context.Empty ) returns (SubsList ) {} // Stable and final + rpc DeleteSubscription (SubscriptionID ) returns (context.Empty ) {} // Stable and final + rpc SetKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {} // Stable not final + rpc GetAlarms (context.Empty ) returns (AlarmList ) {} // Stable and final + rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {} // Stable and final + rpc GetAlarmResponseStream(AlarmSubscription ) returns (stream AlarmResponse) {} // Not Stable not final + rpc DeleteAlarm (AlarmID ) returns (context.Empty ) {} // Stable and final + rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} // Stable not final + rpc GetInstantKpi (KpiId ) returns (Kpi ) {} // Stable not final +} + +message KpiDescriptor { + KpiId kpi_id = 1; + string kpi_description = 2; + repeated KpiId kpi_id_list = 3; + kpi_sample_types.KpiSampleType kpi_sample_type = 4; + context.DeviceId device_id = 5; + context.EndPointId endpoint_id = 6; + context.ServiceId service_id = 7; + context.SliceId slice_id = 8; + context.ConnectionId connection_id = 9; + context.LinkId link_id = 10; +} + +message MonitorKpiRequest { + KpiId kpi_id = 1; + float monitoring_window_s = 2; + float sampling_rate_s = 3; + // Pending add field to reflect Available Device Protocols +} + +message KpiQuery { + repeated KpiId kpi_ids = 1; + float monitoring_window_s = 2; + uint32 last_n_samples = 3; // used when you want something like "get the last N many samples + context.Timestamp start_timestamp = 4; // used when you want something like "get the samples since X date/time" + context.Timestamp end_timestamp = 5; // used when you want something like "get the samples until X date/time" +} + + +message RawKpi { // cell + context.Timestamp timestamp = 1; + KpiValue kpi_value = 2; +} + +message RawKpiList { // column + KpiId kpi_id = 1; + repeated RawKpi raw_kpis = 2; +} + +message RawKpiTable { // table + repeated RawKpiList raw_kpi_lists = 1; +} + +message KpiId { + context.Uuid kpi_id = 1; +} + +message Kpi { + KpiId kpi_id = 1; + context.Timestamp timestamp = 2; + KpiValue kpi_value = 3; +} + +message KpiValueRange { + KpiValue kpiMinValue = 1; + KpiValue kpiMaxValue = 2; + bool inRange = 3; // by default True + bool includeMinValue = 4; // False is outside the interval + bool includeMaxValue = 5; // False is outside the interval +} + +message KpiValue { + oneof value { + int32 int32Val = 1; + uint32 uint32Val = 2; + int64 int64Val = 3; + uint64 uint64Val = 4; + float floatVal = 5; + string stringVal = 6; + bool boolVal = 7; + } +} + + +message KpiList { + repeated Kpi kpi = 1; +} + +message KpiDescriptorList { + repeated KpiDescriptor kpi_descriptor_list = 1; +} + +message SubsDescriptor{ + SubscriptionID subs_id = 1; + KpiId kpi_id = 2; + float sampling_duration_s = 3; + float sampling_interval_s = 4; + context.Timestamp start_timestamp = 5; // used when you want something like "get the samples since X date/time" + context.Timestamp end_timestamp = 6; // used when you want something like "get the samples until X date/time" + // Pending add field to reflect Available Device Protocols +} + +message SubscriptionID { + context.Uuid subs_id = 1; +} + +message SubsResponse { + SubscriptionID subs_id = 1; + KpiList kpi_list = 2; +} + +message SubsList { + repeated SubsDescriptor subs_descriptor = 1; +} + +message AlarmDescriptor { + AlarmID alarm_id = 1; + string alarm_description = 2; + string name = 3; + KpiId kpi_id = 4; + KpiValueRange kpi_value_range = 5; + context.Timestamp timestamp = 6; +} + +message AlarmID{ + context.Uuid alarm_id = 1; +} + +message AlarmSubscription{ + AlarmID alarm_id = 1; + float subscription_timeout_s = 2; + float subscription_frequency_ms = 3; +} + +message AlarmResponse { + AlarmID alarm_id = 1; + string text = 2; + KpiList kpi_list = 3; +} + +message AlarmList { + repeated AlarmDescriptor alarm_descriptor = 1; +} diff --git a/src/ztp/src/main/proto/ztp.proto b/src/ztp/src/main/proto/ztp.proto deleted file mode 120000 index 9183ce531..000000000 --- a/src/ztp/src/main/proto/ztp.proto +++ /dev/null @@ -1 +0,0 @@ -../../../../../proto/ztp.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/ztp.proto b/src/ztp/src/main/proto/ztp.proto new file mode 100644 index 000000000..5c895900d --- /dev/null +++ b/src/ztp/src/main/proto/ztp.proto @@ -0,0 +1,69 @@ +// 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. + +syntax = "proto3"; +package ztp; + +import "context.proto"; + +service ZtpService { + rpc ZtpGetDeviceRole(DeviceRoleId) returns (DeviceRole) {} + rpc ZtpGetDeviceRolesByDeviceId(context.DeviceId) returns (DeviceRoleList) {} + rpc ZtpAdd(DeviceRole) returns (DeviceRoleState) {} + rpc ZtpUpdate(DeviceRoleConfig) returns (DeviceRoleState) {} + rpc ZtpDelete(DeviceRole) returns (DeviceRoleState) {} + rpc ZtpDeleteAll(context.Empty) returns (DeviceDeletionResult) {} +} + +enum DeviceRoleType { + NONE = 0; + DEV_OPS = 1; + DEV_CONF = 2; + PIPELINE_CONF = 3; +} + +message DeviceRoleId { + context.Uuid devRoleId = 1; + context.DeviceId devId = 2; +} + +message DeviceRole { + DeviceRoleId devRoleId = 1; + DeviceRoleType devRoleType = 2; +} + +message DeviceRoleConfig { + DeviceRole devRole = 1; + context.DeviceConfig devConfig = 2; +} + +message DeviceRoleList { + repeated DeviceRole devRole = 1; +} + +message DeviceRoleState { + DeviceRoleId devRoleId = 1; + ZtpDeviceState devRoleState = 2; +} + +message DeviceDeletionResult { + repeated string deleted = 1; +} + +enum ZtpDeviceState { + ZTP_DEV_STATE_UNDEFINED = 0; + ZTP_DEV_STATE_CREATED = 1; + ZTP_DEV_STATE_UPDATED = 2; + ZTP_DEV_STATE_DELETED = 3; +} -- GitLab From 87b5aa6f30df31a03fbb7991a2bb51b027179e80 Mon Sep 17 00:00:00 2001 From: carcel <jose.carcel@atos.net> Date: Fri, 22 Mar 2024 08:40:38 +0000 Subject: [PATCH 011/213] Update - Morpheus Client Extension --- src/common/tools/object_factory/Device.py | 5 +++-- .../drivers/smartnic/SmartnicDriver.py | 12 +++++++---- src/device/service/drivers/smartnic/Tools.py | 12 +++++++---- .../service/drivers/smartnic/__init__.py | 2 -- .../ietf-yang-types.yang | 0 .../openconfig-extensions.yang | 0 .../openconfig-inet-types.yang | 0 .../openconfig-probes-types.yang | 0 .../openconfig-probes.yang | 0 .../openconfig-types.yang | 0 .../probes-agent.yang | 0 .../references_probes_libraries.txt | 0 .../service/drivers/smartnic_probes/.gitkeep | 0 .../smartnics_probes_agent/.gitkeep | 0 .../nbi_plugins/agent_probes/Resources.py | 21 ++++++++++++------- .../nbi_plugins/agent_probes/Tools.py | 12 +++++++---- 16 files changed, 40 insertions(+), 24 deletions(-) rename src/device/service/drivers/{smartnic_probes => smartnic}/ietf-yang-types.yang (100%) rename src/device/service/drivers/{smartnic_probes => smartnic}/openconfig-extensions.yang (100%) rename src/device/service/drivers/{smartnic_probes => smartnic}/openconfig-inet-types.yang (100%) rename src/device/service/drivers/{smartnic_probes => smartnic}/openconfig-probes-types.yang (100%) rename src/device/service/drivers/{smartnic_probes => smartnic}/openconfig-probes.yang (100%) rename src/device/service/drivers/{smartnic_probes => smartnic}/openconfig-types.yang (100%) rename src/device/service/drivers/{smartnic_probes => smartnic}/probes-agent.yang (100%) rename src/device/service/drivers/{smartnic_probes => smartnic}/references_probes_libraries.txt (100%) delete mode 100644 src/device/service/drivers/smartnic_probes/.gitkeep delete mode 100644 src/device/service/drivers/smartnic_probes/smartnics_probes_agent/.gitkeep diff --git a/src/common/tools/object_factory/Device.py b/src/common/tools/object_factory/Device.py index b3182e302..5a7ff398a 100644 --- a/src/common/tools/object_factory/Device.py +++ b/src/common/tools/object_factory/Device.py @@ -12,12 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -import copy +import copy, logging from typing import Dict, List, Optional, Tuple from common.DeviceTypes import DeviceTypeEnum from common.proto.context_pb2 import DeviceDriverEnum, DeviceOperationalStatusEnum from common.tools.object_factory.ConfigRule import json_config_rule_set +LOGGER = logging.getLogger(__name__) DEVICE_DISABLED = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_DISABLED DEVICE_EMUDC_TYPE = DeviceTypeEnum.EMULATED_DATACENTER.value @@ -62,13 +63,13 @@ def json_device( ): result = { 'device_id' : json_device_id(device_uuid), + 'name' : name, 'device_type' : device_type, 'device_config' : {'config_rules': copy.deepcopy(config_rules)}, 'device_operational_status': status, 'device_drivers' : copy.deepcopy(drivers), 'device_endpoints' : copy.deepcopy(endpoints), } - if name is not None: result['name'] = name return result def json_device_emulated_packet_router_disabled( diff --git a/src/device/service/drivers/smartnic/SmartnicDriver.py b/src/device/service/drivers/smartnic/SmartnicDriver.py index 4bad52db4..f827bbbff 100644 --- a/src/device/service/drivers/smartnic/SmartnicDriver.py +++ b/src/device/service/drivers/smartnic/SmartnicDriver.py @@ -20,8 +20,11 @@ from common.type_checkers.Checkers import chk_string, chk_type from device.service.driver_api._Driver import _Driver from . import ALL_RESOURCE_KEYS from .Tools import create_connectivity_service, find_key, config_getter, delete_connectivity_service +from common.tools.grpc.Tools import grpc_message_to_json, grpc_message_to_json_string + LOGGER = logging.getLogger(__name__) +from device.service.driver_api._Driver import RESOURCE_ENDPOINTS, RESOURCE_SERVICES, RESOURCE_INTERFACES DRIVER_NAME = 'smartnic' METRICS_POOL = MetricsPool('Device', 'Driver', labels={'driver': DRIVER_NAME}) @@ -75,8 +78,9 @@ class SmartnicDriver(_Driver): for i, resource_key in enumerate(resource_keys): str_resource_name = 'resource_key[#{:d}]'.format(i) chk_string(str_resource_name, resource_key, allow_empty=False) - results.extend(config_getter( - self.__tapi_root, resource_key, timeout=self.__timeout)) + if resource_key == RESOURCE_ENDPOINTS: + results.extend(config_getter( + self.__tapi_root, resource_key, timeout=self.__timeout)) return results @metered_subclass_method(METRICS_POOL) @@ -87,9 +91,9 @@ class SmartnicDriver(_Driver): with self.__lock: for resource in resources: LOGGER.info('resource = {:s}'.format(str(resource))) - config_rules = find_key(resource, 'config_rules') + #config_rules = find_key(resource, 'config_rules') data = create_connectivity_service( - self.__tapi_root, config_rules, timeout=self.__timeout) + self.__tapi_root, resource[1], timeout=self.__timeout) results.extend(data) return results diff --git a/src/device/service/drivers/smartnic/Tools.py b/src/device/service/drivers/smartnic/Tools.py index 54961bbdd..bd155441c 100644 --- a/src/device/service/drivers/smartnic/Tools.py +++ b/src/device/service/drivers/smartnic/Tools.py @@ -50,6 +50,11 @@ def config_getter( result = [] try: response = requests.get(url, timeout=timeout, verify=False) + data = response.json() + for item in data: + tupla = ('/endpoints/endpoint', item) + result.append(tupla) + return result except requests.exceptions.Timeout: LOGGER.exception('Timeout connecting {:s}'.format(url)) return result @@ -57,7 +62,6 @@ def config_getter( LOGGER.exception('Exception retrieving {:s}'.format(resource_key)) result.append((resource_key, e)) return result - return response # try: # context = json.loads(response.content) @@ -72,13 +76,13 @@ def create_connectivity_service( root_url, config_rules, timeout : Optional[int] = None, auth : Optional[HTTPBasicAuth] = None ): - url = '{:s}/configure'.format(root_url) + url = '{:s}/manage-probe/configure'.format(root_url) headers = {'content-type': 'application/json'} results = [] try: LOGGER.info('Configuring Smartnic rules') response = requests.post( - url=url, data=json.dumps(config_rules), timeout=timeout, headers=headers, verify=False) + url=url, data=config_rules, timeout=timeout, headers=headers, verify=False) LOGGER.info('SmartNIC Probes response: {:s}'.format(str(response))) except Exception as e: # pylint: disable=broad-except LOGGER.exception('Exception creating ConfigRule') @@ -92,7 +96,7 @@ def create_connectivity_service( def delete_connectivity_service(root_url, config_rules, timeout : Optional[int] = None, auth : Optional[HTTPBasicAuth] = None ): - url = '{:s}/configure'.format(root_url) + url = '{:s}/manage-probe/configure'.format(root_url) results = [] try: response = requests.delete(url=url, timeout=timeout, verify=False) diff --git a/src/device/service/drivers/smartnic/__init__.py b/src/device/service/drivers/smartnic/__init__.py index bc88d00fa..b3626c633 100644 --- a/src/device/service/drivers/smartnic/__init__.py +++ b/src/device/service/drivers/smartnic/__init__.py @@ -14,7 +14,5 @@ from device.service.driver_api._Driver import RESOURCE_ENDPOINTS, RESOURCE_SERVICES, RESOURCE_INTERFACES ALL_RESOURCE_KEYS = [ - RESOURCE_ENDPOINTS, - RESOURCE_SERVICES, RESOURCE_INTERFACES ] diff --git a/src/device/service/drivers/smartnic_probes/ietf-yang-types.yang b/src/device/service/drivers/smartnic/ietf-yang-types.yang similarity index 100% rename from src/device/service/drivers/smartnic_probes/ietf-yang-types.yang rename to src/device/service/drivers/smartnic/ietf-yang-types.yang diff --git a/src/device/service/drivers/smartnic_probes/openconfig-extensions.yang b/src/device/service/drivers/smartnic/openconfig-extensions.yang similarity index 100% rename from src/device/service/drivers/smartnic_probes/openconfig-extensions.yang rename to src/device/service/drivers/smartnic/openconfig-extensions.yang diff --git a/src/device/service/drivers/smartnic_probes/openconfig-inet-types.yang b/src/device/service/drivers/smartnic/openconfig-inet-types.yang similarity index 100% rename from src/device/service/drivers/smartnic_probes/openconfig-inet-types.yang rename to src/device/service/drivers/smartnic/openconfig-inet-types.yang diff --git a/src/device/service/drivers/smartnic_probes/openconfig-probes-types.yang b/src/device/service/drivers/smartnic/openconfig-probes-types.yang similarity index 100% rename from src/device/service/drivers/smartnic_probes/openconfig-probes-types.yang rename to src/device/service/drivers/smartnic/openconfig-probes-types.yang diff --git a/src/device/service/drivers/smartnic_probes/openconfig-probes.yang b/src/device/service/drivers/smartnic/openconfig-probes.yang similarity index 100% rename from src/device/service/drivers/smartnic_probes/openconfig-probes.yang rename to src/device/service/drivers/smartnic/openconfig-probes.yang diff --git a/src/device/service/drivers/smartnic_probes/openconfig-types.yang b/src/device/service/drivers/smartnic/openconfig-types.yang similarity index 100% rename from src/device/service/drivers/smartnic_probes/openconfig-types.yang rename to src/device/service/drivers/smartnic/openconfig-types.yang diff --git a/src/device/service/drivers/smartnic_probes/probes-agent.yang b/src/device/service/drivers/smartnic/probes-agent.yang similarity index 100% rename from src/device/service/drivers/smartnic_probes/probes-agent.yang rename to src/device/service/drivers/smartnic/probes-agent.yang diff --git a/src/device/service/drivers/smartnic_probes/references_probes_libraries.txt b/src/device/service/drivers/smartnic/references_probes_libraries.txt similarity index 100% rename from src/device/service/drivers/smartnic_probes/references_probes_libraries.txt rename to src/device/service/drivers/smartnic/references_probes_libraries.txt diff --git a/src/device/service/drivers/smartnic_probes/.gitkeep b/src/device/service/drivers/smartnic_probes/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/device/service/drivers/smartnic_probes/smartnics_probes_agent/.gitkeep b/src/device/service/drivers/smartnic_probes/smartnics_probes_agent/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py index 2b0a537cc..daafd79ab 100644 --- a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py +++ b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py @@ -181,10 +181,10 @@ class Device(_Resource): return format_grpc_to_json(self.device_client.AddDevice(grpc_device( device_uuid = device['device_id']['device_uuid']['uuid'], device_type = device['device_type'], - config_rules = device['device_config']['config_rules'], status = device['device_operational_status'], - drivers = device['device_drivers'], - endpoints = device['device_endpoints'] + endpoints = device['device_endpoints'], + config_rules = device['device_config']['config_rules'], + drivers = device['device_drivers'] ))) def put(self, device_uuid : str): # pylint: disable=unused-argument @@ -192,12 +192,17 @@ class Device(_Resource): return format_grpc_to_json(self.device_client.ConfigureDevice(grpc_device( device_uuid = device['device_id']['device_uuid']['uuid'], device_type = device['device_type'], - device_config = device['device_config']['config_rules'], - device_operational_status = device['device_operational_status'], - device_drivers = device['device_drivers'], - device_endpoints = device['device_endpoints'] + status = device['device_operational_status'], + endpoints = device['device_endpoints'], + config_rules = device['device_config']['config_rules'], + drivers = device['device_drivers'] + ))) + + def delete(self, device_uuid : str): + device = request.get_json()['devices'][0] + return format_grpc_to_json(self.device_client.DeleteDevice(grpc_device( + device_uuid = device['device_id']['device_uuid']['uuid'] ))) - class LinkIds(_Resource): def get(self): diff --git a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py index 17b6dcdfd..6cffbb5cc 100644 --- a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py +++ b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py @@ -12,12 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. +import logging from flask.json import jsonify from common.proto.context_pb2 import ( ConnectionId, ContextId, DeviceDriverEnum, Device, DeviceId, DeviceOperationalStatusEnum, LinkId, ServiceId, SliceId, TopologyId, Service, ServiceStatusEnum ) from common.proto.policy_pb2 import PolicyRuleId -from common.tools.grpc.Tools import grpc_message_to_json +from common.proto.context_pb2 import ConfigActionEnum +from common.tools.grpc.Tools import grpc_message_to_json, grpc_message_to_json_string from common.tools.object_factory.Connection import json_connection_id from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.ConfigRule import json_config_rule @@ -30,6 +32,8 @@ from common.tools.object_factory.Service import json_service_id, json_service from common.tools.object_factory.Slice import json_slice_id from common.tools.object_factory.Topology import json_topology_id +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) def format_grpc_to_json(grpc_reply): return jsonify(grpc_message_to_json(grpc_reply)) @@ -44,8 +48,9 @@ def grpc_device_id(device_uuid): return DeviceId(**json_device_id(device_uuid)) def grpc_device( - device_uuid, device_type, config_rules=None, status=None, drivers=None, endpoints=None + device_uuid, device_type, status, endpoints=None, config_rules=None, drivers=None ): + json_config_rules = [ json_config_rule( config_rule['action'], @@ -68,8 +73,7 @@ def grpc_device( for endpoint in endpoints ] if endpoints else [] return Device(**json_device( - device_uuid, device_type, json_config_rules, json_status, - json_drivers, json_endpoints)) + device_uuid, device_type, json_status, None, json_endpoints, json_config_rules, json_drivers)) def grpc_link_id(link_uuid): return LinkId(**json_link_id(link_uuid)) -- GitLab From 9bdfc3c75bdb2dc7ad493272565436150cfb4f34 Mon Sep 17 00:00:00 2001 From: carcel <jose.carcel@atos.net> Date: Fri, 22 Mar 2024 09:40:51 +0000 Subject: [PATCH 012/213] Update - Morpheus Client Extension --- src/device/service/drivers/smartnic/SmartnicDriver.py | 4 ++-- src/device/service/drivers/smartnic/Tools.py | 2 +- .../rest_server/nbi_plugins/agent_probes/Resources.py | 7 ++++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/device/service/drivers/smartnic/SmartnicDriver.py b/src/device/service/drivers/smartnic/SmartnicDriver.py index f827bbbff..35d05edde 100644 --- a/src/device/service/drivers/smartnic/SmartnicDriver.py +++ b/src/device/service/drivers/smartnic/SmartnicDriver.py @@ -104,9 +104,9 @@ class SmartnicDriver(_Driver): with self.__lock: for resource in resources: LOGGER.info('resource = {:s}'.format(str(resource))) - config_rules = find_key(resource, 'config_rules') + #config_rules = find_key(resource, 'config_rules') results.extend(delete_connectivity_service( - self.__tapi_root, config_rules, timeout=self.__timeout)) + self.__tapi_root, resource[1], timeout=self.__timeout)) return results @metered_subclass_method(METRICS_POOL) diff --git a/src/device/service/drivers/smartnic/Tools.py b/src/device/service/drivers/smartnic/Tools.py index bd155441c..13345b618 100644 --- a/src/device/service/drivers/smartnic/Tools.py +++ b/src/device/service/drivers/smartnic/Tools.py @@ -99,7 +99,7 @@ def delete_connectivity_service(root_url, config_rules, timeout : Optional[int] url = '{:s}/manage-probe/configure'.format(root_url) results = [] try: - response = requests.delete(url=url, timeout=timeout, verify=False) + response = requests.delete(url=url, data=config_rules, timeout=timeout, verify=False) except Exception as e: # pylint: disable=broad-except LOGGER.exception('Exception deleting ConfigRule') results.append(e) diff --git a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py index daafd79ab..50e8e77af 100644 --- a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py +++ b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py @@ -201,7 +201,12 @@ class Device(_Resource): def delete(self, device_uuid : str): device = request.get_json()['devices'][0] return format_grpc_to_json(self.device_client.DeleteDevice(grpc_device( - device_uuid = device['device_id']['device_uuid']['uuid'] + device_uuid = device['device_id']['device_uuid']['uuid'], + device_type = device['device_type'], + status = device['device_operational_status'], + endpoints = device['device_endpoints'], + config_rules = device['device_config']['config_rules'], + drivers = device['device_drivers'] ))) class LinkIds(_Resource): -- GitLab From 0a67951cfdbf6c6d853a203e7f16882faf90f899 Mon Sep 17 00:00:00 2001 From: mansoca <carlos.manso@cttc.es> Date: Fri, 18 Oct 2024 14:05:43 +0000 Subject: [PATCH 013/213] alpha --- src/tests/ecoc24/.gitlab-ci.yml | 124 +++++++++++++++++++++++++++ src/tests/ecoc24/Dockerfile | 102 ++++++++++++++++++++++ src/tests/ecoc24/deploy_specs_e2e.sh | 2 +- src/tests/ecoc24/deploy_specs_ip.sh | 2 +- src/tests/ecoc24/deploy_specs_opt.sh | 2 +- src/tests/ecoc24/tests/__init__.py | 14 +++ src/tests/ofc24/Dockerfile | 31 +++---- 7 files changed, 259 insertions(+), 18 deletions(-) create mode 100644 src/tests/ecoc24/.gitlab-ci.yml create mode 100644 src/tests/ecoc24/Dockerfile create mode 100644 src/tests/ecoc24/tests/__init__.py diff --git a/src/tests/ecoc24/.gitlab-ci.yml b/src/tests/ecoc24/.gitlab-ci.yml new file mode 100644 index 000000000..3fb66f399 --- /dev/null +++ b/src/tests/ecoc24/.gitlab-ci.yml @@ -0,0 +1,124 @@ +# 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. + +# Build, tag, and push the Docker image to the GitLab Docker registry +build ecoc24: + variables: + TEST_NAME: 'ecoc24' + stage: build + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker buildx build -t "${TEST_NAME}:latest" -f ./src/tests/${TEST_NAME}/Dockerfile . + - docker tag "${TEST_NAME}:latest" "$CI_REGISTRY_IMAGE/${TEST_NAME}:latest" + - docker push "$CI_REGISTRY_IMAGE/${TEST_NAME}:latest" + after_script: + - docker images --filter="dangling=true" --quiet | xargs -r docker rmi + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - changes: + - src/common/**/*.py + - proto/*.proto + - src/tests/${TEST_NAME}/**/*.{py,in,sh,yml} + - src/tests/${TEST_NAME}/Dockerfile + - .gitlab-ci.yml + +# Deploy TeraFlowSDN and Execute end-2-end test +end2end_test ecoc24: + variables: + TEST_NAME: 'ecoc24' + stage: end2end_test + # Disable to force running it after all other tasks + #needs: + # - build ecoc24 + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - docker network rm -f na-br + + script: + # Download Docker image to run the test + - docker pull "${CI_REGISTRY_IMAGE}/${TEST_NAME}:latest" + + + # Check MicroK8s is ready + - microk8s status --wait-ready + - kubectl get pods --all-namespaces + + # Deploy Optical Device Node Agents + - > + 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 + + + # 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 + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/deviceservice.yaml + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="frontend").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/pathcompservice.yaml + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/serviceservice.yaml + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/sliceservice.yaml + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/nbiservice.yaml + - source src/tests/${TEST_NAME}/deploy_specs.sh + #- export TFS_REGISTRY_IMAGES="${CI_REGISTRY_IMAGE}" + #- export TFS_SKIP_BUILD="YES" + #- export TFS_IMAGE_TAG="latest" + #- echo "TFS_REGISTRY_IMAGES=${CI_REGISTRY_IMAGE}" + + # Deploy TeraFlowSDN + - ./deploy/crdb.sh + - ./deploy/nats.sh + - ./deploy/qdb.sh + - ./deploy/expose_dashboard.sh + - ./deploy/tfs.sh + - ./deploy/show.sh + + # Wait for Context to be subscribed to NATS + #- while ! kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server 2>&1 | grep -q 'Subscriber is Ready? True'; do sleep 1; done + #- kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server + + # Run end-to-end tests + #- if docker ps -a | grep ${TEST_NAME}; then docker rm -f ${TEST_NAME}; fi + #- > + # docker run -t --name ${TEST_NAME} --network=host + # --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 + - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server + - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/deviceservice -c server + - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/pathcompservice -c frontend + - 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 + + # 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)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + artifacts: + when: always + reports: + junit: ./src/tests/${TEST_NAME}/report_*.xml diff --git a/src/tests/ecoc24/Dockerfile b/src/tests/ecoc24/Dockerfile new file mode 100644 index 000000000..734cf6233 --- /dev/null +++ b/src/tests/ecoc24/Dockerfile @@ -0,0 +1,102 @@ +# 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. + +FROM python:3.9-slim + +# Install dependencies +RUN apt-get --yes --quiet --quiet update && \ + apt-get --yes --quiet --quiet install wget g++ git && \ + rm -rf /var/lib/apt/lists/* + +# Set Python to show logs as they occur +ENV PYTHONUNBUFFERED=0 + +# Download the gRPC health probe +RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ + wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ + chmod +x /bin/grpc_health_probe + +# Get generic Python packages +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools + +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components +WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt + +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; + +# Create component sub-folders, get specific Python packages +RUN mkdir -p /var/teraflow/tests/ofc24 +WORKDIR /var/teraflow/tests/ofc24 +COPY src/tests/ofc24/requirements.in requirements.in +RUN pip-compile --quiet --output-file=requirements.txt requirements.in +RUN python3 -m pip install -r requirements.txt + +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/__init__.py ./__init__.py +COPY src/common/*.py ./common/ +COPY src/common/tests/. ./common/tests/ +COPY src/common/tools/. ./common/tools/ +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 +COPY src/service/client/. service/client/ +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/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/ + +RUN tee ./run_tests.sh <<EOF +#!/bin/bash +source /var/teraflow/tfs_runtime_env_vars.sh +export PYTHONPATH=/var/teraflow +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_bootstrap.py --junitxml=/opt/results/report_bootstrap.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_unidir.py --junitxml=/opt/results/report_create_service_unidir.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_unidir.py --junitxml=/opt/results/report_delete_service_unidir.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_bidir.py --junitxml=/opt/results/report_create_service_bidir.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_bidir.py --junitxml=/opt/results/report_delete_service_bidir.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml +EOF +RUN chmod ug+x ./run_tests.sh + +# Run the tests +ENTRYPOINT ["./run_tests.sh"] diff --git a/src/tests/ecoc24/deploy_specs_e2e.sh b/src/tests/ecoc24/deploy_specs_e2e.sh index e1e358cfc..a8353db54 100755 --- a/src/tests/ecoc24/deploy_specs_e2e.sh +++ b/src/tests/ecoc24/deploy_specs_e2e.sh @@ -20,7 +20,7 @@ export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" # Set the list of components, separated by spaces, you want to build images for, and deploy. -export TFS_COMPONENTS="context device pathcomp service slice nbi webui" +export TFS_COMPONENTS="context device pathcomp service nbi" # Uncomment to activate Monitoring (old) #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" diff --git a/src/tests/ecoc24/deploy_specs_ip.sh b/src/tests/ecoc24/deploy_specs_ip.sh index 7542a0fb5..52bd545ce 100755 --- a/src/tests/ecoc24/deploy_specs_ip.sh +++ b/src/tests/ecoc24/deploy_specs_ip.sh @@ -20,7 +20,7 @@ export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" # Set the list of components, separated by spaces, you want to build images for, and deploy. -export TFS_COMPONENTS="context device pathcomp service slice nbi webui" +export TFS_COMPONENTS="context device pathcomp service nbi" # Uncomment to activate Monitoring (old) #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" diff --git a/src/tests/ecoc24/deploy_specs_opt.sh b/src/tests/ecoc24/deploy_specs_opt.sh index 5d258e60f..999fba045 100755 --- a/src/tests/ecoc24/deploy_specs_opt.sh +++ b/src/tests/ecoc24/deploy_specs_opt.sh @@ -20,7 +20,7 @@ export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" # Set the list of components, separated by spaces, you want to build images for, and deploy. -export TFS_COMPONENTS="context device pathcomp service slice nbi webui" +export TFS_COMPONENTS="context device pathcomp service nbi" # Uncomment to activate Monitoring (old) #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" diff --git a/src/tests/ecoc24/tests/__init__.py b/src/tests/ecoc24/tests/__init__.py new file mode 100644 index 000000000..3ee6f7071 --- /dev/null +++ b/src/tests/ecoc24/tests/__init__.py @@ -0,0 +1,14 @@ +# 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. + diff --git a/src/tests/ofc24/Dockerfile b/src/tests/ofc24/Dockerfile index 734cf6233..aa40e1b4d 100644 --- a/src/tests/ofc24/Dockerfile +++ b/src/tests/ofc24/Dockerfile @@ -54,9 +54,9 @@ RUN rm *.proto RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; # Create component sub-folders, get specific Python packages -RUN mkdir -p /var/teraflow/tests/ofc24 -WORKDIR /var/teraflow/tests/ofc24 -COPY src/tests/ofc24/requirements.in requirements.in +RUN mkdir -p /var/teraflow/tests/ecoc24 +WORKDIR /var/teraflow/tests/ecoc24 +COPY src/tests/ecoc24/requirements.in requirements.in RUN pip-compile --quiet --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt @@ -79,22 +79,23 @@ COPY src/service/client/. service/client/ 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/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/ecoc24/__init__.py ./tests/ecoc24/__init__.py +#COPY src/tests/ecoc24/descriptors/topology.json ./tests/ecoc24/descriptors/topology.json +#COPY src/tests/ecoc24/descriptors/service-unidir.json ./tests/ecoc24/descriptors/service-unidir.json +#COPY src/tests/ecoc24/descriptors/service-bidir.json ./tests/ecoc24/descriptors/service-bidir.json +COPY src/tests/ecoc24/tests/. ./tests/ecoc24/tests/ RUN tee ./run_tests.sh <<EOF -#!/bin/bash +!/bin/bash source /var/teraflow/tfs_runtime_env_vars.sh export PYTHONPATH=/var/teraflow -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_bootstrap.py --junitxml=/opt/results/report_bootstrap.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_unidir.py --junitxml=/opt/results/report_create_service_unidir.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_unidir.py --junitxml=/opt/results/report_delete_service_unidir.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_bidir.py --junitxml=/opt/results/report_create_service_bidir.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_bidir.py --junitxml=/opt/results/report_delete_service_bidir.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml +print('Hola') +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap.py --junitxml=/opt/results/report_bootstrap.xml +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_create_service_unidir.py --junitxml=/opt/results/report_create_service_unidir.xml +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_delete_service_unidir.py --junitxml=/opt/results/report_delete_service_unidir.xml +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_create_service_bidir.py --junitxml=/opt/results/report_create_service_bidir.xml +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_delete_service_bidir.py --junitxml=/opt/results/report_delete_service_bidir.xml +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml EOF RUN chmod ug+x ./run_tests.sh -- GitLab From 51e8fc326f6819b8b601551d0fca2d8cdfc69c2c Mon Sep 17 00:00:00 2001 From: mansoca <carlos.manso@cttc.es> Date: Fri, 18 Oct 2024 14:05:43 +0000 Subject: [PATCH 014/213] alpha --- src/tests/ecoc24/.gitlab-ci.yml | 124 +++++++++++++++++++++++++++ src/tests/ecoc24/Dockerfile | 102 ++++++++++++++++++++++ src/tests/ecoc24/deploy_specs_e2e.sh | 2 +- src/tests/ecoc24/deploy_specs_ip.sh | 2 +- src/tests/ecoc24/deploy_specs_opt.sh | 2 +- src/tests/ecoc24/tests/__init__.py | 14 +++ src/tests/ofc24/Dockerfile | 35 ++++---- 7 files changed, 261 insertions(+), 20 deletions(-) create mode 100644 src/tests/ecoc24/.gitlab-ci.yml create mode 100644 src/tests/ecoc24/Dockerfile create mode 100644 src/tests/ecoc24/tests/__init__.py diff --git a/src/tests/ecoc24/.gitlab-ci.yml b/src/tests/ecoc24/.gitlab-ci.yml new file mode 100644 index 000000000..3fb66f399 --- /dev/null +++ b/src/tests/ecoc24/.gitlab-ci.yml @@ -0,0 +1,124 @@ +# 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. + +# Build, tag, and push the Docker image to the GitLab Docker registry +build ecoc24: + variables: + TEST_NAME: 'ecoc24' + stage: build + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker buildx build -t "${TEST_NAME}:latest" -f ./src/tests/${TEST_NAME}/Dockerfile . + - docker tag "${TEST_NAME}:latest" "$CI_REGISTRY_IMAGE/${TEST_NAME}:latest" + - docker push "$CI_REGISTRY_IMAGE/${TEST_NAME}:latest" + after_script: + - docker images --filter="dangling=true" --quiet | xargs -r docker rmi + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - changes: + - src/common/**/*.py + - proto/*.proto + - src/tests/${TEST_NAME}/**/*.{py,in,sh,yml} + - src/tests/${TEST_NAME}/Dockerfile + - .gitlab-ci.yml + +# Deploy TeraFlowSDN and Execute end-2-end test +end2end_test ecoc24: + variables: + TEST_NAME: 'ecoc24' + stage: end2end_test + # Disable to force running it after all other tasks + #needs: + # - build ecoc24 + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - docker network rm -f na-br + + script: + # Download Docker image to run the test + - docker pull "${CI_REGISTRY_IMAGE}/${TEST_NAME}:latest" + + + # Check MicroK8s is ready + - microk8s status --wait-ready + - kubectl get pods --all-namespaces + + # Deploy Optical Device Node Agents + - > + 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 + + + # 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 + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/deviceservice.yaml + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="frontend").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/pathcompservice.yaml + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/serviceservice.yaml + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/sliceservice.yaml + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/nbiservice.yaml + - source src/tests/${TEST_NAME}/deploy_specs.sh + #- export TFS_REGISTRY_IMAGES="${CI_REGISTRY_IMAGE}" + #- export TFS_SKIP_BUILD="YES" + #- export TFS_IMAGE_TAG="latest" + #- echo "TFS_REGISTRY_IMAGES=${CI_REGISTRY_IMAGE}" + + # Deploy TeraFlowSDN + - ./deploy/crdb.sh + - ./deploy/nats.sh + - ./deploy/qdb.sh + - ./deploy/expose_dashboard.sh + - ./deploy/tfs.sh + - ./deploy/show.sh + + # Wait for Context to be subscribed to NATS + #- while ! kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server 2>&1 | grep -q 'Subscriber is Ready? True'; do sleep 1; done + #- kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server + + # Run end-to-end tests + #- if docker ps -a | grep ${TEST_NAME}; then docker rm -f ${TEST_NAME}; fi + #- > + # docker run -t --name ${TEST_NAME} --network=host + # --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 + - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server + - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/deviceservice -c server + - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/pathcompservice -c frontend + - 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 + + # 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)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + artifacts: + when: always + reports: + junit: ./src/tests/${TEST_NAME}/report_*.xml diff --git a/src/tests/ecoc24/Dockerfile b/src/tests/ecoc24/Dockerfile new file mode 100644 index 000000000..734cf6233 --- /dev/null +++ b/src/tests/ecoc24/Dockerfile @@ -0,0 +1,102 @@ +# 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. + +FROM python:3.9-slim + +# Install dependencies +RUN apt-get --yes --quiet --quiet update && \ + apt-get --yes --quiet --quiet install wget g++ git && \ + rm -rf /var/lib/apt/lists/* + +# Set Python to show logs as they occur +ENV PYTHONUNBUFFERED=0 + +# Download the gRPC health probe +RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ + wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ + chmod +x /bin/grpc_health_probe + +# Get generic Python packages +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools + +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components +WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt + +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; + +# Create component sub-folders, get specific Python packages +RUN mkdir -p /var/teraflow/tests/ofc24 +WORKDIR /var/teraflow/tests/ofc24 +COPY src/tests/ofc24/requirements.in requirements.in +RUN pip-compile --quiet --output-file=requirements.txt requirements.in +RUN python3 -m pip install -r requirements.txt + +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/__init__.py ./__init__.py +COPY src/common/*.py ./common/ +COPY src/common/tests/. ./common/tests/ +COPY src/common/tools/. ./common/tools/ +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 +COPY src/service/client/. service/client/ +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/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/ + +RUN tee ./run_tests.sh <<EOF +#!/bin/bash +source /var/teraflow/tfs_runtime_env_vars.sh +export PYTHONPATH=/var/teraflow +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_bootstrap.py --junitxml=/opt/results/report_bootstrap.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_unidir.py --junitxml=/opt/results/report_create_service_unidir.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_unidir.py --junitxml=/opt/results/report_delete_service_unidir.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_bidir.py --junitxml=/opt/results/report_create_service_bidir.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_bidir.py --junitxml=/opt/results/report_delete_service_bidir.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml +EOF +RUN chmod ug+x ./run_tests.sh + +# Run the tests +ENTRYPOINT ["./run_tests.sh"] diff --git a/src/tests/ecoc24/deploy_specs_e2e.sh b/src/tests/ecoc24/deploy_specs_e2e.sh index e1e358cfc..a8353db54 100755 --- a/src/tests/ecoc24/deploy_specs_e2e.sh +++ b/src/tests/ecoc24/deploy_specs_e2e.sh @@ -20,7 +20,7 @@ export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" # Set the list of components, separated by spaces, you want to build images for, and deploy. -export TFS_COMPONENTS="context device pathcomp service slice nbi webui" +export TFS_COMPONENTS="context device pathcomp service nbi" # Uncomment to activate Monitoring (old) #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" diff --git a/src/tests/ecoc24/deploy_specs_ip.sh b/src/tests/ecoc24/deploy_specs_ip.sh index 7542a0fb5..52bd545ce 100755 --- a/src/tests/ecoc24/deploy_specs_ip.sh +++ b/src/tests/ecoc24/deploy_specs_ip.sh @@ -20,7 +20,7 @@ export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" # Set the list of components, separated by spaces, you want to build images for, and deploy. -export TFS_COMPONENTS="context device pathcomp service slice nbi webui" +export TFS_COMPONENTS="context device pathcomp service nbi" # Uncomment to activate Monitoring (old) #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" diff --git a/src/tests/ecoc24/deploy_specs_opt.sh b/src/tests/ecoc24/deploy_specs_opt.sh index 5d258e60f..999fba045 100755 --- a/src/tests/ecoc24/deploy_specs_opt.sh +++ b/src/tests/ecoc24/deploy_specs_opt.sh @@ -20,7 +20,7 @@ export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" # Set the list of components, separated by spaces, you want to build images for, and deploy. -export TFS_COMPONENTS="context device pathcomp service slice nbi webui" +export TFS_COMPONENTS="context device pathcomp service nbi" # Uncomment to activate Monitoring (old) #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" diff --git a/src/tests/ecoc24/tests/__init__.py b/src/tests/ecoc24/tests/__init__.py new file mode 100644 index 000000000..3ee6f7071 --- /dev/null +++ b/src/tests/ecoc24/tests/__init__.py @@ -0,0 +1,14 @@ +# 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. + diff --git a/src/tests/ofc24/Dockerfile b/src/tests/ofc24/Dockerfile index 734cf6233..28c40bc5f 100644 --- a/src/tests/ofc24/Dockerfile +++ b/src/tests/ofc24/Dockerfile @@ -54,11 +54,11 @@ RUN rm *.proto RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; # Create component sub-folders, get specific Python packages -RUN mkdir -p /var/teraflow/tests/ofc24 -WORKDIR /var/teraflow/tests/ofc24 -COPY src/tests/ofc24/requirements.in requirements.in -RUN pip-compile --quiet --output-file=requirements.txt requirements.in -RUN python3 -m pip install -r requirements.txt +RUN mkdir -p /var/teraflow/tests/ecoc24 +WORKDIR /var/teraflow/tests/ecoc24 +# COPY src/tests/ecoc24/requirements.in requirements.in +# RUN pip-compile --quiet --output-file=requirements.txt requirements.in +# RUN python3 -m pip install -r requirements.txt # Add component files into working directory WORKDIR /var/teraflow @@ -79,22 +79,23 @@ COPY src/service/client/. service/client/ 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/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/ecoc24/__init__.py ./tests/ecoc24/__init__.py +#COPY src/tests/ecoc24/descriptors/topology.json ./tests/ecoc24/descriptors/topology.json +#COPY src/tests/ecoc24/descriptors/service-unidir.json ./tests/ecoc24/descriptors/service-unidir.json +#COPY src/tests/ecoc24/descriptors/service-bidir.json ./tests/ecoc24/descriptors/service-bidir.json +COPY src/tests/ecoc24/tests/. ./tests/ecoc24/tests/ RUN tee ./run_tests.sh <<EOF -#!/bin/bash +!/bin/bash source /var/teraflow/tfs_runtime_env_vars.sh export PYTHONPATH=/var/teraflow -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_bootstrap.py --junitxml=/opt/results/report_bootstrap.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_unidir.py --junitxml=/opt/results/report_create_service_unidir.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_unidir.py --junitxml=/opt/results/report_delete_service_unidir.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_bidir.py --junitxml=/opt/results/report_create_service_bidir.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_bidir.py --junitxml=/opt/results/report_delete_service_bidir.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml +print('Hola') +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap.py --junitxml=/opt/results/report_bootstrap.xml +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_create_service_unidir.py --junitxml=/opt/results/report_create_service_unidir.xml +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_delete_service_unidir.py --junitxml=/opt/results/report_delete_service_unidir.xml +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_create_service_bidir.py --junitxml=/opt/results/report_create_service_bidir.xml +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_delete_service_bidir.py --junitxml=/opt/results/report_delete_service_bidir.xml +#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml EOF RUN chmod ug+x ./run_tests.sh -- GitLab From 979117e18b2808a3a6ba1b11aa205bfdb248608d Mon Sep 17 00:00:00 2001 From: mansoca <carlos.manso@cttc.es> Date: Tue, 5 Nov 2024 11:18:18 +0000 Subject: [PATCH 015/213] deploy --- manifests/e2e_orchestratorservice.yaml | 10 ++- manifests/nbiservice.yaml | 12 ++-- manifests/serviceservice.yaml | 2 +- .../service/drivers/oc_driver/OCDriver.py | 2 +- src/e2e_orchestrator/requirements.in | 1 + .../E2EOrchestratorServiceServicerImpl.py | 39 +++++++++-- .../service/context_subscription/__init__.py | 6 +- .../nbi_plugins/tfs_api/Resources.py | 5 ++ .../nbi_plugins/tfs_api/__init__.py | 53 ++++++++------- src/tests/ecoc24/.gitlab-ci.yml | 31 +++++---- src/tests/ecoc24/deploy_e2e.sh | 5 ++ src/tests/ecoc24/deploy_ip.sh | 5 ++ src/tests/ecoc24/deploy_opt.sh | 6 ++ src/tests/ecoc24/deploy_specs_e2e.sh | 5 +- src/tests/ecoc24/deploy_specs_ip.sh | 4 +- src/tests/ecoc24/deploy_specs_opt.sh | 4 +- ...{link_mapping.json => descriptor_e2e.json} | 3 +- .../ecoc24/descriptors/descriptor_ip.json | 3 +- .../ecoc24/descriptors/descriptor_opt.json | 3 +- .../tests/test_functional_bootstrap_e2e.py | 67 +++++++++++++++++++ ...rap.py => test_functional_bootstrap_ip.py} | 0 .../tests/test_functional_bootstrap_opt.py | 67 +++++++++++++++++++ .../service/VNTManagerServiceServicerImpl.py | 4 +- 23 files changed, 268 insertions(+), 69 deletions(-) rename src/tests/ecoc24/descriptors/{link_mapping.json => descriptor_e2e.json} (99%) create mode 100644 src/tests/ecoc24/tests/test_functional_bootstrap_e2e.py rename src/tests/ecoc24/tests/{test_functional_bootstrap.py => test_functional_bootstrap_ip.py} (100%) create mode 100644 src/tests/ecoc24/tests/test_functional_bootstrap_opt.py diff --git a/manifests/e2e_orchestratorservice.yaml b/manifests/e2e_orchestratorservice.yaml index 893f3464f..21e5d49cb 100644 --- a/manifests/e2e_orchestratorservice.yaml +++ b/manifests/e2e_orchestratorservice.yaml @@ -37,7 +37,7 @@ spec: ports: - containerPort: 10050 - containerPort: 9192 - - containerPort: 8761 + - containerPort: 8762 env: - name: LOG_LEVEL value: "INFO" @@ -49,6 +49,10 @@ spec: value: "e2e-orchestratorservice.tfs-e2e.svc.cluster.local" - name: WS_E2E_PORT value: "8762" + - name: EXT_CONTROLLER1_ADD + value: "10.1.1.96" + - name: EXT_CONTROLLER1_PORT + value: "8003" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:10050"] @@ -81,5 +85,5 @@ spec: port: 9192 targetPort: 9192 - name: ws - port: 8761 - targetPort: 8761 + port: 8762 + targetPort: 8762 diff --git a/manifests/nbiservice.yaml b/manifests/nbiservice.yaml index 72cfde514..ac9c9bec5 100644 --- a/manifests/nbiservice.yaml +++ b/manifests/nbiservice.yaml @@ -38,14 +38,14 @@ spec: - containerPort: 8080 - containerPort: 9090 - containerPort: 9192 - - containerPort: 8762 + - containerPort: 8761 env: - name: LOG_LEVEL value: "INFO" - name: IETF_NETWORK_RENDERER value: "LIBYANG" - - name: WS_E2E_PORT - value: "8762" + - name: WS_IP_PORT + value: "8761" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:9090"] @@ -83,7 +83,7 @@ spec: protocol: TCP port: 9192 targetPort: 9192 - - name: ws + - name: websocket protocol: TCP - port: 8762 - targetPort: 8762 + port: 8761 + targetPort: 8761 diff --git a/manifests/serviceservice.yaml b/manifests/serviceservice.yaml index 1dd383d61..bcfb47ee3 100644 --- a/manifests/serviceservice.yaml +++ b/manifests/serviceservice.yaml @@ -36,7 +36,7 @@ spec: - containerPort: 9192 env: - name: LOG_LEVEL - value: "INFO" + value: "DEBUG" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:3030"] diff --git a/src/device/service/drivers/oc_driver/OCDriver.py b/src/device/service/drivers/oc_driver/OCDriver.py index 6351f26e5..087e58b76 100644 --- a/src/device/service/drivers/oc_driver/OCDriver.py +++ b/src/device/service/drivers/oc_driver/OCDriver.py @@ -300,7 +300,7 @@ class OCDriver(_Driver): self.__netconf_handler, self.__logger, resources, conditions, target='candidate', commit_per_rule=self.__netconf_handler.commit_per_rule ) - else: + else: results = edit_config( self.__netconf_handler, self.__logger, resources, conditions=conditions ) diff --git a/src/e2e_orchestrator/requirements.in b/src/e2e_orchestrator/requirements.in index 5732b1bf0..7ab2d5ded 100644 --- a/src/e2e_orchestrator/requirements.in +++ b/src/e2e_orchestrator/requirements.in @@ -14,3 +14,4 @@ networkx websockets==12.0 +requests==2.27.* diff --git a/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py b/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py index 4fc0ea3ba..52b5a21f8 100644 --- a/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py +++ b/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py @@ -13,6 +13,7 @@ # limitations under the License. import copy +import requests from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method from common.proto.e2eorchestrator_pb2 import E2EOrchestratorRequest, E2EOrchestratorReply from common.proto.context_pb2 import ( @@ -33,7 +34,7 @@ import networkx as nx from threading import Thread from websockets.sync.client import connect from websockets.sync.server import serve -from common.Constants import DEFAULT_CONTEXT_NAME +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME LOGGER = logging.getLogger(__name__) @@ -98,7 +99,6 @@ class SubscriptionServer(Thread): def _event_received(self, connection): - LOGGER.info("EVENT received!") for message in connection: message_json = json.loads(message) # LOGGER.info("message_json: {}".format(message_json)) @@ -142,7 +142,6 @@ class SubscriptionServer(Thread): connection.send(grpc_message_to_json_string(link)) # Link removal elif 'link_uuid' in message_json: - LOGGER.info('REMOVING VIRTUAL LINK') link_id = LinkId(**message_json) service_id = ServiceId() @@ -153,7 +152,6 @@ class SubscriptionServer(Thread): context_client.RemoveLink(link_id) # Topology received else: - LOGGER.info('TOPOLOGY') topology_details = TopologyDetails(**message_json) context = Context() @@ -181,10 +179,41 @@ class E2EOrchestratorServiceServicerImpl(E2EOrchestratorServiceServicer): sub_server = SubscriptionServer() sub_server.start() LOGGER.debug("Servicer Created") - + self.retrieve_external_topologies() except Exception as ex: LOGGER.info("Exception!: {}".format(ex)) + def retrieve_external_topologies(self): + i = 1 + while True: + try: + LOGGER.info(f'Retrieving external controller #{i}') + ADD = str(get_setting(f'EXT_CONTROLLER{i}_ADD')) + PORT = str(get_setting(f'EXT_CONTROLLER{i}_PORT')) + except Exception as e: + break + try: + url = f'http://{ADD}:{PORT}/tfs-api/context/{DEFAULT_CONTEXT_NAME}/topology_details/{DEFAULT_TOPOLOGY_NAME}' + topo = requests.get(url).json() + except Exception as e: + LOGGER.info(f'Exception retrieven topology from external controler #{i}: {e}') + topology_details = TopologyDetails(**topo) + context = Context() + context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid + context_client.SetContext(context) + + topology = Topology() + topology.topology_id.context_id.CopyFrom(context.context_id) + topology.topology_id.topology_uuid.uuid = topology_details.topology_id.topology_uuid.uuid + context_client.SetTopology(topology) + + for device in topology_details.devices: + context_client.SetDevice(device) + + for link in topology_details.links: + context_client.SetLink(link) + + i+=1 @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) diff --git a/src/nbi/service/context_subscription/__init__.py b/src/nbi/service/context_subscription/__init__.py index d2ae85070..e33728ece 100644 --- a/src/nbi/service/context_subscription/__init__.py +++ b/src/nbi/service/context_subscription/__init__.py @@ -34,14 +34,14 @@ vnt_manager_client: VNTManagerClient = VNTManagerClient() context_client: ContextClient = ContextClient() ALL_HOSTS = "0.0.0.0" -WS_E2E_PORT = int(get_setting('WS_E2E_PORT', default='8762')) +WS_IP_PORT = int(get_setting('WS_IP_PORT', default='8761')) LOGGER = logging.getLogger(__name__) def register_context_subscription(): - with serve(subcript_to_vnt_manager, ALL_HOSTS, WS_E2E_PORT, logger=LOGGER) as server: - LOGGER.info("Running subscription server...: {}:{}".format(ALL_HOSTS, str(WS_E2E_PORT))) + with serve(subcript_to_vnt_manager, ALL_HOSTS, WS_IP_PORT, logger=LOGGER) as server: + LOGGER.info("Running subscription server...: {}:{}".format(ALL_HOSTS, str(WS_IP_PORT))) server.serve_forever() LOGGER.info("Exiting subscription server...") diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py b/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py index 28f94887a..58cf9aa01 100644 --- a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py +++ b/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py @@ -177,6 +177,11 @@ class Topology(_Resource): def delete(self, context_uuid : str, topology_uuid : str): return format_grpc_to_json(self.context_client.RemoveTopology(grpc_topology_id(context_uuid, topology_uuid))) +class TopologyDetails(_Resource): + def get(self, context_uuid : str, topology_uuid : str): + return format_grpc_to_json(self.context_client.GetTopologyDetails(grpc_topology_id( + context_uuid, topology_uuid))) + class ServiceIds(_Resource): def get(self, context_uuid : str): return format_grpc_to_json(self.context_client.ListServiceIds(grpc_context_id(context_uuid))) diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py b/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py index 41e8ff1ea..984e0442a 100644 --- a/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py +++ b/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py @@ -22,7 +22,7 @@ from .Resources import ( PolicyRule, PolicyRuleIds, PolicyRules, Service, ServiceIds, Services, Slice, SliceIds, Slices, - Topologies, Topology, TopologyIds + Topologies, Topology, TopologyIds, TopologyDetails ) URL_PREFIX = '/tfs-api' @@ -30,38 +30,39 @@ URL_PREFIX = '/tfs-api' # Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type. RESOURCES = [ # (endpoint_name, resource_class, resource_url) - ('api.context_ids', ContextIds, '/context_ids'), - ('api.contexts', Contexts, '/contexts'), - ('api.dummy_contexts', DummyContexts, '/dummy_contexts'), - ('api.context', Context, '/context/<path:context_uuid>'), + ('api.context_ids', ContextIds, '/context_ids'), + ('api.contexts', Contexts, '/contexts'), + ('api.dummy_contexts', DummyContexts, '/dummy_contexts'), + ('api.context', Context, '/context/<path:context_uuid>'), - ('api.topology_ids', TopologyIds, '/context/<path:context_uuid>/topology_ids'), - ('api.topologies', Topologies, '/context/<path:context_uuid>/topologies'), - ('api.topology', Topology, '/context/<path:context_uuid>/topology/<path:topology_uuid>'), + ('api.topology_ids', TopologyIds, '/context/<path:context_uuid>/topology_ids'), + ('api.topologies', Topologies, '/context/<path:context_uuid>/topologies'), + ('api.topology', Topology, '/context/<path:context_uuid>/topology/<path:topology_uuid>'), + ('api.topology_details', TopologyDetails, '/context/<path:context_uuid>/topology_details/<path:topology_uuid>'), - ('api.service_ids', ServiceIds, '/context/<path:context_uuid>/service_ids'), - ('api.services', Services, '/context/<path:context_uuid>/services'), - ('api.service', Service, '/context/<path:context_uuid>/service/<path:service_uuid>'), + ('api.service_ids', ServiceIds, '/context/<path:context_uuid>/service_ids'), + ('api.services', Services, '/context/<path:context_uuid>/services'), + ('api.service', Service, '/context/<path:context_uuid>/service/<path:service_uuid>'), - ('api.slice_ids', SliceIds, '/context/<path:context_uuid>/slice_ids'), - ('api.slices', Slices, '/context/<path:context_uuid>/slices'), - ('api.slice', Slice, '/context/<path:context_uuid>/slice/<path:slice_uuid>'), + ('api.slice_ids', SliceIds, '/context/<path:context_uuid>/slice_ids'), + ('api.slices', Slices, '/context/<path:context_uuid>/slices'), + ('api.slice', Slice, '/context/<path:context_uuid>/slice/<path:slice_uuid>'), - ('api.device_ids', DeviceIds, '/device_ids'), - ('api.devices', Devices, '/devices'), - ('api.device', Device, '/device/<path:device_uuid>'), + ('api.device_ids', DeviceIds, '/device_ids'), + ('api.devices', Devices, '/devices'), + ('api.device', Device, '/device/<path:device_uuid>'), - ('api.link_ids', LinkIds, '/link_ids'), - ('api.links', Links, '/links'), - ('api.link', Link, '/link/<path:link_uuid>'), + ('api.link_ids', LinkIds, '/link_ids'), + ('api.links', Links, '/links'), + ('api.link', Link, '/link/<path:link_uuid>'), - ('api.connection_ids', ConnectionIds, '/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids'), - ('api.connections', Connections, '/context/<path:context_uuid>/service/<path:service_uuid>/connections'), - ('api.connection', Connection, '/connection/<path:connection_uuid>'), + ('api.connection_ids', ConnectionIds, '/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids'), + ('api.connections', Connections, '/context/<path:context_uuid>/service/<path:service_uuid>/connections'), + ('api.connection', Connection, '/connection/<path:connection_uuid>'), - ('api.policyrule_ids', PolicyRuleIds, '/policyrule_ids'), - ('api.policyrules', PolicyRules, '/policyrules'), - ('api.policyrule', PolicyRule, '/policyrule/<path:policyrule_uuid>'), + ('api.policyrule_ids', PolicyRuleIds, '/policyrule_ids'), + ('api.policyrules', PolicyRules, '/policyrules'), + ('api.policyrule', PolicyRule, '/policyrule/<path:policyrule_uuid>'), ] def register_tfs_api(rest_server : RestServer): diff --git a/src/tests/ecoc24/.gitlab-ci.yml b/src/tests/ecoc24/.gitlab-ci.yml index af0646a0f..412b25450 100644 --- a/src/tests/ecoc24/.gitlab-ci.yml +++ b/src/tests/ecoc24/.gitlab-ci.yml @@ -56,10 +56,6 @@ end2end_test ecoc24: - microk8s status --wait-ready - kubectl get pods --all-namespaces - # Deploy Optical Device Node Agents - #- > - # 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 # Configure TeraFlowSDN deployment @@ -70,36 +66,45 @@ end2end_test ecoc24: #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/serviceservice.yaml #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/sliceservice.yaml #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/nbiservice.yaml - - source src/tests/${TEST_NAME}/deploy_specs_e2e.sh - # Deploy TeraFlowSDN + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/e2eorchestratorservice.yaml + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/vntmservice.yaml + + + + # Deploy Optical TeraFlowSDN + - source src/tests/${TEST_NAME}/deploy_specs_opt.sh - ./deploy/crdb.sh - ./deploy/nats.sh - ./deploy/qdb.sh - ./deploy/expose_dashboard.sh - ./deploy/tfs.sh - ./deploy/show.sh - - ./src/tests/${TEST_NAME}/subscription_ws_e2e.sh + - cp /var/teraflow/tfs_runtime_env_vars.sh /var/teraflow/tfs_runtime_env_vars_opt.sh - - source src/tests/${TEST_NAME}/deploy_specs_opt.sh - # Deploy TeraFlowSDN + + # Deploy IP TeraFlowSDN + - source src/tests/${TEST_NAME}/deploy_specs_ip.sh - ./deploy/crdb.sh - ./deploy/nats.sh - ./deploy/qdb.sh - ./deploy/expose_dashboard.sh - ./deploy/tfs.sh - ./deploy/show.sh + - ./src/tests/${TEST_NAME}/subscription_ws_ip.sh + - cp /var/teraflow/tfs_runtime_env_vars.sh /var/teraflow/tfs_runtime_env_vars_ip.sh - - source src/tests/${TEST_NAME}/deploy_specs_ip.sh - # Deploy TeraFlowSDN + # Deploy E2E TeraFlowSDN + - source src/tests/${TEST_NAME}/deploy_specs_e2e.sh - ./deploy/crdb.sh - ./deploy/nats.sh - ./deploy/qdb.sh - ./deploy/expose_dashboard.sh - ./deploy/tfs.sh - ./deploy/show.sh - - ./src/tests/${TEST_NAME}/subscription_ws_ip.sh - + - ./src/tests/${TEST_NAME}/subscription_ws_e2e.sh + - cp /var/teraflow/tfs_runtime_env_vars.sh /var/teraflow/tfs_runtime_env_vars_e2e.sh + # Run end-to-end tests diff --git a/src/tests/ecoc24/deploy_e2e.sh b/src/tests/ecoc24/deploy_e2e.sh index da7ef252c..a135835c7 100755 --- a/src/tests/ecoc24/deploy_e2e.sh +++ b/src/tests/ecoc24/deploy_e2e.sh @@ -25,7 +25,12 @@ kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-e2e.yaml # Deploy TFS for E2E source src/tests/ecoc24/deploy_specs_e2e.sh + +# Change the name for the database +cp manifests/contextservice.yaml manifests/contextservice.yaml.bak +sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfse2e_context"/}' manifests/contextservice.yaml ./deploy/all.sh +mv manifests/contextservice.yaml.bak manifests/contextservice.yaml #Configure Subscription WS ./src/tests/ecoc24/subscription_ws_e2e.sh diff --git a/src/tests/ecoc24/deploy_ip.sh b/src/tests/ecoc24/deploy_ip.sh index a6c5e8255..418a270bc 100755 --- a/src/tests/ecoc24/deploy_ip.sh +++ b/src/tests/ecoc24/deploy_ip.sh @@ -25,7 +25,12 @@ kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-ip.yaml # Deploy TFS for IP source src/tests/ecoc24/deploy_specs_ip.sh + +# Change the name for the database +cp manifests/contextservice.yaml manifests/contextservice.yaml.bak +sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfsip_context"/}' manifests/contextservice.yaml ./deploy/all.sh +mv manifests/contextservice.yaml.bak manifests/contextservice.yaml #Configure Subscription WS ./src/tests/ecoc24/subscription_ws_ip.sh diff --git a/src/tests/ecoc24/deploy_opt.sh b/src/tests/ecoc24/deploy_opt.sh index 3a9523768..ab2971fd5 100755 --- a/src/tests/ecoc24/deploy_opt.sh +++ b/src/tests/ecoc24/deploy_opt.sh @@ -25,5 +25,11 @@ kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-opt.yaml # Deploy TFS for OPT source src/tests/ecoc24/deploy_specs_opt.sh + +# Change the name for the database +cp manifests/contextservice.yaml manifests/contextservice.yaml.bak +sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfsopt_context"/}' manifests/contextservice.yaml ./deploy/all.sh +mv manifests/contextservice.yaml.bak manifests/contextservice.yaml + mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_opt.sh diff --git a/src/tests/ecoc24/deploy_specs_e2e.sh b/src/tests/ecoc24/deploy_specs_e2e.sh index a8353db54..3b287ba89 100755 --- a/src/tests/ecoc24/deploy_specs_e2e.sh +++ b/src/tests/ecoc24/deploy_specs_e2e.sh @@ -20,7 +20,7 @@ export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" # Set the list of components, separated by spaces, you want to build images for, and deploy. -export TFS_COMPONENTS="context device pathcomp service nbi" +export TFS_COMPONENTS="context device pathcomp service nbi webui" # Uncomment to activate Monitoring (old) #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" @@ -137,7 +137,7 @@ export CRDB_DATABASE="tfs_e2e" export CRDB_DEPLOY_MODE="single" # Disable flag for dropping database, if it exists. -export CRDB_DROP_DATABASE_IF_EXISTS="YES" +export CRDB_DROP_DATABASE_IF_EXISTS="NO" # Disable flag for re-deploying CockroachDB from scratch. export CRDB_REDEPLOY="" @@ -214,3 +214,4 @@ export KFK_SERVER_PORT="9092" # Set the flag to YES for redeploying of Apache Kafka export KFK_REDEPLOY="" + \ No newline at end of file diff --git a/src/tests/ecoc24/deploy_specs_ip.sh b/src/tests/ecoc24/deploy_specs_ip.sh index 52bd545ce..114289f4d 100755 --- a/src/tests/ecoc24/deploy_specs_ip.sh +++ b/src/tests/ecoc24/deploy_specs_ip.sh @@ -20,7 +20,7 @@ export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" # Set the list of components, separated by spaces, you want to build images for, and deploy. -export TFS_COMPONENTS="context device pathcomp service nbi" +export TFS_COMPONENTS="context device pathcomp service nbi webui" # Uncomment to activate Monitoring (old) #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" @@ -137,7 +137,7 @@ export CRDB_DATABASE="tfs_ip" export CRDB_DEPLOY_MODE="single" # Disable flag for dropping database, if it exists. -export CRDB_DROP_DATABASE_IF_EXISTS="YES" +export CRDB_DROP_DATABASE_IF_EXISTS="NO" # Disable flag for re-deploying CockroachDB from scratch. export CRDB_REDEPLOY="" diff --git a/src/tests/ecoc24/deploy_specs_opt.sh b/src/tests/ecoc24/deploy_specs_opt.sh index 999fba045..4c7997f52 100755 --- a/src/tests/ecoc24/deploy_specs_opt.sh +++ b/src/tests/ecoc24/deploy_specs_opt.sh @@ -20,7 +20,7 @@ export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" # Set the list of components, separated by spaces, you want to build images for, and deploy. -export TFS_COMPONENTS="context device pathcomp service nbi" +export TFS_COMPONENTS="context device pathcomp service nbi webui" # Uncomment to activate Monitoring (old) #export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" @@ -137,7 +137,7 @@ export CRDB_DATABASE="tfs_ip" export CRDB_DEPLOY_MODE="single" # Disable flag for dropping database, if it exists. -export CRDB_DROP_DATABASE_IF_EXISTS="YES" +export CRDB_DROP_DATABASE_IF_EXISTS="NO" # Disable flag for re-deploying CockroachDB from scratch. export CRDB_REDEPLOY="" diff --git a/src/tests/ecoc24/descriptors/link_mapping.json b/src/tests/ecoc24/descriptors/descriptor_e2e.json similarity index 99% rename from src/tests/ecoc24/descriptors/link_mapping.json rename to src/tests/ecoc24/descriptors/descriptor_e2e.json index d2e9f11d7..41649d92e 100644 --- a/src/tests/ecoc24/descriptors/link_mapping.json +++ b/src/tests/ecoc24/descriptors/descriptor_e2e.json @@ -82,4 +82,5 @@ ] } ] - } \ No newline at end of file + } + \ No newline at end of file diff --git a/src/tests/ecoc24/descriptors/descriptor_ip.json b/src/tests/ecoc24/descriptors/descriptor_ip.json index b0909321c..11ad2d5c1 100644 --- a/src/tests/ecoc24/descriptors/descriptor_ip.json +++ b/src/tests/ecoc24/descriptors/descriptor_ip.json @@ -209,4 +209,5 @@ } ], "dummy_mode":true - } \ No newline at end of file + } + \ No newline at end of file diff --git a/src/tests/ecoc24/descriptors/descriptor_opt.json b/src/tests/ecoc24/descriptors/descriptor_opt.json index 320da8692..cfb86b966 100644 --- a/src/tests/ecoc24/descriptors/descriptor_opt.json +++ b/src/tests/ecoc24/descriptors/descriptor_opt.json @@ -799,4 +799,5 @@ ] } ] - } \ No newline at end of file + } + \ No newline at end of file diff --git a/src/tests/ecoc24/tests/test_functional_bootstrap_e2e.py b/src/tests/ecoc24/tests/test_functional_bootstrap_e2e.py new file mode 100644 index 000000000..cd72f5e94 --- /dev/null +++ b/src/tests/ecoc24/tests/test_functional_bootstrap_e2e.py @@ -0,0 +1,67 @@ +# 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 logging, os, time +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty +from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from tests.Fixtures import context_client, device_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', 'descriptor_e2e.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_scenario_bootstrap( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name +) -> None: + validate_empty_scenario(context_client) + + descriptor_loader = DescriptorLoader( + descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_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 + +def test_scenario_devices_enabled( + context_client : ContextClient, # pylint: disable=redefined-outer-name +) -> None: + """ + This test validates that the devices are enabled. + """ + """ DEVICE_OP_STATUS_ENABLED = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED + + num_devices = -1 + num_devices_enabled, num_retry = 0, 0 + while (num_devices != num_devices_enabled) and (num_retry < 10): + time.sleep(1.0) + response = context_client.ListDevices(Empty()) + num_devices = len(response.devices) + num_devices_enabled = 0 + for device in response.devices: + if device.device_operational_status != DEVICE_OP_STATUS_ENABLED: continue + num_devices_enabled += 1 + LOGGER.info('Num Devices enabled: {:d}/{:d}'.format(num_devices_enabled, num_devices)) + num_retry += 1 """ + assert 1 == 1 diff --git a/src/tests/ecoc24/tests/test_functional_bootstrap.py b/src/tests/ecoc24/tests/test_functional_bootstrap_ip.py similarity index 100% rename from src/tests/ecoc24/tests/test_functional_bootstrap.py rename to src/tests/ecoc24/tests/test_functional_bootstrap_ip.py diff --git a/src/tests/ecoc24/tests/test_functional_bootstrap_opt.py b/src/tests/ecoc24/tests/test_functional_bootstrap_opt.py new file mode 100644 index 000000000..2f400c346 --- /dev/null +++ b/src/tests/ecoc24/tests/test_functional_bootstrap_opt.py @@ -0,0 +1,67 @@ +# 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 logging, os, time +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty +from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from tests.Fixtures import context_client, device_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', 'descriptor_opt.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_scenario_bootstrap( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name +) -> None: + validate_empty_scenario(context_client) + + descriptor_loader = DescriptorLoader( + descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_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 + +def test_scenario_devices_enabled( + context_client : ContextClient, # pylint: disable=redefined-outer-name +) -> None: + """ + This test validates that the devices are enabled. + """ + """ DEVICE_OP_STATUS_ENABLED = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED + + num_devices = -1 + num_devices_enabled, num_retry = 0, 0 + while (num_devices != num_devices_enabled) and (num_retry < 10): + time.sleep(1.0) + response = context_client.ListDevices(Empty()) + num_devices = len(response.devices) + num_devices_enabled = 0 + for device in response.devices: + if device.device_operational_status != DEVICE_OP_STATUS_ENABLED: continue + num_devices_enabled += 1 + LOGGER.info('Num Devices enabled: {:d}/{:d}'.format(num_devices_enabled, num_devices)) + num_retry += 1 """ + assert 1 == 1 diff --git a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py index d684e044e..b33705ed5 100644 --- a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py +++ b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py @@ -45,7 +45,7 @@ GET_EVENT_TIMEOUT = 0.5 class VNTMEventDispatcher(threading.Thread): def __init__(self, host, port) -> None: - LOGGER.debug('Creating VTNM connector...') + LOGGER.debug('Creating VNTM connector...') self.host = host self.port = port super().__init__(name='VNTMEventDispatcher', daemon=True) @@ -107,8 +107,8 @@ class VNTMEventDispatcher(threading.Thread): while not self._terminate.is_set(): event = events_collector.get_event(block=True, timeout=GET_EVENT_TIMEOUT) - LOGGER.info('Event type: {}'.format(event)) if event is None: continue + LOGGER.info('Event type: {}'.format(event)) LOGGER.debug('Received event: {}'.format(event)) topology_details = context_client.GetTopologyDetails(TopologyId(**topology_id)) -- GitLab From 63571f203fa590f481b4b8456473b686096d6509 Mon Sep 17 00:00:00 2001 From: mansoca <carlos.manso@cttc.es> Date: Tue, 12 Nov 2024 14:49:52 +0000 Subject: [PATCH 016/213] working version --- src/context/service/database/Link.py | 7 ++-- .../service/database/models/LinkModel.py | 8 ++++- .../service/database/models/enums/LinkType.py | 32 +++++++++++++++++++ .../E2EOrchestratorServiceServicerImpl.py | 22 +++++++------ src/e2e_orchestrator/service/__main__.py | 11 +++---- .../nbi_plugins/tfs_api/Resources.py | 16 ++++++++-- .../service/ServiceServiceServicerImpl.py | 8 ++--- src/tests/ecoc24/Dockerfile | 11 ++++--- src/tests/ecoc24/deploy_e2e.sh | 2 +- src/tests/ecoc24/deploy_ip.sh | 2 +- src/tests/ecoc24/deploy_opt.sh | 2 +- src/tests/ecoc24/deploy_specs_opt.sh | 4 +-- .../service/VNTManagerServiceServicerImpl.py | 20 ++++++------ 13 files changed, 99 insertions(+), 46 deletions(-) create mode 100644 src/context/service/database/models/enums/LinkType.py diff --git a/src/context/service/database/Link.py b/src/context/service/database/Link.py index deef3769c..673947f03 100644 --- a/src/context/service/database/Link.py +++ b/src/context/service/database/Link.py @@ -28,6 +28,7 @@ from .models.TopologyModel import TopologyLinkModel, TopologyModel from .uuids.EndPoint import endpoint_get_uuid from .uuids.Link import link_get_uuid from .Events import notify_event_context, notify_event_link, notify_event_topology +from .models.enums.LinkType import grpc_to_enum__link_type_enum LOGGER = logging.getLogger(__name__) @@ -67,8 +68,8 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link) raw_link_name = request.name link_name = raw_link_uuid if len(raw_link_name) == 0 else raw_link_name link_uuid = link_get_uuid(request.link_id, link_name=link_name, allow_random=True) - - now = datetime.datetime.utcnow() + link_type = grpc_to_enum__link_type_enum(request.link_type) + now = datetime.datetime.now(datetime.timezone.utc) topology_uuids : Set[str] = set() related_topologies : List[Dict] = list() @@ -117,6 +118,7 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link) link_data = [{ 'link_uuid' : link_uuid, 'link_name' : link_name, + 'link_type' : link_type, 'total_capacity_gbps' : total_capacity_gbps, 'used_capacity_gbps' : used_capacity_gbps, 'created_at' : now, @@ -129,6 +131,7 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link) index_elements=[LinkModel.link_uuid], set_=dict( link_name = stmt.excluded.link_name, + link_type = stmt.excluded.link_type, total_capacity_gbps = stmt.excluded.total_capacity_gbps, used_capacity_gbps = stmt.excluded.used_capacity_gbps, updated_at = stmt.excluded.updated_at, diff --git a/src/context/service/database/models/LinkModel.py b/src/context/service/database/models/LinkModel.py index 423e39832..2de279a6e 100644 --- a/src/context/service/database/models/LinkModel.py +++ b/src/context/service/database/models/LinkModel.py @@ -13,17 +13,20 @@ # limitations under the License. import operator -from sqlalchemy import CheckConstraint, Column, DateTime, Float, ForeignKey, Integer, String +from sqlalchemy import CheckConstraint, Column, DateTime, Enum, Float, ForeignKey, Integer, String from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from typing import Dict from ._Base import _Base +from common.proto.context_pb2 import LinkTypeEnum +from .enums.LinkType import ORM_LinkTypeEnum class LinkModel(_Base): __tablename__ = 'link' link_uuid = Column(UUID(as_uuid=False), primary_key=True) link_name = Column(String, nullable=False) + link_type = Column(Enum(ORM_LinkTypeEnum), nullable=False) total_capacity_gbps = Column(Float, nullable=True) used_capacity_gbps = Column(Float, nullable=True) created_at = Column(DateTime, nullable=False) @@ -44,11 +47,14 @@ class LinkModel(_Base): result = { 'link_id' : self.dump_id(), 'name' : self.link_name, + 'link_type' : self.link_type.value, 'link_endpoint_ids': [ link_endpoint.endpoint.dump_id() for link_endpoint in sorted(self.link_endpoints, key=operator.attrgetter('position')) ], } + if self.link_type is None: + self.link_type = LinkTypeEnum.LINKTYPE_UNKNOWN if self.total_capacity_gbps is not None: attributes : Dict = result.setdefault('attributes', dict()) attributes.setdefault('total_capacity_gbps', self.total_capacity_gbps) diff --git a/src/context/service/database/models/enums/LinkType.py b/src/context/service/database/models/enums/LinkType.py new file mode 100644 index 000000000..1ac1a547f --- /dev/null +++ b/src/context/service/database/models/enums/LinkType.py @@ -0,0 +1,32 @@ +# Copyright 2022-2024 ETSI 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 enum, functools +from common.proto.context_pb2 import LinkTypeEnum +from ._GrpcToEnum import grpc_to_enum + +# IMPORTANT: Entries of enum class ORM_DeviceDriverEnum should be named as in +# the proto files removing the prefixes. For example, proto item +# DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG should be included as +# OPENCONFIG. If item name does not match, automatic mapping of +# proto enums to database enums will fail. +class ORM_LinkTypeEnum(enum.Enum): + UNKNOWN = LinkTypeEnum.LINKTYPE_UNKNOWN + COPPER = LinkTypeEnum.LINKTYPE_COPPER + VIRTUAL_COPPER = LinkTypeEnum.LINKTYPE_VIRTUAL_COPPER + OPTICAL = LinkTypeEnum.LINKTYPE_OPTICAL + VIRTUAL_OPTICAL = LinkTypeEnum.LINKTYPE_VIRTUAL_OPTICAL + +grpc_to_enum__link_type_enum = functools.partial( + grpc_to_enum, LinkTypeEnum, ORM_LinkTypeEnum) diff --git a/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py b/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py index ae9bfc7d2..c9681f708 100644 --- a/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py +++ b/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py @@ -80,7 +80,6 @@ class SubscriptionServer(Thread): LOGGER.debug("Received message from WebSocket: {}".format(message)) except Exception as ex: LOGGER.error('Exception receiving from WebSocket: {}'.format(ex)) - self._events_server() @@ -99,12 +98,13 @@ class SubscriptionServer(Thread): def _event_received(self, connection): + LOGGER.debug('Event received') for message in connection: message_json = json.loads(message) - # LOGGER.info("message_json: {}".format(message_json)) # Link creation if 'link_id' in message_json: + LOGGER.debug('Link creation') link = Link(**message_json) service = Service() @@ -114,12 +114,12 @@ class SubscriptionServer(Thread): service.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED service_client.CreateService(service) - links = context_client.ListLinks(Empty()).links a_device_uuid = device_get_uuid(link.link_endpoint_ids[0].device_id) a_endpoint_uuid = endpoint_get_uuid(link.link_endpoint_ids[0])[2] z_device_uuid = device_get_uuid(link.link_endpoint_ids[1].device_id) z_endpoint_uuid = endpoint_get_uuid(link.link_endpoint_ids[1])[2] + links = context_client.ListLinks(Empty()).links for _link in links: for _endpoint_id in _link.link_endpoint_ids: if _endpoint_id.device_id.device_uuid.uuid == a_device_uuid and \ @@ -130,7 +130,9 @@ class SubscriptionServer(Thread): z_ep_id = _endpoint_id if (not 'a_ep_id' in locals()) or (not 'z_ep_id' in locals()): - error_msg = 'Could not get VNT link endpoints' + error_msg = f'Could not get VNT link endpoints\ + \n\ta_endpoint_uuid= {a_endpoint_uuid}\ + \n\tz_endpoint_uuid= {z_device_uuid}' LOGGER.error(error_msg) connection.send(error_msg) return @@ -138,20 +140,22 @@ class SubscriptionServer(Thread): service.service_endpoint_ids.append(copy.deepcopy(a_ep_id)) service.service_endpoint_ids.append(copy.deepcopy(z_ep_id)) - # service_client.UpdateService(service) + service_client.UpdateService(service) + re_svc = context_client.GetService(service.service_id) connection.send(grpc_message_to_json_string(link)) - # Link removal + context_client.SetLink(link) elif 'link_uuid' in message_json: + LOGGER.debug('Link removal') link_id = LinkId(**message_json) service_id = ServiceId() service_id.service_uuid.uuid = link_id.link_uuid.uuid service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME - # service_client.DeleteService(service_id) + service_client.DeleteService(service_id) connection.send(grpc_message_to_json_string(link_id)) context_client.RemoveLink(link_id) - # Topology received else: + LOGGER.debug('Topology received') topology_details = TopologyDetails(**message_json) context = Context() @@ -187,12 +191,12 @@ class E2EOrchestratorServiceServicerImpl(E2EOrchestratorServiceServicer): i = 1 while True: try: - LOGGER.info(f'Retrieving external controller #{i}') ADD = str(get_setting(f'EXT_CONTROLLER{i}_ADD')) PORT = str(get_setting(f'EXT_CONTROLLER{i}_PORT')) except Exception as e: break try: + LOGGER.info(f'Retrieving external controller #{i}') url = f'http://{ADD}:{PORT}/tfs-api/context/{DEFAULT_CONTEXT_NAME}/topology_details/{DEFAULT_TOPOLOGY_NAME}' topo = requests.get(url).json() except Exception as e: diff --git a/src/e2e_orchestrator/service/__main__.py b/src/e2e_orchestrator/service/__main__.py index 0854aed2d..4c0a6d471 100644 --- a/src/e2e_orchestrator/service/__main__.py +++ b/src/e2e_orchestrator/service/__main__.py @@ -28,7 +28,10 @@ from common.Settings import (ENVVAR_SUFIX_SERVICE_HOST, from .E2EOrchestratorService import E2EOrchestratorService terminate = threading.Event() -LOGGER = None + +LOG_LEVEL = get_log_level() +logging.basicConfig(level=LOG_LEVEL, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") +LOGGER = logging.getLogger(__name__) def signal_handler(signal, frame): # pylint: disable=redefined-outer-name @@ -37,12 +40,6 @@ def signal_handler(signal, frame): # pylint: disable=redefined-outer-name def main(): - global LOGGER # pylint: disable=global-statement - - log_level = get_log_level() - logging.basicConfig(level=log_level) - LOGGER = logging.getLogger(__name__) - signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py b/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py index 484ccff66..0b99fba50 100644 --- a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py +++ b/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py @@ -300,21 +300,31 @@ class Links(_Resource): ] class Link(_Resource): + @staticmethod + def _virtual_link(link): + virtual_types = {LinkTypeEnum.LINKTYPE_VIRTUAL_COPPER, LinkTypeEnum.LINKTYPE_VIRTUAL_OPTICAL} + if link.link_type in virtual_types: + return True + return False + + def get(self, link_uuid : str): return format_grpc_to_json(self.context_client.GetLink(grpc_link_id(link_uuid))) def put(self, link_uuid : str): link_json = request.get_json() link = grpc_link(link_json) - virtual_types = {LinkTypeEnum.LINKTYPE_VIRTUAL_COPPER, LinkTypeEnum.LINKTYPE_VIRTUAL_OPTICAL} if link_uuid != link.link_id.link_uuid.uuid: raise BadRequest('Mismatching link_uuid') - elif link.link_type in virtual_types: + elif self._virtual_link(link): link = grpc_link(link_json) return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(link)) - return format_grpc_to_json(self.context_client.SetLink(grpc_link(link))) + return format_grpc_to_json(self.context_client.SetLink(link)) def delete(self, link_uuid : str): + link = self.context_client.GetLink(grpc_link_id(link_uuid)) + if self._virtual_link(link): + format_grpc_to_json(self.vntmanager_client.RemoveVirtualLink(grpc_link_id(link_uuid))) return format_grpc_to_json(self.context_client.RemoveLink(grpc_link_id(link_uuid))) class ConnectionIds(_Resource): diff --git a/src/service/service/ServiceServiceServicerImpl.py b/src/service/service/ServiceServiceServicerImpl.py index 9120d475b..b6f8a7faf 100644 --- a/src/service/service/ServiceServiceServicerImpl.py +++ b/src/service/service/ServiceServiceServicerImpl.py @@ -384,10 +384,10 @@ class ServiceServiceServicerImpl(ServiceServiceServicer): if "bandwidth" in constraint.custom.constraint_type: bitrate = int(float(constraint.custom.constraint_value)) break - - bitrate = int(float( - service.service_constraints[0].custom.constraint_value - )) + if service.service_constraints: + bitrate = int(float( + service.service_constraints[0].custom.constraint_value + )) if len(service.service_config.config_rules) > 0: c_rules_dict = json.loads( service.service_config.config_rules[0].custom.resource_value) diff --git a/src/tests/ecoc24/Dockerfile b/src/tests/ecoc24/Dockerfile index 727abbd3a..f9a616e76 100644 --- a/src/tests/ecoc24/Dockerfile +++ b/src/tests/ecoc24/Dockerfile @@ -82,19 +82,22 @@ COPY src/tests/*.py ./tests/ COPY src/tests/ecoc24/__init__.py ./tests/ecoc24/__init__.py COPY src/tests/ecoc24/descriptors/descriptor_ip.json ./tests/ecoc24/descriptors/descriptor_ip.json COPY src/tests/ecoc24/descriptors/descriptor_opt.json ./tests/ecoc24/descriptors/descriptor_opt.json -COPY src/tests/ecoc24/descriptors/link_mapping.json ./tests/ecoc24/descriptors/link_mapping.json +COPY src/tests/ecoc24/descriptors/link_mapping.json ./tests/ecoc24/descriptors/descriptor_e2e.json COPY src/tests/ecoc24/tests/. ./tests/ecoc24/tests/ RUN tee ./run_tests.sh <<EOF #!/bin/bash -source /var/teraflow/tfs_runtime_env_vars.sh +source /var/teraflow/tfs_runtime_env_vars_e2e.sh export PYTHONPATH=/var/teraflow -pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap.py --junitxml=/opt/results/report_bootstrap.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_opt.py --junitxml=/opt/results/report_bootstrap.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_ip.py --junitxml=/opt/results/report_bootstrap.xml +sleep 5 +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_e2e.py --junitxml=/opt/results/report_bootstrap.xml #pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_unidir.py --junitxml=/opt/results/report_create_service_unidir.xml #pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_unidir.py --junitxml=/opt/results/report_delete_service_unidir.xml #pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_bidir.py --junitxml=/opt/results/report_create_service_bidir.xml #pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_bidir.py --junitxml=/opt/results/report_delete_service_bidir.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml EOF RUN chmod ug+x ./run_tests.sh diff --git a/src/tests/ecoc24/deploy_e2e.sh b/src/tests/ecoc24/deploy_e2e.sh index 12369f757..cbfcfdc21 100755 --- a/src/tests/ecoc24/deploy_e2e.sh +++ b/src/tests/ecoc24/deploy_e2e.sh @@ -28,7 +28,7 @@ source src/tests/ecoc24/deploy_specs_e2e.sh # Change the name for the database cp manifests/contextservice.yaml manifests/contextservice.yaml.bak -sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfse2e_context"/}' manifests/contextservice.yaml +sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_e2e_context"/}' manifests/contextservice.yaml ./deploy/all.sh mv manifests/contextservice.yaml.bak manifests/contextservice.yaml diff --git a/src/tests/ecoc24/deploy_ip.sh b/src/tests/ecoc24/deploy_ip.sh index 46b99ad27..694b24698 100755 --- a/src/tests/ecoc24/deploy_ip.sh +++ b/src/tests/ecoc24/deploy_ip.sh @@ -28,7 +28,7 @@ source src/tests/ecoc24/deploy_specs_ip.sh # Change the name for the database cp manifests/contextservice.yaml manifests/contextservice.yaml.bak -sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfsip_context"/}' manifests/contextservice.yaml +sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_ip_context"/}' manifests/contextservice.yaml ./deploy/all.sh mv manifests/contextservice.yaml.bak manifests/contextservice.yaml diff --git a/src/tests/ecoc24/deploy_opt.sh b/src/tests/ecoc24/deploy_opt.sh index 0dec83bb3..c85b6e08b 100755 --- a/src/tests/ecoc24/deploy_opt.sh +++ b/src/tests/ecoc24/deploy_opt.sh @@ -28,7 +28,7 @@ source src/tests/ecoc24/deploy_specs_opt.sh # Change the name for the database cp manifests/contextservice.yaml manifests/contextservice.yaml.bak -sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfsopt_context"/}' manifests/contextservice.yaml +sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_opt_context"/}' manifests/contextservice.yaml ./deploy/all.sh mv manifests/contextservice.yaml.bak manifests/contextservice.yaml diff --git a/src/tests/ecoc24/deploy_specs_opt.sh b/src/tests/ecoc24/deploy_specs_opt.sh index d7a6093a3..0622e2581 100755 --- a/src/tests/ecoc24/deploy_specs_opt.sh +++ b/src/tests/ecoc24/deploy_specs_opt.sh @@ -130,14 +130,14 @@ export CRDB_USERNAME="tfs" export CRDB_PASSWORD="tfs123" # Set the database name to be used by Context. -export CRDB_DATABASE="tfs_ip" +export CRDB_DATABASE="tfs_opt" # Set CockroachDB installation mode to 'single'. This option is convenient for development and testing. # See ./deploy/all.sh or ./deploy/crdb.sh for additional details export CRDB_DEPLOY_MODE="single" # Disable flag for dropping database, if it exists. -export CRDB_DROP_DATABASE_IF_EXISTS="NO" +export CRDB_DROP_DATABASE_IF_EXISTS="YES" # Disable flag for re-deploying CockroachDB from scratch. export CRDB_REDEPLOY="" diff --git a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py index e18dc286d..79ff1b752 100644 --- a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py +++ b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py @@ -71,14 +71,12 @@ class VNTMEventDispatcher(threading.Thread): return message def run(self) -> None: - - time.sleep(5) events_collector = EventsCollector( context_client, log_events_received=True, - activate_context_collector = False, + activate_context_collector = True, activate_topology_collector = True, - activate_device_collector = False, - activate_link_collector = False, + activate_device_collector = True, + activate_link_collector = True, activate_service_collector = False, activate_slice_collector = False, activate_connection_collector = False,) @@ -92,7 +90,7 @@ class VNTMEventDispatcher(threading.Thread): LOGGER.info("Connecting to events server...: {}".format(url)) self.websocket = connect(url) except Exception as ex: - LOGGER.error('Error connecting to {}'.format(url)) + LOGGER.error(f'Error connecting to {url}\n\t{ex}') else: LOGGER.info('Connected to {}'.format(url)) context_id = json_context_id(DEFAULT_CONTEXT_NAME) @@ -108,12 +106,9 @@ class VNTMEventDispatcher(threading.Thread): while not self._terminate.is_set(): event = events_collector.get_event(block=True, timeout=GET_EVENT_TIMEOUT) if event is None: continue - LOGGER.info('Event type: {}'.format(event)) - LOGGER.debug('Received event: {}'.format(event)) + LOGGER.debug('Event type: {}'.format(event)) topology_details = context_client.GetTopologyDetails(TopologyId(**topology_id)) - to_send = grpc_message_to_json_string(topology_details) - self.send_msg(to_send) LOGGER.info('Exiting') @@ -135,6 +130,8 @@ class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): self.event_dispatcher = VNTMEventDispatcher(request.host, int(request.port)) self.host = request.host self.port = request.port + LOGGER.info('sleeping 5...') + time.sleep(5) self.event_dispatcher.start() return reply @@ -158,12 +155,13 @@ class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): link = Link(**message_json) context_client.SetLink(link) except Exception as e: - LOGGER.error('Exception setting virtual link={}\n\t{}'.format(request.link_id.link_uuid.uuid, e)) + LOGGER.error(f'Exception setting virtual link={request.link_id.link_uuid.uuid}\n\t{e}') return request.link_id @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def RemoveVirtualLink(self, request : LinkId, context : grpc.ServicerContext) -> Empty: try: + LOGGER.debug('Removing virtual link') self.event_dispatcher.send_msg(grpc_message_to_json_string(request)) # deconfigure('CSGW1', 'xe5', 'CSGW2', 'xe5', 'ecoc2024-1') response = self.event_dispatcher.recv_msg() -- GitLab From 7235b7e7e6ab592b012b0365de6260c7271556df Mon Sep 17 00:00:00 2001 From: mansoca <carlos.manso@cttc.es> Date: Tue, 12 Nov 2024 15:13:33 +0000 Subject: [PATCH 017/213] check cicd --- src/tests/ecoc24/Dockerfile | 14 ++-- src/tests/ecoc24/tests/create_service.py | 27 +++++++ src/tests/ecoc24/tests/delete_service.py | 10 +++ .../ecoc24/tests/test_functional_cleanup.py | 44 ++++++++++ .../tests/test_functional_create_service.py | 74 +++++++++++++++++ .../tests/test_functional_delete_service.py | 80 +++++++++++++++++++ 6 files changed, 241 insertions(+), 8 deletions(-) create mode 100644 src/tests/ecoc24/tests/create_service.py create mode 100644 src/tests/ecoc24/tests/delete_service.py create mode 100644 src/tests/ecoc24/tests/test_functional_cleanup.py create mode 100644 src/tests/ecoc24/tests/test_functional_create_service.py create mode 100644 src/tests/ecoc24/tests/test_functional_delete_service.py diff --git a/src/tests/ecoc24/Dockerfile b/src/tests/ecoc24/Dockerfile index f9a616e76..52558e338 100644 --- a/src/tests/ecoc24/Dockerfile +++ b/src/tests/ecoc24/Dockerfile @@ -87,16 +87,14 @@ COPY src/tests/ecoc24/tests/. ./tests/ecoc24/tests/ RUN tee ./run_tests.sh <<EOF #!/bin/bash -source /var/teraflow/tfs_runtime_env_vars_e2e.sh +# source /var/teraflow/tfs_runtime_env_vars_e2e.sh export PYTHONPATH=/var/teraflow -pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_opt.py --junitxml=/opt/results/report_bootstrap.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_ip.py --junitxml=/opt/results/report_bootstrap.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_opt.py --junitxml=/opt/results/report_bootstrap_opt.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_ip.py --junitxml=/opt/results/report_bootstrap_ip.xml sleep 5 -pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_e2e.py --junitxml=/opt/results/report_bootstrap.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_unidir.py --junitxml=/opt/results/report_create_service_unidir.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_unidir.py --junitxml=/opt/results/report_delete_service_unidir.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_bidir.py --junitxml=/opt/results/report_create_service_bidir.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_bidir.py --junitxml=/opt/results/report_delete_service_bidir.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_e2e.py --junitxml=/opt/results/report_bootstrap_e2e.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service.py --junitxml=/opt/results/report_create_service.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service.py --junitxml=/opt/results/report_delete_service.xml pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml EOF RUN chmod ug+x ./run_tests.sh diff --git a/src/tests/ecoc24/tests/create_service.py b/src/tests/ecoc24/tests/create_service.py new file mode 100644 index 000000000..bc24bccd8 --- /dev/null +++ b/src/tests/ecoc24/tests/create_service.py @@ -0,0 +1,27 @@ +import requests + +url = "http://localhost:8002/tfs-api/link/CSGW1_xe5-CSGW2_xe5" + +payload = { + "link_id": {"link_uuid": {"uuid": "CSGW1_xe5-CSGW2_xe5"}}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "CSGW1"}}, + "endpoint_uuid": {"uuid": "PORT-xe5"} + }, + { + "device_id": {"device_uuid": {"uuid": "CSGW2"}}, + "endpoint_uuid": {"uuid": "PORT-xe5"} + } + ], + "link_type": "LINKTYPE_VIRTUAL_COPPER", + "attributes": {"total_capacity_gbps": 1} +} +headers = { + "cookie": "session%3Aaa82129ced5debbb=eyJjc3JmX3Rva2VuIjoiZGI1ZjY5Yjg0MDgxMjk3YmU3ZTY2MDMxZTljYzdiYTZmMWVjZjc0NCJ9.ZijdlQ.xdcOryRyoRgXCJ2XYwczsHw4yIQ; session%3A53cf1bf28136ee51=eyJjc3JmX3Rva2VuIjoiMDFlNWQwNzUyNDM3MDU1NWZhZjE3MGFiYzg4NGY2YmE3Y2M5MjM4OCJ9.ZikGzQ.KkIdiPPvqaO2pyBi7-mnlTKnmWs; session%3Ae52730446648c30a=eyJjc3JmX3Rva2VuIjoiODI4NTUwOTc4MWMxYzVjNmQ2ZDBiNGViMmU4ZDJmMzYzMzUxY2M2OSJ9.ZyOPuA.LWyhgLGjWOCb1H6wKlsG0evCV-A", + "Content-Type": "application/json" +} + +response = requests.request("PUT", url, json=payload, headers=headers) + +print(response.text) \ No newline at end of file diff --git a/src/tests/ecoc24/tests/delete_service.py b/src/tests/ecoc24/tests/delete_service.py new file mode 100644 index 000000000..0281fb2b3 --- /dev/null +++ b/src/tests/ecoc24/tests/delete_service.py @@ -0,0 +1,10 @@ +import requests + +url = "http://localhost:8002/tfs-api/link/CSGW1_xe5-CSGW2_xe5" + +payload = "" +headers = {"cookie": "session%3Aaa82129ced5debbb=eyJjc3JmX3Rva2VuIjoiZGI1ZjY5Yjg0MDgxMjk3YmU3ZTY2MDMxZTljYzdiYTZmMWVjZjc0NCJ9.ZijdlQ.xdcOryRyoRgXCJ2XYwczsHw4yIQ; session%3A53cf1bf28136ee51=eyJjc3JmX3Rva2VuIjoiMDFlNWQwNzUyNDM3MDU1NWZhZjE3MGFiYzg4NGY2YmE3Y2M5MjM4OCJ9.ZikGzQ.KkIdiPPvqaO2pyBi7-mnlTKnmWs; session%3Ae52730446648c30a=eyJjc3JmX3Rva2VuIjoiODI4NTUwOTc4MWMxYzVjNmQ2ZDBiNGViMmU4ZDJmMzYzMzUxY2M2OSJ9.ZyOPuA.LWyhgLGjWOCb1H6wKlsG0evCV-A"} + +response = requests.request("DELETE", url, data=payload, headers=headers) + +print(response.text) \ No newline at end of file diff --git a/src/tests/ecoc24/tests/test_functional_cleanup.py b/src/tests/ecoc24/tests/test_functional_cleanup.py new file mode 100644 index 000000000..a482c6e46 --- /dev/null +++ b/src/tests/ecoc24/tests/test_functional_cleanup.py @@ -0,0 +1,44 @@ +# Copyright 2022-2024 ETSI 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 logging, os +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from tests.Fixtures import context_client, device_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', 'topology.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_scenario_cleanup( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name +) -> None: + # 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, device_client=device_client) + descriptor_loader.validate() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/tests/ecoc24/tests/test_functional_create_service.py b/src/tests/ecoc24/tests/test_functional_create_service.py new file mode 100644 index 000000000..d4f21978c --- /dev/null +++ b/src/tests/ecoc24/tests/test_functional_create_service.py @@ -0,0 +1,74 @@ +# Copyright 2022-2024 ETSI 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 logging, os +from common.Constants import DEFAULT_CONTEXT_NAME +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 +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 + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'virtual_link.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_service_creation_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 + # ) + # results = descriptor_loader.process() + # check_descriptor_load_results(results, descriptor_loader) + + import create_service + + # Verify the scenario has 1 service and 0 slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.service_ids) == 1 + assert len(response.slice_ids) == 0 + + # 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) == 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) == 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_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/ecoc24/tests/test_functional_delete_service.py b/src/tests/ecoc24/tests/test_functional_delete_service.py new file mode 100644 index 000000000..475c58e61 --- /dev/null +++ b/src/tests/ecoc24/tests/test_functional_delete_service.py @@ -0,0 +1,80 @@ +# Copyright 2022-2024 ETSI 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 logging +from typing import Set, Tuple +from common.Constants import DEFAULT_CONTEXT_NAME +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 service.client.ServiceClient import ServiceClient +from tests.Fixtures import context_client, service_client # pylint: disable=unused-import + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_service_removal_bidir( + context_client : ContextClient, # pylint: disable=redefined-outer-name + service_client : ServiceClient, # pylint: disable=redefined-outer-name +): + # Verify the scenario has 1 service and 0 slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.service_ids) == 1 + assert len(response.slice_ids) == 0 + + # 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) == 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) == 1 + + 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_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(context_service_uuids) == 1 + context_uuid, service_uuid = set(context_service_uuids).pop() + + # Delete Service + # service_client.DeleteService(ServiceId(**json_service_id(service_uuid, json_context_id(context_uuid)))) + + import delete_service + + # 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 74fe9c3508426ea074e1f5d9abc65a350e0b32a8 Mon Sep 17 00:00:00 2001 From: mansoca <carlos.manso@cttc.es> Date: Tue, 12 Nov 2024 15:13:33 +0000 Subject: [PATCH 018/213] check cicd --- src/tests/ecoc24/Dockerfile | 16 ++-- src/tests/ecoc24/tests/create_service.py | 27 +++++++ src/tests/ecoc24/tests/delete_service.py | 10 +++ .../ecoc24/tests/test_functional_cleanup.py | 44 ++++++++++ .../tests/test_functional_create_service.py | 74 +++++++++++++++++ .../tests/test_functional_delete_service.py | 80 +++++++++++++++++++ 6 files changed, 242 insertions(+), 9 deletions(-) create mode 100644 src/tests/ecoc24/tests/create_service.py create mode 100644 src/tests/ecoc24/tests/delete_service.py create mode 100644 src/tests/ecoc24/tests/test_functional_cleanup.py create mode 100644 src/tests/ecoc24/tests/test_functional_create_service.py create mode 100644 src/tests/ecoc24/tests/test_functional_delete_service.py diff --git a/src/tests/ecoc24/Dockerfile b/src/tests/ecoc24/Dockerfile index f9a616e76..822e2a0c0 100644 --- a/src/tests/ecoc24/Dockerfile +++ b/src/tests/ecoc24/Dockerfile @@ -82,21 +82,19 @@ COPY src/tests/*.py ./tests/ COPY src/tests/ecoc24/__init__.py ./tests/ecoc24/__init__.py COPY src/tests/ecoc24/descriptors/descriptor_ip.json ./tests/ecoc24/descriptors/descriptor_ip.json COPY src/tests/ecoc24/descriptors/descriptor_opt.json ./tests/ecoc24/descriptors/descriptor_opt.json -COPY src/tests/ecoc24/descriptors/link_mapping.json ./tests/ecoc24/descriptors/descriptor_e2e.json +COPY src/tests/ecoc24/descriptors/descriptor_e2e.json ./tests/ecoc24/descriptors/descriptor_e2e.json COPY src/tests/ecoc24/tests/. ./tests/ecoc24/tests/ RUN tee ./run_tests.sh <<EOF #!/bin/bash -source /var/teraflow/tfs_runtime_env_vars_e2e.sh +# source /var/teraflow/tfs_runtime_env_vars_e2e.sh export PYTHONPATH=/var/teraflow -pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_opt.py --junitxml=/opt/results/report_bootstrap.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_ip.py --junitxml=/opt/results/report_bootstrap.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_opt.py --junitxml=/opt/results/report_bootstrap_opt.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_ip.py --junitxml=/opt/results/report_bootstrap_ip.xml sleep 5 -pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_e2e.py --junitxml=/opt/results/report_bootstrap.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_unidir.py --junitxml=/opt/results/report_create_service_unidir.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_unidir.py --junitxml=/opt/results/report_delete_service_unidir.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service_bidir.py --junitxml=/opt/results/report_create_service_bidir.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service_bidir.py --junitxml=/opt/results/report_delete_service_bidir.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_e2e.py --junitxml=/opt/results/report_bootstrap_e2e.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service.py --junitxml=/opt/results/report_create_service.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service.py --junitxml=/opt/results/report_delete_service.xml pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml EOF RUN chmod ug+x ./run_tests.sh diff --git a/src/tests/ecoc24/tests/create_service.py b/src/tests/ecoc24/tests/create_service.py new file mode 100644 index 000000000..bc24bccd8 --- /dev/null +++ b/src/tests/ecoc24/tests/create_service.py @@ -0,0 +1,27 @@ +import requests + +url = "http://localhost:8002/tfs-api/link/CSGW1_xe5-CSGW2_xe5" + +payload = { + "link_id": {"link_uuid": {"uuid": "CSGW1_xe5-CSGW2_xe5"}}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "CSGW1"}}, + "endpoint_uuid": {"uuid": "PORT-xe5"} + }, + { + "device_id": {"device_uuid": {"uuid": "CSGW2"}}, + "endpoint_uuid": {"uuid": "PORT-xe5"} + } + ], + "link_type": "LINKTYPE_VIRTUAL_COPPER", + "attributes": {"total_capacity_gbps": 1} +} +headers = { + "cookie": "session%3Aaa82129ced5debbb=eyJjc3JmX3Rva2VuIjoiZGI1ZjY5Yjg0MDgxMjk3YmU3ZTY2MDMxZTljYzdiYTZmMWVjZjc0NCJ9.ZijdlQ.xdcOryRyoRgXCJ2XYwczsHw4yIQ; session%3A53cf1bf28136ee51=eyJjc3JmX3Rva2VuIjoiMDFlNWQwNzUyNDM3MDU1NWZhZjE3MGFiYzg4NGY2YmE3Y2M5MjM4OCJ9.ZikGzQ.KkIdiPPvqaO2pyBi7-mnlTKnmWs; session%3Ae52730446648c30a=eyJjc3JmX3Rva2VuIjoiODI4NTUwOTc4MWMxYzVjNmQ2ZDBiNGViMmU4ZDJmMzYzMzUxY2M2OSJ9.ZyOPuA.LWyhgLGjWOCb1H6wKlsG0evCV-A", + "Content-Type": "application/json" +} + +response = requests.request("PUT", url, json=payload, headers=headers) + +print(response.text) \ No newline at end of file diff --git a/src/tests/ecoc24/tests/delete_service.py b/src/tests/ecoc24/tests/delete_service.py new file mode 100644 index 000000000..0281fb2b3 --- /dev/null +++ b/src/tests/ecoc24/tests/delete_service.py @@ -0,0 +1,10 @@ +import requests + +url = "http://localhost:8002/tfs-api/link/CSGW1_xe5-CSGW2_xe5" + +payload = "" +headers = {"cookie": "session%3Aaa82129ced5debbb=eyJjc3JmX3Rva2VuIjoiZGI1ZjY5Yjg0MDgxMjk3YmU3ZTY2MDMxZTljYzdiYTZmMWVjZjc0NCJ9.ZijdlQ.xdcOryRyoRgXCJ2XYwczsHw4yIQ; session%3A53cf1bf28136ee51=eyJjc3JmX3Rva2VuIjoiMDFlNWQwNzUyNDM3MDU1NWZhZjE3MGFiYzg4NGY2YmE3Y2M5MjM4OCJ9.ZikGzQ.KkIdiPPvqaO2pyBi7-mnlTKnmWs; session%3Ae52730446648c30a=eyJjc3JmX3Rva2VuIjoiODI4NTUwOTc4MWMxYzVjNmQ2ZDBiNGViMmU4ZDJmMzYzMzUxY2M2OSJ9.ZyOPuA.LWyhgLGjWOCb1H6wKlsG0evCV-A"} + +response = requests.request("DELETE", url, data=payload, headers=headers) + +print(response.text) \ No newline at end of file diff --git a/src/tests/ecoc24/tests/test_functional_cleanup.py b/src/tests/ecoc24/tests/test_functional_cleanup.py new file mode 100644 index 000000000..a482c6e46 --- /dev/null +++ b/src/tests/ecoc24/tests/test_functional_cleanup.py @@ -0,0 +1,44 @@ +# Copyright 2022-2024 ETSI 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 logging, os +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from tests.Fixtures import context_client, device_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', 'topology.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_scenario_cleanup( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name +) -> None: + # 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, device_client=device_client) + descriptor_loader.validate() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/tests/ecoc24/tests/test_functional_create_service.py b/src/tests/ecoc24/tests/test_functional_create_service.py new file mode 100644 index 000000000..d4f21978c --- /dev/null +++ b/src/tests/ecoc24/tests/test_functional_create_service.py @@ -0,0 +1,74 @@ +# Copyright 2022-2024 ETSI 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 logging, os +from common.Constants import DEFAULT_CONTEXT_NAME +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 +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 + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'virtual_link.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_service_creation_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 + # ) + # results = descriptor_loader.process() + # check_descriptor_load_results(results, descriptor_loader) + + import create_service + + # Verify the scenario has 1 service and 0 slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.service_ids) == 1 + assert len(response.slice_ids) == 0 + + # 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) == 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) == 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_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/ecoc24/tests/test_functional_delete_service.py b/src/tests/ecoc24/tests/test_functional_delete_service.py new file mode 100644 index 000000000..475c58e61 --- /dev/null +++ b/src/tests/ecoc24/tests/test_functional_delete_service.py @@ -0,0 +1,80 @@ +# Copyright 2022-2024 ETSI 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 logging +from typing import Set, Tuple +from common.Constants import DEFAULT_CONTEXT_NAME +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 service.client.ServiceClient import ServiceClient +from tests.Fixtures import context_client, service_client # pylint: disable=unused-import + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_service_removal_bidir( + context_client : ContextClient, # pylint: disable=redefined-outer-name + service_client : ServiceClient, # pylint: disable=redefined-outer-name +): + # Verify the scenario has 1 service and 0 slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.service_ids) == 1 + assert len(response.slice_ids) == 0 + + # 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) == 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) == 1 + + 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_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(context_service_uuids) == 1 + context_uuid, service_uuid = set(context_service_uuids).pop() + + # Delete Service + # service_client.DeleteService(ServiceId(**json_service_id(service_uuid, json_context_id(context_uuid)))) + + import delete_service + + # 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 c8b24867b30f8e2632a9f597f70e4d46f6c7dbbf Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Wed, 27 Nov 2024 16:21:42 +0100 Subject: [PATCH 019/213] First draft --- proto/ztp_server.proto | 23 + src/common/Constants.py | 2 + src/ztp_server/.gitlab-ci.yml | 120 + src/ztp_server/Config.py | 20 + src/ztp_server/Dockerfile | 97 + src/ztp_server/README.md | 35 + src/ztp_server/__init__.py | 14 + src/ztp_server/client/ZtpClient.py | 61 + src/ztp_server/client/__init__.py | 14 + src/ztp_server/data/nso_client.proto | 60 + .../data/provisioning_script_sonic.sh | 38 + src/ztp_server/data/ztp.json | 11 + src/ztp_server/requirements.in | 28 + src/ztp_server/service/ZtpServerService.py | 28 + .../service/ZtpServerServiceServicerImpl.py | 40 + src/ztp_server/service/__init__.py | 14 + src/ztp_server/service/__main__.py | 78 + .../service/context_subscription/__init__.py | 64 + .../service/rest_server/RestServer.py | 23 + .../service/rest_server/__init__.py | 14 + .../rest_server/ztpServer_plugins/__init__.py | 14 + .../ztpServer_plugins/tfs_api/Resources.py | 47 + .../ztpServer_plugins/tfs_api/Tools.py | 41 + .../ztpServer_plugins/tfs_api/__init__.py | 30 + .../ztpServer_plugins/tools/Authentication.py | 25 + .../tools/HttpStatusCodes.py | 20 + .../ztpServer_plugins/tools/Validator.py | 35 + .../ztpServer_plugins/tools/__init__.py | 14 + src/ztp_server/tests/Constants.py | 85 + .../tests/MockService_Dependencies.py | 58 + src/ztp_server/tests/PrepareTestScenario.py | 169 + src/ztp_server/tests/__init__.py | 14 + src/ztp_server/tests/data/ietf_acl.json | 56 + .../tests/data/ietf_l3vpn_req_svc1.json | 231 ++ .../tests/data/ietf_l3vpn_req_svc2.json | 231 ++ .../tests/data/test-ietf-network.json | 1962 +++++++++++ src/ztp_server/tests/data/tfs_api_dummy.json | 442 +++ .../data/topology-7router-emu-dummy.json | 157 + .../tests/data/topology-7router-emu.json | 156 + src/ztp_server/tests/data/topology-dummy.json | 3134 +++++++++++++++++ src/ztp_server/tests/data/topology-real.json | 259 ++ src/ztp_server/tests/ietf_acl_client.py | 89 + src/ztp_server/tests/test_etsi_bwm.py | 240 ++ src/ztp_server/tests/test_ietf_l2vpn.py | 75 + src/ztp_server/tests/test_ietf_l3vpn.py | 113 + src/ztp_server/tests/test_ietf_network.py | 105 + src/ztp_server/tests/test_slice.py | 125 + src/ztp_server/tests/test_tfs_api.py | 217 ++ src/ztp_server/tests/test_yang_acl.py | 104 + 49 files changed, 9032 insertions(+) create mode 100755 proto/ztp_server.proto create mode 100755 src/ztp_server/.gitlab-ci.yml create mode 100755 src/ztp_server/Config.py create mode 100755 src/ztp_server/Dockerfile create mode 100755 src/ztp_server/README.md create mode 100755 src/ztp_server/__init__.py create mode 100755 src/ztp_server/client/ZtpClient.py create mode 100755 src/ztp_server/client/__init__.py create mode 100644 src/ztp_server/data/nso_client.proto create mode 100644 src/ztp_server/data/provisioning_script_sonic.sh create mode 100644 src/ztp_server/data/ztp.json create mode 100755 src/ztp_server/requirements.in create mode 100755 src/ztp_server/service/ZtpServerService.py create mode 100755 src/ztp_server/service/ZtpServerServiceServicerImpl.py create mode 100755 src/ztp_server/service/__init__.py create mode 100755 src/ztp_server/service/__main__.py create mode 100755 src/ztp_server/service/context_subscription/__init__.py create mode 100755 src/ztp_server/service/rest_server/RestServer.py create mode 100755 src/ztp_server/service/rest_server/__init__.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/__init__.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tools/Authentication.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tools/__init__.py create mode 100755 src/ztp_server/tests/Constants.py create mode 100755 src/ztp_server/tests/MockService_Dependencies.py create mode 100755 src/ztp_server/tests/PrepareTestScenario.py create mode 100755 src/ztp_server/tests/__init__.py create mode 100755 src/ztp_server/tests/data/ietf_acl.json create mode 100755 src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json create mode 100755 src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json create mode 100755 src/ztp_server/tests/data/test-ietf-network.json create mode 100755 src/ztp_server/tests/data/tfs_api_dummy.json create mode 100755 src/ztp_server/tests/data/topology-7router-emu-dummy.json create mode 100755 src/ztp_server/tests/data/topology-7router-emu.json create mode 100755 src/ztp_server/tests/data/topology-dummy.json create mode 100755 src/ztp_server/tests/data/topology-real.json create mode 100755 src/ztp_server/tests/ietf_acl_client.py create mode 100755 src/ztp_server/tests/test_etsi_bwm.py create mode 100755 src/ztp_server/tests/test_ietf_l2vpn.py create mode 100755 src/ztp_server/tests/test_ietf_l3vpn.py create mode 100755 src/ztp_server/tests/test_ietf_network.py create mode 100755 src/ztp_server/tests/test_slice.py create mode 100755 src/ztp_server/tests/test_tfs_api.py create mode 100755 src/ztp_server/tests/test_yang_acl.py diff --git a/proto/ztp_server.proto b/proto/ztp_server.proto new file mode 100755 index 000000000..37ccc71d3 --- /dev/null +++ b/proto/ztp_server.proto @@ -0,0 +1,23 @@ +// Copyright 2022-2024 ETSI 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. + +syntax = "proto3"; +package ztpServer; + +import "context.proto"; + +service ZtpServerService { + rpc GetProvisioningScript (context.ProvisioningScriptName ) returns (context.ProvisioningScript ) {} + rpc GetZtpProvisioning (context.ZtpFileName ) returns (context.ZtpFile ) {} +} diff --git a/src/common/Constants.py b/src/common/Constants.py index 682007646..660e99f04 100644 --- a/src/common/Constants.py +++ b/src/common/Constants.py @@ -42,6 +42,7 @@ class ServiceNameEnum(Enum): SERVICE = 'service' SLICE = 'slice' ZTP = 'ztp' + ZTP_SERVER = 'ztp_server' POLICY = 'policy' MONITORING = 'monitoring' DLT = 'dlt' @@ -84,6 +85,7 @@ DEFAULT_SERVICE_GRPC_PORTS = { ServiceNameEnum.SERVICE .value : 3030, ServiceNameEnum.SLICE .value : 4040, ServiceNameEnum.ZTP .value : 5050, + ServiceNameEnum.ZTP_SERVER .value : 5051, ServiceNameEnum.POLICY .value : 6060, ServiceNameEnum.MONITORING .value : 7070, ServiceNameEnum.DLT .value : 8080, diff --git a/src/ztp_server/.gitlab-ci.yml b/src/ztp_server/.gitlab-ci.yml new file mode 100755 index 000000000..71bf223ba --- /dev/null +++ b/src/ztp_server/.gitlab-ci.yml @@ -0,0 +1,120 @@ +# Copyright 2022-2024 ETSI 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. + +# Build, tag, and push the Docker image to the GitLab Docker registry +build nbi: + variables: + IMAGE_NAME: 'nbi' # name of the microservice + IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) + stage: build + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + after_script: + - docker images --filter="dangling=true" --quiet | xargs -r docker rmi + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - changes: + - src/common/**/*.py + - proto/*.proto + - src/$IMAGE_NAME/**/*.{py,in,yml} + - src/$IMAGE_NAME/Dockerfile + - src/$IMAGE_NAME/tests/*.py + - manifests/${IMAGE_NAME}service.yaml + - .gitlab-ci.yml + +# Apply unit test to the component +unit_test nbi: + variables: + IMAGE_NAME: 'nbi' # name of the microservice + IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) + stage: unit_test + needs: + - build nbi + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - > + if docker network list | grep teraflowbridge; then + echo "teraflowbridge is already created"; + else + docker network create -d bridge teraflowbridge; + fi + - > + if docker container ls | grep $IMAGE_NAME; then + docker rm -f $IMAGE_NAME; + else + echo "$IMAGE_NAME image is not in the system"; + fi + script: + - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + - docker run --name $IMAGE_NAME -d -p 9090:9090 -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG + - sleep 5 + - docker ps -a + - docker logs $IMAGE_NAME + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" + coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' + after_script: + - docker rm -f $IMAGE_NAME + - docker network rm teraflowbridge + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - changes: + - src/common/**/*.py + - proto/*.proto + - src/$IMAGE_NAME/**/*.{py,in,yml} + - src/$IMAGE_NAME/Dockerfile + - src/$IMAGE_NAME/tests/*.py + - src/$IMAGE_NAME/tests/Dockerfile + - manifests/${IMAGE_NAME}service.yaml + - .gitlab-ci.yml + artifacts: + when: always + reports: + junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report_*.xml + +## Deployment of the service in Kubernetes Cluster +#deploy nbi: +# variables: +# IMAGE_NAME: 'nbi' # name of the microservice +# IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) +# stage: deploy +# needs: +# - unit test nbi +# # - integ_test execute +# script: +# - 'sed -i "s/$IMAGE_NAME:.*/$IMAGE_NAME:$IMAGE_TAG/" manifests/${IMAGE_NAME}service.yaml' +# - kubectl version +# - kubectl get all +# - kubectl apply -f "manifests/${IMAGE_NAME}service.yaml" +# - kubectl get all +# # environment: +# # name: test +# # url: https://example.com +# # kubernetes: +# # namespace: test +# rules: +# - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' +# when: manual +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' +# when: manual diff --git a/src/ztp_server/Config.py b/src/ztp_server/Config.py new file mode 100755 index 000000000..83a350058 --- /dev/null +++ b/src/ztp_server/Config.py @@ -0,0 +1,20 @@ +# Copyright 2022-2024 ETSI 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. + +from werkzeug.security import generate_password_hash + +# REST-API users +RESTAPI_USERS = { # TODO: implement a database of credentials and permissions + 'admin': generate_password_hash('admin'), +} diff --git a/src/ztp_server/Dockerfile b/src/ztp_server/Dockerfile new file mode 100755 index 000000000..a9be06d37 --- /dev/null +++ b/src/ztp_server/Dockerfile @@ -0,0 +1,97 @@ +# Copyright 2022-2024 ETSI 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. + +FROM python:3.9-slim + +# Install dependencies +RUN apt-get --yes --quiet --quiet update && \ + apt-get --yes --quiet --quiet install wget g++ git build-essential cmake libpcre2-dev python3-dev python3-cffi && \ + rm -rf /var/lib/apt/lists/* + +# Download, build and install libyang. Note that APT package is outdated +# - Ref: https://github.com/CESNET/libyang +# - Ref: https://github.com/CESNET/libyang-python/ +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" .. +RUN make +RUN make install +RUN ldconfig + +# Set Python to show logs as they occur +ENV PYTHONUNBUFFERED=0 + +# Download the gRPC health probe +RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ + wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ + chmod +x /bin/grpc_health_probe + +# Get generic Python packages +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools + +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components +WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt + +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; + +# Create component sub-folders, get specific Python packages +RUN mkdir -p /var/teraflow/nbi +WORKDIR /var/teraflow/nbi +COPY src/nbi/requirements.in requirements.in +RUN pip-compile --quiet --output-file=requirements.txt requirements.in +RUN python3 -m pip install -r requirements.txt + +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/nbi/. nbi/ +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/service/__init__.py service/__init__.py +COPY src/service/client/. service/client/ +COPY src/slice/__init__.py slice/__init__.py +COPY src/slice/client/. slice/client/ +COPY src/qkd_app/__init__.py qkd_app/__init__.py +COPY src/qkd_app/client/. qkd_app/client/ +COPY src/vnt_manager/__init__.py vnt_manager/__init__.py +COPY src/vnt_manager/client/. vnt_manager/client/ +RUN mkdir -p /var/teraflow/tests/tools +COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ + +# Start the service +ENTRYPOINT ["python", "-m", "nbi.service"] diff --git a/src/ztp_server/README.md b/src/ztp_server/README.md new file mode 100755 index 000000000..32902a0b3 --- /dev/null +++ b/src/ztp_server/README.md @@ -0,0 +1,35 @@ +# NBI Component + +The NBI component uses libyang to validate and process messages. Follow instructions below to install it. + +## Install libyang +- Ref: https://github.com/CESNET/libyang +- Ref: https://github.com/CESNET/libyang-python/ + +__NOTE__: APT package is extremely outdated and does not work for our purposes. + +### Build Requisites +```bash +sudo apt-get install build-essential cmake libpcre2-dev +sudo apt-get install python3-dev gcc python3-cffi +``` + +### Build from source +```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" .. +make +sudo make install +sudo ldconfig +``` + +### Install Python bindings +```bash +pip install libyang==2.8.0 +``` diff --git a/src/ztp_server/__init__.py b/src/ztp_server/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/client/ZtpClient.py b/src/ztp_server/client/ZtpClient.py new file mode 100755 index 000000000..a790b76e2 --- /dev/null +++ b/src/ztp_server/client/ZtpClient.py @@ -0,0 +1,61 @@ +# Copyright 2022-2024 ETSI 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 grpc, logging +from common.Constants import ServiceNameEnum +from common.Settings import get_service_host, get_service_port_grpc +from common.proto.ztpServer_pb2_grpc import ztpServerServiceStub #TODO +from common.proto.context_pb2 import ( + ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) +from common.tools.client.RetryDecorator import retry, delay_exponential +from common.tools.grpc.Tools import grpc_message_to_json_string + +LOGGER = logging.getLogger(__name__) +MAX_RETRIES = 15 +DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0) +RETRY_DECORATOR = retry(max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, prepare_method_name='connect') + +class ZtpClient: + def __init__(self, host=None, port=None): + if not host: host = get_service_host(ServiceNameEnum.ZTP_SERVER) + if not port: port = get_service_port_grpc(ServiceNameEnum.ZTP_SERVER) + self.endpoint = '{:s}:{:s}'.format(str(host), str(port)) + LOGGER.debug('Creating channel to {:s}...'.format(str(self.endpoint))) + self.channel = None + self.stub = None + self.connect() + LOGGER.debug('Channel created') + + def connect(self): + self.channel = grpc.insecure_channel(self.endpoint) + self.stub = ztpServerServiceStub(self.channel) #TODO + + def close(self): + if self.channel is not None: self.channel.close() + self.channel = None + self.stub = None + + @RETRY_DECORATOR + def GetProvisioningScript(self, request : ProvisioningScriptName) -> ProvisioningScript: + LOGGER.debug('GetProvisioningScript request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.GetProvisioningScript(request) + LOGGER.debug('GetProvisioningScript result: {:s}'.format(grpc_message_to_json_string(response))) + return response + + @RETRY_DECORATOR + def GetZtpProvisioning(self, request : ZtpFileName) -> ZtpFile: + LOGGER.debug('GetZtpProvisioning request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.GetZtpProvisioning(request) + LOGGER.debug('GetZtpProvisioning result: {:s}'.format(grpc_message_to_json_string(response))) + return response diff --git a/src/ztp_server/client/__init__.py b/src/ztp_server/client/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/client/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/data/nso_client.proto b/src/ztp_server/data/nso_client.proto new file mode 100644 index 000000000..d5983c62c --- /dev/null +++ b/src/ztp_server/data/nso_client.proto @@ -0,0 +1,60 @@ +// 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. + +syntax = "proto3"; +package nos_client; + +message NOS_SW { + string ztp_device_sw_url = 1; + bytes ztp_device_sw_file = 2; +} + +// For ONIE Requests +message NOS_SW_REQ { + string serial_number = 1; + string eth_addr = 2; + string vendor_id = 3; + string machine = 4; + string machine_rev = 5; + string arch = 6; + string security_key = 7; + string operation = 8; +} + +message Config_Script { + string config_script_url = 1; + bytes config_script_file = 2; +} + +message Config_Script_REQ { + string agent = 1; + string machine = 2; + string serial_number = 3; + string eth_addr = 4; + string version = 5; +} + +message Status_Notification { + string status = 1; + string serial_number = 2; + string eth_addr = 3; +} + +message Empty{} + +service nos_client { + rpc GetNOSFile (NOS_SW_REQ) returns (NOS_SW) {} + rpc GetConfigScriptFile (Config_Script_REQ) returns (Config_Script) {} + rpc NotifyStatus (Status_Notification) returns (Empty) {} +} diff --git a/src/ztp_server/data/provisioning_script_sonic.sh b/src/ztp_server/data/provisioning_script_sonic.sh new file mode 100644 index 000000000..c4dd20438 --- /dev/null +++ b/src/ztp_server/data/provisioning_script_sonic.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +PRODUCT_NAME=$(show version | grep 'Platform' | awk '{print $2}') +SERIAL_NUMBER=$(show version | grep 'Serial Number' | awk '{print $3}') +BASE_MAC_ADDRESS=$(show platform syseeprom | grep 'Base MAC Address' | awk '{print $6}') +SONIC_VERSION=$(show version | grep 'SONiC Software Version' | awk '{print $4}') + +# URL of the config_db.json file +CONFIG_DB_URL="http://10.1.1.119:9001/config/config_db.json" + +# Directory where the file will be saved +DEST_DIR="/etc/sonic" +DEST_FILE="$DEST_DIR/config_db.json" + +# Download the config_db.json file +curl -o $DEST_FILE -H "User-Agent: SONiC-ZTP/0.1" \ + -H "PRODUCT-NAME: $PRODUCT_NAME" \ + -H "SERIAL-NUMBER: $SERIAL_NUMBER" \ + -H "BASE-MAC-ADDRESS: $BASE_MAC_ADDRESS" \ + -H "SONiC-VERSION: $SONIC_VERSION" \ + $CONFIG_DB_URL +if [ $? -ne 0 ]; then + logger "Error: Failed to download the file from $CONFIG_DB_URL" + exit 1 +fi + +# Reload the configuration database +sudo config reload -y + +# Check if the reload was successful +if [ $? -eq 0 ]; then + logger "The configuration database reloaded successfully." +else + logger "Error: Failed to reload the configuration database." + exit 1 +fi + +logger "Plugin executed successfully." diff --git a/src/ztp_server/data/ztp.json b/src/ztp_server/data/ztp.json new file mode 100644 index 000000000..6e606a5e8 --- /dev/null +++ b/src/ztp_server/data/ztp.json @@ -0,0 +1,11 @@ +{ + "ztp": { + "01-provisioning-script": { + "plugin": { + "url": "http://localhost:9001/provisioning/provisioning_script_sonic.sh" + }, + "reboot-on-success": true + } + } + } + \ No newline at end of file diff --git a/src/ztp_server/requirements.in b/src/ztp_server/requirements.in new file mode 100755 index 000000000..0d7804836 --- /dev/null +++ b/src/ztp_server/requirements.in @@ -0,0 +1,28 @@ +# Copyright 2022-2024 ETSI 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. + +deepdiff==6.7.* +deepmerge==1.1.* +Flask==2.1.3 +Flask-HTTPAuth==4.5.0 +Flask-RESTful==0.3.9 +jsonschema==4.4.0 +libyang==2.8.0 +netaddr==0.9.0 +pyang==2.6.0 +git+https://github.com/robshakir/pyangbind.git +pydantic==2.6.3 +requests==2.27.1 +werkzeug==2.3.7 +websockets==12.0 diff --git a/src/ztp_server/service/ZtpServerService.py b/src/ztp_server/service/ZtpServerService.py new file mode 100755 index 000000000..2b4da4f93 --- /dev/null +++ b/src/ztp_server/service/ZtpServerService.py @@ -0,0 +1,28 @@ +# Copyright 2022-2024 ETSI 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. + +from common.Constants import ServiceNameEnum +from common.Settings import get_service_port_grpc +from common.proto.ztpServer_pb2_grpc import add_Ztp_ServerServiceServicer_to_server +from common.tools.service.GenericGrpcService import GenericGrpcService +from ztp_server.service.ZtpServerServiceServicerImpl import ZtpServerServiceServicerImpl + +class ZtpServerService(GenericGrpcService): + def __init__(self, cls_name: str = __name__) -> None: + port = get_service_port_grpc(ServiceNameEnum.ZTP_SERVER) + super().__init__(port, cls_name=cls_name) + self.ztp_servicer = ZtpServerServiceServicerImpl() + + def install_servicers(self): + add_Ztp_ServerServiceServicer_to_server(self.ztp_servicer, self.server) diff --git a/src/ztp_server/service/ZtpServerServiceServicerImpl.py b/src/ztp_server/service/ZtpServerServiceServicerImpl.py new file mode 100755 index 000000000..009cda922 --- /dev/null +++ b/src/ztp_server/service/ZtpServerServiceServicerImpl.py @@ -0,0 +1,40 @@ +# Copyright 2022-2024 ETSI 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 grpc, logging +from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method +from common.proto.context_pb2 import ( + ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) +from common.proto.ztpServer_pb2_grpc import ztpServerServiceServicer + +LOGGER = logging.getLogger(__name__) + +METRICS_POOL = MetricsPool('ZTP_SERVER', 'RPC') + +class ZtpServerServiceServicerImpl(ztpServerServiceServicer): + def __init__(self): + LOGGER.info('Creating Servicer...') + LOGGER.info('Servicer Created') + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def GetZtpProvisioning(self, request : ProvisioningScriptName, context : grpc.ServicerContext) -> ProvisioningScript: + LOGGER.warning('NOT IMPLEMENTED') + return ProvisioningScript() + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def GetZtpProvisioning(self, request : ZtpFileName, context : grpc.ServicerContext) -> ZtpFile: + LOGGER.warning('NOT IMPLEMENTED') + return ZtpFile() + + diff --git a/src/ztp_server/service/__init__.py b/src/ztp_server/service/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/service/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/service/__main__.py b/src/ztp_server/service/__main__.py new file mode 100755 index 000000000..25e8605d3 --- /dev/null +++ b/src/ztp_server/service/__main__.py @@ -0,0 +1,78 @@ +# Copyright 2022-2024 ETSI 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 logging, signal, sys, threading +from prometheus_client import start_http_server +from common.Constants import ServiceNameEnum +from common.Settings import ( + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, + get_env_var_name, get_log_level, get_metrics_port, +) +from .ZtpServerService import ZtpServerService +from .rest_server.RestServer import RestServer + +from .context_subscription import register_context_subscription + +terminate = threading.Event() +LOGGER = None + +def signal_handler(signal, frame): # pylint: disable=redefined-outer-name, unused-argument + LOGGER.warning('Terminate signal received') + terminate.set() + +def main(): + global LOGGER # pylint: disable=global-statement + + log_level = get_log_level() + logging.basicConfig(level=log_level) + LOGGER = logging.getLogger(__name__) + + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + + LOGGER.info('Starting...') + + # Start metrics server + metrics_port = get_metrics_port() + start_http_server(metrics_port) + + # Starting ZtpServer service + grpc_service = ZtpServerService() + grpc_service.start() + + rest_server = RestServer() + register_tfs_api(rest_server) + rest_server.start() + + LOGGER.debug('Configured Resources:') + for resource in rest_server.api.resources: + LOGGER.debug(' - {:s}'.format(str(resource))) + + LOGGER.debug('Configured Rules:') + for rule in rest_server.app.url_map.iter_rules(): + LOGGER.debug(' - {:s}'.format(str(rule))) + + # Wait for Ctrl+C or termination signal + while not terminate.wait(timeout=1.0): pass + + LOGGER.info('Terminating...') + grpc_service.stop() + rest_server.shutdown() + rest_server.join() + + LOGGER.info('Bye') + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/ztp_server/service/context_subscription/__init__.py b/src/ztp_server/service/context_subscription/__init__.py new file mode 100755 index 000000000..758f3d82c --- /dev/null +++ b/src/ztp_server/service/context_subscription/__init__.py @@ -0,0 +1,64 @@ +# Copyright 2022-2024 ETSI 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 logging + +from websockets.sync.server import serve +from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest +from common.Settings import get_setting +from context.client.ContextClient import ContextClient +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.tools.object_factory.Topology import json_topology_id +from common.tools.object_factory.Context import json_context_id +from common.proto.context_pb2 import ContextId, TopologyId +import json +import os +from vnt_manager.client.VNTManagerClient import VNTManagerClient + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) +ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) + +vnt_manager_client: VNTManagerClient = VNTManagerClient() +context_client: ContextClient = ContextClient() + +ALL_HOSTS = "0.0.0.0" +WS_E2E_PORT = int(get_setting('WS_E2E_PORT', default='8762')) + +LOGGER = logging.getLogger(__name__) + + +def register_context_subscription(): + with serve(subcript_to_vnt_manager, ALL_HOSTS, WS_E2E_PORT, logger=LOGGER) as server: + LOGGER.info("Running subscription server...: {}:{}".format(ALL_HOSTS, str(WS_E2E_PORT))) + server.serve_forever() + LOGGER.info("Exiting subscription server...") + + +def subcript_to_vnt_manager(websocket): + for message in websocket: + LOGGER.debug("Message received: {}".format(message)) + message_json = json.loads(message) + request = VNTSubscriptionRequest() + request.host = message_json['host'] + request.port = message_json['port'] + LOGGER.debug("Received gRPC from ws: {}".format(request)) + + try: + vntm_reply = vnt_manager_client.VNTSubscript(request) + LOGGER.debug("Received gRPC from vntm: {}".format(vntm_reply)) + except Exception as e: + LOGGER.error('Could not subscript to VTNManager: {}'.format(e)) + + websocket.send(vntm_reply.subscription) diff --git a/src/ztp_server/service/rest_server/RestServer.py b/src/ztp_server/service/rest_server/RestServer.py new file mode 100755 index 000000000..0c4e45a8c --- /dev/null +++ b/src/ztp_server/service/rest_server/RestServer.py @@ -0,0 +1,23 @@ +# Copyright 2022-2024 ETSI 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. + +from common.Constants import ServiceNameEnum +from common.Settings import get_service_baseurl_http, get_service_port_http +from common.tools.service.GenericRestServer import GenericRestServer + +class RestServer(GenericRestServer): + def __init__(self, cls_name: str = __name__) -> None: + bind_port = get_service_port_http(ServiceNameEnum.ZTP_SERVER) + base_url = get_service_baseurl_http(ServiceNameEnum.ZTP_SERVER) + super().__init__(bind_port, base_url, cls_name=cls_name) diff --git a/src/ztp_server/service/rest_server/__init__.py b/src/ztp_server/service/rest_server/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/service/rest_server/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/__init__.py b/src/ztp_server/service/rest_server/ztpServer_plugins/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py new file mode 100755 index 000000000..c1b8c3733 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py @@ -0,0 +1,47 @@ +# Copyright 2022-2024 ETSI 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 +import logging +from flask.json import jsonify +from flask_restful import Resource, request +from werkzeug.exceptions import BadRequest +from common.proto.context_pb2 import Empty, LinkTypeEnum +from common.tools.grpc.Tools import grpc_message_to_json +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient +from slice.client.SliceClient import SliceClient +from vnt_manager.client.VNTManagerClient import VNTManagerClient + +from .Tools import ( + format_grpc_to_json, returnConfigFile +) + +LOGGER = logging.getLogger(__name__) + + +class _Resource(Resource): + def __init__(self) -> None: + super().__init__() + self.context_client = ContextClient() + self.device_client = DeviceClient() + self.service_client = ServiceClient() + self.vntmanager_client = VNTManagerClient() + self.slice_client = SliceClient() + + +class config(_Resource): + def get(self, config_db : str): + return returnConfigFile(config_db) #TODO define how to return configFile.json diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py new file mode 100755 index 000000000..6665dd4ce --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py @@ -0,0 +1,41 @@ +# Copyright 2022-2024 ETSI 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. + +from typing import Dict +from flask.json import jsonify +from common.proto.context_pb2 import ( + ConnectionId, returnConfigFile +) +from common.proto.policy_pb2 import PolicyRule, PolicyRuleId +from common.tools.grpc.Tools import grpc_message_to_json +from common.tools.object_factory.Connection import json_connection_id +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.Link import json_link_id +from common.tools.object_factory.PolicyRule import json_policyrule_id +from common.tools.object_factory.Service import json_service_id +from common.tools.object_factory.Slice import json_slice_id +from common.tools.object_factory.Topology import json_topology_id + + +def format_grpc_to_json(grpc_reply): + return jsonify(grpc_message_to_json(grpc_reply)) + +def returnConfigFile(config_db): + path = config_db + + with open(path, 'r', encoding='utf-8') as configFile: + content = configFile.read() + + return content \ No newline at end of file diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py new file mode 100755 index 000000000..7062772b4 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py @@ -0,0 +1,30 @@ +# Copyright 2022-2024 ETSI 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. + +from ztp_server.service.rest_server.RestServer import RestServer +from .Resources import ( + config +) + +URL_PREFIX = '/provisioning' + +# Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type. +RESOURCES = [ + # (endpoint_name, resource_class, resource_url) + ('api.config', config, '/config/<path:config_db>'), +] + +def register_tfs_api(rest_server : RestServer): + for endpoint_name, resource_class, resource_url in RESOURCES: + rest_server.add_resource(resource_class, URL_PREFIX + resource_url, endpoint=endpoint_name) diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Authentication.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Authentication.py new file mode 100755 index 000000000..aab239f36 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Authentication.py @@ -0,0 +1,25 @@ +# Copyright 2022-2024 ETSI 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. + +from flask_httpauth import HTTPBasicAuth +from werkzeug.security import check_password_hash +from ztp_server.Config import RESTAPI_USERS + +HTTP_AUTH = HTTPBasicAuth() + +@HTTP_AUTH.verify_password +def verify_password(username, password): + if username not in RESTAPI_USERS: return None + if not check_password_hash(RESTAPI_USERS[username], password): return None + return username diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py new file mode 100755 index 000000000..56ea475c7 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py @@ -0,0 +1,20 @@ +# Copyright 2022-2024 ETSI 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. + +HTTP_OK = 200 +HTTP_CREATED = 201 +HTTP_NOCONTENT = 204 +HTTP_BADREQUEST = 400 +HTTP_SERVERERROR = 500 +HTTP_GATEWAYTIMEOUT = 504 \ No newline at end of file diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py new file mode 100755 index 000000000..66b607c8b --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py @@ -0,0 +1,35 @@ +# Copyright 2022-2024 ETSI 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. + +from typing import List +from flask.json import jsonify +from jsonschema import _utils +from jsonschema.validators import validator_for +from jsonschema.protocols import Validator +from jsonschema.exceptions import ValidationError +from werkzeug.exceptions import BadRequest +from .HttpStatusCodes import HTTP_BADREQUEST + +def validate_message(schema, message): + validator_class = validator_for(schema) + validator : Validator = validator_class(schema) + errors : List[ValidationError] = sorted(validator.iter_errors(message), key=str) + if len(errors) == 0: return + response = jsonify([ + {'message': str(error.message), 'schema': str(error.schema), 'validator': str(error.validator), + 'where': str(_utils.format_as_index(container='message', indices=error.relative_path))} + for error in errors + ]) + response.status_code = HTTP_BADREQUEST + raise BadRequest(response=response) diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/__init__.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/tests/Constants.py b/src/ztp_server/tests/Constants.py new file mode 100755 index 000000000..886ddcafa --- /dev/null +++ b/src/ztp_server/tests/Constants.py @@ -0,0 +1,85 @@ +# Copyright 2022-2024 ETSI 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. + +USERNAME = 'admin' +PASSWORD = 'admin' + +# Ref: https://osm.etsi.org/wikipub/index.php/WIM +WIM_MAPPING = [ + { + 'device-id' : 'dev-1', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-1', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R1-EMU:13/1/2'}, + 'site-id': '1', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, + { + 'device-id' : 'dev-2', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-2', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R2-EMU:13/1/2'}, + 'site-id': '2', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, + { + 'device-id' : 'dev-3', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-3', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R3-EMU:13/1/2'}, + 'site-id': '3', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, + { + 'device-id' : 'dev-4', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-4', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R4-EMU:13/1/2'}, + 'site-id': '4', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, +] + +SERVICE_TYPE = 'ELINE' + +SERVICE_CONNECTION_POINTS_1 = [ + {'service_endpoint_id': 'ep-1', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, + {'service_endpoint_id': 'ep-2', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, +] + +SERVICE_CONNECTION_POINTS_2 = [ + {'service_endpoint_id': 'ep-3', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, +] \ No newline at end of file diff --git a/src/ztp_server/tests/MockService_Dependencies.py b/src/ztp_server/tests/MockService_Dependencies.py new file mode 100755 index 000000000..322441367 --- /dev/null +++ b/src/ztp_server/tests/MockService_Dependencies.py @@ -0,0 +1,58 @@ +# Copyright 2022-2024 ETSI 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 os +from typing import Union +from common.Constants import ServiceNameEnum +from common.Settings import ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name +from common.proto.context_pb2_grpc import add_ContextServiceServicer_to_server +from common.proto.service_pb2_grpc import add_ServiceServiceServicer_to_server +from common.proto.slice_pb2_grpc import add_SliceServiceServicer_to_server +from common.tests.MockServicerImpl_Context import MockServicerImpl_Context +from common.tests.MockServicerImpl_Service import MockServicerImpl_Service +from common.tests.MockServicerImpl_Slice import MockServicerImpl_Slice +from common.tools.service.GenericGrpcService import GenericGrpcService + +LOCAL_HOST = '127.0.0.1' + +SERVICE_CONTEXT = ServiceNameEnum.CONTEXT +SERVICE_SERVICE = ServiceNameEnum.SERVICE +SERVICE_SLICE = ServiceNameEnum.SLICE + +class MockService_Dependencies(GenericGrpcService): + # Mock Service implementing Context, Service and Slice to simplify unitary tests of NBI + + def __init__(self, bind_port: Union[str, int]) -> None: + super().__init__(bind_port, LOCAL_HOST, enable_health_servicer=False, cls_name='MockService') + + # pylint: disable=attribute-defined-outside-init + def install_servicers(self): + self.context_servicer = MockServicerImpl_Context() + add_ContextServiceServicer_to_server(self.context_servicer, self.server) + + self.service_servicer = MockServicerImpl_Service() + add_ServiceServiceServicer_to_server(self.service_servicer, self.server) + + self.slice_servicer = MockServicerImpl_Slice() + add_SliceServiceServicer_to_server(self.slice_servicer, self.server) + + def configure_env_vars(self): + os.environ[get_env_var_name(SERVICE_CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) + os.environ[get_env_var_name(SERVICE_CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) + + os.environ[get_env_var_name(SERVICE_SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) + os.environ[get_env_var_name(SERVICE_SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) + + os.environ[get_env_var_name(SERVICE_SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) + os.environ[get_env_var_name(SERVICE_SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) diff --git a/src/ztp_server/tests/PrepareTestScenario.py b/src/ztp_server/tests/PrepareTestScenario.py new file mode 100755 index 000000000..a574f086b --- /dev/null +++ b/src/ztp_server/tests/PrepareTestScenario.py @@ -0,0 +1,169 @@ +# Copyright 2022-2024 ETSI 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 enum, logging, os, pytest, requests, time +from typing import Any, Dict, List, Optional, Set, Union +from common.Constants import ServiceNameEnum +from common.Settings import ( + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_HTTP, + get_env_var_name, get_service_baseurl_http, get_service_port_http +) +from context.client.ContextClient import ContextClient +from nbi.service.rest_server.RestServer import RestServer +from nbi.service.rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api +from nbi.service.rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn +from nbi.service.rest_server.nbi_plugins.ietf_l3vpn import register_ietf_l3vpn +from nbi.service.rest_server.nbi_plugins.ietf_network import register_ietf_network +from nbi.service.rest_server.nbi_plugins.tfs_api import register_tfs_api +from nbi.tests.MockService_Dependencies import MockService_Dependencies +from service.client.ServiceClient import ServiceClient +from slice.client.SliceClient import SliceClient +from tests.tools.mock_osm.MockOSM import MockOSM +from .Constants import USERNAME, PASSWORD, WIM_MAPPING + +LOCAL_HOST = '127.0.0.1' +MOCKSERVICE_PORT = 10000 +NBI_SERVICE_PORT = MOCKSERVICE_PORT + get_service_port_http(ServiceNameEnum.NBI) # avoid privileged ports +os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) + +@pytest.fixture(scope='session') +def mock_service(): + _service = MockService_Dependencies(MOCKSERVICE_PORT) + _service.configure_env_vars() + _service.start() + yield _service + _service.stop() + +@pytest.fixture(scope='session') +def nbi_service_rest(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument + _rest_server = RestServer() + register_etsi_bwm_api(_rest_server) + register_ietf_l2vpn(_rest_server) + register_ietf_l3vpn(_rest_server) + register_ietf_network(_rest_server) + register_tfs_api(_rest_server) + _rest_server.start() + time.sleep(1) # bring time for the server to start + yield _rest_server + _rest_server.shutdown() + _rest_server.join() + +@pytest.fixture(scope='session') +def osm_wim(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + wim_url = 'http://{:s}:{:d}'.format(LOCAL_HOST, NBI_SERVICE_PORT) + return MockOSM(wim_url, WIM_MAPPING, USERNAME, PASSWORD) + +@pytest.fixture(scope='session') +def context_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument + _client = ContextClient() + yield _client + _client.close() + +@pytest.fixture(scope='session') +def service_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument + _client = ServiceClient() + yield _client + _client.close() + +@pytest.fixture(scope='session') +def slice_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument + _client = SliceClient() + yield _client + _client.close() + +class RestRequestMethod(enum.Enum): + GET = 'get' + POST = 'post' + PUT = 'put' + PATCH = 'patch' + DELETE = 'delete' + +EXPECTED_STATUS_CODES : Set[int] = { + requests.codes['OK' ], + requests.codes['CREATED' ], + requests.codes['ACCEPTED' ], + requests.codes['NO_CONTENT'], +} + +def do_rest_request( + method : RestRequestMethod, url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + base_url = get_service_baseurl_http(ServiceNameEnum.NBI) or '' + request_url = 'http://{:s}:{:s}@{:s}:{:d}{:s}{:s}'.format( + USERNAME, PASSWORD, LOCAL_HOST, NBI_SERVICE_PORT, str(base_url), url + ) + if logger is not None: + msg = 'Request: {:s} {:s}'.format(str(method.value).upper(), str(request_url)) + if body is not None: msg += ' body={:s}'.format(str(body)) + logger.warning(msg) + reply = requests.request(method.value, request_url, timeout=timeout, json=body, allow_redirects=allow_redirects) + if logger is not None: + logger.warning('Reply: {:s}'.format(str(reply.text))) + assert reply.status_code in expected_status_codes, 'Reply failed with status code {:d}'.format(reply.status_code) + + if reply.content and len(reply.content) > 0: return reply.json() + return None + +def do_rest_get_request( + url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + return do_rest_request( + RestRequestMethod.GET, url, body=body, timeout=timeout, allow_redirects=allow_redirects, + expected_status_codes=expected_status_codes, logger=logger + ) + +def do_rest_post_request( + url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + return do_rest_request( + RestRequestMethod.POST, url, body=body, timeout=timeout, allow_redirects=allow_redirects, + expected_status_codes=expected_status_codes, logger=logger + ) + +def do_rest_put_request( + url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + return do_rest_request( + RestRequestMethod.PUT, url, body=body, timeout=timeout, allow_redirects=allow_redirects, + expected_status_codes=expected_status_codes, logger=logger + ) + +def do_rest_patch_request( + url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + return do_rest_request( + RestRequestMethod.PATCH, url, body=body, timeout=timeout, allow_redirects=allow_redirects, + expected_status_codes=expected_status_codes, logger=logger + ) + +def do_rest_delete_request( + url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + return do_rest_request( + RestRequestMethod.DELETE, url, body=body, timeout=timeout, allow_redirects=allow_redirects, + expected_status_codes=expected_status_codes, logger=logger + ) diff --git a/src/ztp_server/tests/__init__.py b/src/ztp_server/tests/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/tests/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/tests/data/ietf_acl.json b/src/ztp_server/tests/data/ietf_acl.json new file mode 100755 index 000000000..072df6d01 --- /dev/null +++ b/src/ztp_server/tests/data/ietf_acl.json @@ -0,0 +1,56 @@ +{ + "ietf-access-control-list": { + "acls": { + "acl": [ + { + "name": "sample-ipv4-acl", + "type": "ipv4-acl-type", + "aces": { + "ace": [ + { + "name": "rule1", + "matches": { + "ipv4": { + "dscp": 18, + "source-ipv4-network": "128.32.10.6/24", + "destination-ipv4-network": "172.10.33.0/24" + }, + "tcp": { + "flags": "syn", + "source-port": { + "port": 1444, + "operator": "eq" + }, + "destination-port": { + "port": 1333, + "operator": "eq" + } + } + }, + "actions": { + "forwarding": "drop" + } + } + ] + } + } + ], + "attachment-points": { + "interface": [ + { + "interface-id": "200", + "ingress": { + "acl-sets": { + "acl-set": [ + { + "name": "sample-ipv4-acl" + } + ] + } + } + } + ] + } + } + } +} diff --git a/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json b/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json new file mode 100755 index 000000000..bfeb93fb7 --- /dev/null +++ b/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json @@ -0,0 +1,231 @@ +{ + "ietf-l3vpn-svc:l3vpn-svc": { + "vpn-services": { + "vpn-service": [ + { + "vpn-id": "vpn1" + } + ] + }, + "sites": { + "site": [ + { + "site-id": "site_OLT", + "management": { + "type": "ietf-l3vpn-svc:provider-managed" + }, + "locations": { + "location": [ + { + "location-id": "OLT" + } + ] + }, + "devices": { + "device": [ + { + "device-id": "128.32.33.5", + "location": "OLT" + } + ] + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "128.32.10.1/24", + "lan-tag": "vlan21", + "next-hop": "128.32.33.2" + }, + { + "lan": "128.32.20.1/24", + "lan-tag": "vlan21", + "next-hop": "128.32.33.2" + } + ] + } + } + } + ] + }, + "site-network-accesses": { + "site-network-access": [ + { + "site-network-access-id": "500", + "site-network-access-type": "ietf-l3vpn-svc:multipoint", + "device-reference": "128.32.33.5", + "vpn-attachment": { + "vpn-id": "vpn1", + "site-role": "ietf-l3vpn-svc:spoke-role" + }, + "ip-connection": { + "ipv4": { + "address-allocation-type": "ietf-l3vpn-svc:static-address", + "addresses": { + "provider-address": "128.32.33.254", + "customer-address": "128.32.33.2", + "prefix-length": 24 + } + } + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "172.1.101.1/24", + "lan-tag": "vlan21", + "next-hop": "128.32.33.254" + } + ] + } + } + } + ] + }, + "service": { + "svc-mtu": 1500, + "svc-input-bandwidth": 1000000000, + "svc-output-bandwidth": 1000000000, + "qos": { + "qos-profile": { + "classes": { + "class": [ + { + "class-id": "qos-realtime", + "direction": "ietf-l3vpn-svc:both", + "latency": { + "latency-boundary": 10 + }, + "bandwidth": { + "guaranteed-bw-percent": 100 + } + } + ] + } + } + } + } + } + ] + } + }, + { + "site-id": "site_POP", + "management": { + "type": "ietf-l3vpn-svc:provider-managed" + }, + "locations": { + "location": [ + { + "location-id": "POP" + } + ] + }, + "devices": { + "device": [ + { + "device-id": "172.10.33.5", + "location": "POP" + } + ] + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "172.1.101.1/24", + "lan-tag": "vlan101", + "next-hop": "172.10.33.2" + } + ] + } + } + } + ] + }, + "site-network-accesses": { + "site-network-access": [ + { + "site-network-access-id": "500", + "site-network-access-type": "ietf-l3vpn-svc:multipoint", + "device-reference": "172.10.33.5", + "vpn-attachment": { + "vpn-id": "vpn1", + "site-role": "ietf-l3vpn-svc:hub-role" + }, + "ip-connection": { + "ipv4": { + "address-allocation-type": "ietf-l3vpn-svc:static-address", + "addresses": { + "provider-address": "172.10.33.254", + "customer-address": "172.10.33.2", + "prefix-length": 24 + } + } + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "128.32.10.1/24", + "lan-tag": "vlan101", + "next-hop": "172.10.33.254" + }, + { + "lan": "128.32.20.1/24", + "lan-tag": "vlan101", + "next-hop": "172.10.33.254" + } + ] + } + } + } + ] + }, + "service": { + "svc-mtu": 1500, + "svc-input-bandwidth": 1000000000, + "svc-output-bandwidth": 1000000000, + "qos": { + "qos-profile": { + "classes": { + "class": [ + { + "class-id": "qos-realtime", + "direction": "ietf-l3vpn-svc:both", + "latency": { + "latency-boundary": 10 + }, + "bandwidth": { + "guaranteed-bw-percent": 100 + } + } + ] + } + } + } + } + } + ] + } + } + ] + } + } +} \ No newline at end of file diff --git a/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json b/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json new file mode 100755 index 000000000..2cc512e59 --- /dev/null +++ b/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json @@ -0,0 +1,231 @@ +{ + "ietf-l3vpn-svc:l3vpn-svc": { + "vpn-services": { + "vpn-service": [ + { + "vpn-id": "vpn2" + } + ] + }, + "sites": { + "site": [ + { + "site-id": "site_OLT", + "management": { + "type": "ietf-l3vpn-svc:provider-managed" + }, + "locations": { + "location": [ + { + "location-id": "OLT" + } + ] + }, + "devices": { + "device": [ + { + "device-id": "128.32.33.5", + "location": "OLT" + } + ] + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "128.32.10.1/24", + "lan-tag": "vlan31", + "next-hop": "128.32.33.2" + }, + { + "lan": "128.32.20.1/24", + "lan-tag": "vlan31", + "next-hop": "128.32.33.2" + } + ] + } + } + } + ] + }, + "site-network-accesses": { + "site-network-access": [ + { + "site-network-access-id": "500", + "site-network-access-type": "ietf-l3vpn-svc:multipoint", + "device-reference": "128.32.33.5", + "vpn-attachment": { + "vpn-id": "vpn2", + "site-role": "ietf-l3vpn-svc:spoke-role" + }, + "ip-connection": { + "ipv4": { + "address-allocation-type": "ietf-l3vpn-svc:static-address", + "addresses": { + "provider-address": "128.32.33.254", + "customer-address": "128.32.33.2", + "prefix-length": 24 + } + } + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "172.1.201.1/24", + "lan-tag": "vlan31", + "next-hop": "128.32.33.254" + } + ] + } + } + } + ] + }, + "service": { + "svc-mtu": 1500, + "svc-input-bandwidth": 1000000000, + "svc-output-bandwidth": 1000000000, + "qos": { + "qos-profile": { + "classes": { + "class": [ + { + "class-id": "qos-realtime", + "direction": "ietf-l3vpn-svc:both", + "latency": { + "latency-boundary": 10 + }, + "bandwidth": { + "guaranteed-bw-percent": 100 + } + } + ] + } + } + } + } + } + ] + } + }, + { + "site-id": "site_POP", + "management": { + "type": "ietf-l3vpn-svc:provider-managed" + }, + "locations": { + "location": [ + { + "location-id": "POP" + } + ] + }, + "devices": { + "device": [ + { + "device-id": "172.10.33.5", + "location": "POP" + } + ] + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "172.1.201.1/24", + "lan-tag": "vlan201", + "next-hop": "172.10.33.2" + } + ] + } + } + } + ] + }, + "site-network-accesses": { + "site-network-access": [ + { + "site-network-access-id": "500", + "site-network-access-type": "ietf-l3vpn-svc:multipoint", + "device-reference": "172.10.33.5", + "vpn-attachment": { + "vpn-id": "vpn2", + "site-role": "ietf-l3vpn-svc:hub-role" + }, + "ip-connection": { + "ipv4": { + "address-allocation-type": "ietf-l3vpn-svc:static-address", + "addresses": { + "provider-address": "172.10.33.254", + "customer-address": "172.10.33.2", + "prefix-length": 24 + } + } + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "128.32.10.1/24", + "lan-tag": "vlan201", + "next-hop": "172.10.33.254" + }, + { + "lan": "128.32.20.1/24", + "lan-tag": "vlan201", + "next-hop": "172.10.33.254" + } + ] + } + } + } + ] + }, + "service": { + "svc-mtu": 1500, + "svc-input-bandwidth": 1000000000, + "svc-output-bandwidth": 1000000000, + "qos": { + "qos-profile": { + "classes": { + "class": [ + { + "class-id": "qos-realtime", + "direction": "ietf-l3vpn-svc:both", + "latency": { + "latency-boundary": 10 + }, + "bandwidth": { + "guaranteed-bw-percent": 100 + } + } + ] + } + } + } + } + } + ] + } + } + ] + } + } +} \ No newline at end of file diff --git a/src/ztp_server/tests/data/test-ietf-network.json b/src/ztp_server/tests/data/test-ietf-network.json new file mode 100755 index 000000000..7643ef53a --- /dev/null +++ b/src/ztp_server/tests/data/test-ietf-network.json @@ -0,0 +1,1962 @@ +{ + "ietf-network:networks": { + "network": [ + { + "network-id": "providerId-10-clientId-0-topologyId-1", + "ietf-te-topology:te": { + "name": "Huawei-Network" + }, + "ietf-te-topology:te-topology-identifier": { + "provider-id": 10, + "client-id": 0, + "topology-id": "1" + }, + "network-types": { + "ietf-te-topology:te-topology": { + "ietf-otn-topology:otn-topology": {} + } + }, + "node": [ + { + "node-id": "10.0.10.1", + "ietf-te-topology:te-node-id": "10.0.10.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "OA" + }, + "tunnel-termination-point": [ + { + "tunnel-tp-id": "NTAx", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "501" + } + ] + } + }, + { + "tunnel-tp-id": "NTAw", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "500" + } + ] + } + } + ] + } + }, + { + "node-id": "10.0.20.1", + "ietf-te-topology:te-node-id": "10.0.20.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "P" + }, + "tunnel-termination-point": [ + { + "tunnel-tp-id": "NTAx", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "501" + } + ] + } + }, + { + "tunnel-tp-id": "NTAw", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "500" + } + ] + } + } + ] + } + }, + { + "node-id": "10.0.40.1", + "ietf-te-topology:te-node-id": "10.0.40.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + }, + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "P" + }, + "tunnel-termination-point": [ + { + "tunnel-tp-id": "NTAw", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "500" + } + ] + } + }, + { + "tunnel-tp-id": "NTAx", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "501" + } + ] + } + } + ] + } + }, + { + "node-id": "10.0.30.1", + "ietf-te-topology:te-node-id": "10.0.30.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + }, + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "OE" + }, + "tunnel-termination-point": [ + { + "tunnel-tp-id": "NTAw", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "500" + } + ] + } + }, + { + "tunnel-tp-id": "NTAx", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "501" + } + ] + } + } + ] + } + } + ], + "ietf-network-topology:link": [ + { + "link-id": "10.0.10.1-501", + "source": { + "source-node": "10.0.10.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.20.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.10.1-501", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.10.1-500", + "source": { + "source-node": "10.0.10.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.40.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.10.1-500", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.20.1-501", + "source": { + "source-node": "10.0.20.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.10.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.20.1-501", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.20.1-500", + "source": { + "source-node": "10.0.20.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.30.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.20.1-500", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.40.1-500", + "source": { + "source-node": "10.0.40.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.10.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.40.1-500", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.40.1-501", + "source": { + "source-node": "10.0.40.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.30.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.40.1-501", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.30.1-500", + "source": { + "source-node": "10.0.30.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.20.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.30.1-500", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.30.1-501", + "source": { + "source-node": "10.0.30.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.40.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.30.1-501", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "network-id": "providerId-10-clientId-0-topologyId-2", + "ietf-te-topology:te": { + "name": "Huawei-Network" + }, + "ietf-te-topology:te-topology-identifier": { + "provider-id": 10, + "client-id": 0, + "topology-id": "2" + }, + "network-types": { + "ietf-te-topology:te-topology": { + "ietf-eth-te-topology:eth-tran-topology": {} + } + }, + "node": [ + { + "node-id": "10.0.10.1", + "ietf-te-topology:te-node-id": "10.0.10.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "200", + "ietf-te-topology:te-tp-id": "128.32.33.254", + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "OA" + } + } + }, + { + "node-id": "10.0.20.1", + "ietf-te-topology:te-node-id": "10.0.20.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "P" + } + } + }, + { + "node-id": "10.0.40.1", + "ietf-te-topology:te-node-id": "10.0.40.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "P" + } + } + }, + { + "node-id": "10.0.30.1", + "ietf-te-topology:te-node-id": "10.0.30.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "200", + "ietf-te-topology:te-tp-id": "172.10.33.254", + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "OE" + } + } + }, + { + "node-id": "128.32.33.5", + "ietf-te-topology:te-node-id": "128.32.33.5", + "ietf-network-topology:termination-point": [ + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": "128.32.33.2", + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "200", + "ietf-te-topology:te-tp-id": 200, + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + }, + { + "tp-id": "201", + "ietf-te-topology:te-tp-id": 201, + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "OLT", + "connectivity-matrices": { + "label-restrictions": { + "label-restriction": [ + { + "index": 0, + "label-start": { + "te-label": { + "ietf-eth-te-topology:vlanid": 21 + } + }, + "label-end": { + "te-label": { + "ietf-eth-te-topology:vlanid": 21 + } + } + }, + { + "index": 1, + "label-start": { + "te-label": { + "ietf-eth-te-topology:vlanid": 31 + } + }, + "label-end": { + "te-label": { + "ietf-eth-te-topology:vlanid": 31 + } + } + } + ] + } + } + } + } + }, + { + "node-id": "128.32.10.1", + "ietf-te-topology:te-node-id": "128.32.10.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + }, + { + "tp-id": "200", + "ietf-te-topology:te-tp-id": 200, + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "ONT1" + } + } + }, + { + "node-id": "128.32.20.1", + "ietf-te-topology:te-node-id": "128.32.20.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + }, + { + "tp-id": "200", + "ietf-te-topology:te-tp-id": 200, + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "ONT2" + } + } + } + ], + "ietf-network-topology:link": [ + { + "link-id": "10.0.10.1-200", + "source": { + "source-node": "10.0.10.1", + "source-tp": "200" + }, + "destination": { + "dest-node": "128.32.33.5", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.10.1-200", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "128.32.33.5-500", + "source": { + "source-node": "128.32.33.5", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.10.1", + "dest-tp": "200" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "128.32.33.5-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.10.1-501", + "source": { + "source-node": "10.0.10.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.20.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.10.1-501", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.10.1-500", + "source": { + "source-node": "10.0.10.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.40.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.10.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.20.1-501", + "source": { + "source-node": "10.0.20.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.10.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.20.1-501", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.20.1-500", + "source": { + "source-node": "10.0.20.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.30.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.20.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.40.1-501", + "source": { + "source-node": "10.0.40.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.30.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.40.1-501", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.40.1-500", + "source": { + "source-node": "10.0.40.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.10.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.40.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.30.1-501", + "source": { + "source-node": "10.0.30.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.40.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.30.1-501", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.30.1-500", + "source": { + "source-node": "10.0.30.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.20.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.30.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "128.32.33.5-200", + "source": { + "source-node": "128.32.33.5", + "source-tp": "200" + }, + "destination": { + "dest-node": "128.32.10.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "128.32.33.5-200", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "128.32.10.1-500", + "source": { + "source-node": "128.32.10.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "128.32.33.5", + "dest-tp": "200" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "128.32.10.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "128.32.33.5-201", + "source": { + "source-node": "128.32.33.5", + "source-tp": "201" + }, + "destination": { + "dest-node": "128.32.20.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "128.32.33.5-201", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "128.32.20.1-500", + "source": { + "source-node": "128.32.20.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "128.32.33.5", + "dest-tp": "201" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "128.32.20.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/src/ztp_server/tests/data/tfs_api_dummy.json b/src/ztp_server/tests/data/tfs_api_dummy.json new file mode 100755 index 000000000..d8f513757 --- /dev/null +++ b/src/ztp_server/tests/data/tfs_api_dummy.json @@ -0,0 +1,442 @@ +{ + "dummy_mode": true, + "contexts": [ + { + "context_id": {"context_uuid": {"uuid": "admin"}}, + "name": "admin", + "topology_ids": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + ], + "service_ids": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}} + ], + "slice_ids": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}, "slice_uuid": {"uuid": "SLC:R1-R2-R3"}} + ] + } + ], + "topologies": [ + { + "device_ids": [ + {"device_uuid": {"uuid": "R1"}}, + {"device_uuid": {"uuid": "R2"}}, + {"device_uuid": {"uuid": "R3"}} + ], + "link_ids": [ + {"link_uuid": {"uuid": "R1/502==R2/501"}}, + {"link_uuid": {"uuid": "R1/503==R3/501"}}, + {"link_uuid": {"uuid": "R2/501==R1/502"}}, + {"link_uuid": {"uuid": "R2/503==R3/502"}}, + {"link_uuid": {"uuid": "R3/501==R1/503"}}, + {"link_uuid": {"uuid": "R3/502==R2/503"}} + ], + "name": "admin", + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "name": "R1", "device_type": "emu-packet-router", + "device_drivers": [0], "device_operational_status": 2, + "device_endpoints": [ + {"name": "200", "endpoint_type": "copper", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "502", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "503", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }} + ], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "502", "name": "502", "type": "optical"}, + {"uuid": "503", "name": "503", "type": "optical"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { + "uuid": "200", "name": "200", "type": "copper" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[502]", "resource_value": { + "uuid": "502", "name": "502", "type": "optical" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { + "uuid": "503", "name": "503", "type": "optical" + }}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "name": "R2", "device_type": "emu-packet-router", + "device_drivers": [0], "device_operational_status": 2, + "device_endpoints": [ + {"name": "200", "endpoint_type": "copper", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "501", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "503", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }} + ], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "501", "name": "501", "type": "optical"}, + {"uuid": "503", "name": "503", "type": "optical"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { + "uuid": "200", "name": "200", "type": "copper" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[501]", "resource_value": { + "uuid": "501", "name": "501", "type": "optical" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { + "uuid": "503", "name": "503", "type": "optical" + }}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "name": "R3", "device_type": "emu-packet-router", + "device_drivers": [0], "device_operational_status": 2, + "device_endpoints": [ + {"name": "200", "endpoint_type": "copper", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "502", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "503", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }} + ], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "502", "name": "502", "type": "optical"}, + {"uuid": "503", "name": "503", "type": "optical"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { + "uuid": "200", "name": "200", "type": "copper" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[502]", "resource_value": { + "uuid": "502", "name": "502", "type": "optical" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { + "uuid": "503", "name": "503", "type": "optical" + }}} + ]} + } + ], + "links": [ + { + "link_id": {"link_uuid": {"uuid": "R1/502==R2/501"}}, "name": "R1/502==R2/501", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R1/503==R3/501"}}, "name": "R1/503==R3/501", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R2/501==R1/502"}}, "name": "R2/501==R1/502", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R2/503==R3/502"}}, "name": "R2/503==R3/502", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R3/501==R1/503"}}, "name": "R3/501==R1/503", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R3/502==R2/503"}}, "name": "R3/502==R2/503", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + } + ], + "services": [ + { + "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, + "name": "SVC:R1/200==R2/200", "service_type": 1, "service_status": {"service_status": 1}, + "service_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "service_constraints": [ + {"action": 1, "sla_capacity": {"capacity_gbps": 40.0}}, + {"action": 1, "sla_latency": {"e2e_latency_ms": 10.0}}, + {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.99}} + ], + "service_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 + }}} + ]} + }, + { + "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, + "name": "SVC:R1/200==R3/200", "service_type": 1, "service_status": {"service_status": 1}, + "service_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "service_constraints": [ + {"action": 1, "sla_capacity": {"capacity_gbps": 50.0}}, + {"action": 1, "sla_latency": {"e2e_latency_ms": 8.0}}, + {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.9}} + ], + "service_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 + }}} + ]} + }, + { + "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}}, + "name": "SVC:R2/200==R3/200", "service_type": 1, "service_status": {"service_status": 1}, + "service_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "service_constraints": [ + {"action": 1, "sla_capacity": {"capacity_gbps": 10.0}}, + {"action": 1, "sla_latency": {"e2e_latency_ms": 3.0}}, + {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.9999}} + ], + "service_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 + }}} + ]} + } + ], + "slices": [ + { + "slice_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "slice_uuid": {"uuid": "SLC:R1-R2-R3"}}, + "name": "SLC:R1-R2-R3", + "slice_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "slice_constraints": [ + {"action": 1, "sla_capacity": {"capacity_gbps": 40.0}}, + {"action": 1, "sla_latency": {"e2e_latency_ms": 10.0}}, + {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.99}} + ], + "slice_service_ids": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}} + ], + "slice_subslice_ids": [], + "slice_status": {"slice_status" : 1}, + "slice_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 + }}} + ]}, + "slice_owner": {"owner_uuid": {"uuid": "TFS"}, "owner_string": "TFS:SLC:R1-R2-R3"} + } + ], + "connections": [ + { + "connection_id": {"connection_uuid": {"uuid": "CON:R1/200==R2/200:1"}}, + "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, + "path_hops_endpoint_ids" : [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "sub_service_ids": [], + "settings": { + "l3": {"src_ip_address": "10.0.1.10", "dst_ip_address": "10.0.2.10", "ttl": 20} + } + }, + { + "connection_id": {"connection_uuid": {"uuid": "CON:R1/200==R3/200:1"}}, + "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, + "path_hops_endpoint_ids" : [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "sub_service_ids": [], + "settings": { + "l3": {"src_ip_address": "10.0.1.10", "dst_ip_address": "10.0.3.10", "ttl": 20} + } + }, + { + "connection_id": {"connection_uuid": {"uuid": "CON:R2/200==R3/200:1"}}, + "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}}, + "path_hops_endpoint_ids" : [ + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "sub_service_ids": [], + "settings": { + "l3": {"src_ip_address": "10.0.2.10", "dst_ip_address": "10.0.3.10", "ttl": 20} + } + } + ] +} diff --git a/src/ztp_server/tests/data/topology-7router-emu-dummy.json b/src/ztp_server/tests/data/topology-7router-emu-dummy.json new file mode 100755 index 000000000..3bb622626 --- /dev/null +++ b/src/ztp_server/tests/data/topology-7router-emu-dummy.json @@ -0,0 +1,157 @@ +{ + "dummy_mode": true, + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, + {"uuid": "1/3", "type": "copper"}, {"uuid": "2/1", "type": "copper"}, + {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"}, + {"uuid": "2/4", "type": "copper"}, {"uuid": "2/5", "type": "copper"}, + {"uuid": "2/6", "type": "copper"} + ]}}} + ]}} + ], + "links": [ + {"link_id": {"link_uuid": {"uuid": "R1==R2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R1==R6"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R1==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R2==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R2==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R4==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R4==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R6"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R6==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R6==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]} + ] +} diff --git a/src/ztp_server/tests/data/topology-7router-emu.json b/src/ztp_server/tests/data/topology-7router-emu.json new file mode 100755 index 000000000..4174f4fb4 --- /dev/null +++ b/src/ztp_server/tests/data/topology-7router-emu.json @@ -0,0 +1,156 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, + {"uuid": "1/3", "type": "copper"}, {"uuid": "2/1", "type": "copper"}, + {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"}, + {"uuid": "2/4", "type": "copper"}, {"uuid": "2/5", "type": "copper"}, + {"uuid": "2/6", "type": "copper"} + ]}}} + ]}} + ], + "links": [ + {"link_id": {"link_uuid": {"uuid": "R1==R2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R1==R6"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R1==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R2==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R2==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R4==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R4==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R6"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R6==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R6==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]} + ] +} diff --git a/src/ztp_server/tests/data/topology-dummy.json b/src/ztp_server/tests/data/topology-dummy.json new file mode 100755 index 000000000..f066051ee --- /dev/null +++ b/src/ztp_server/tests/data/topology-dummy.json @@ -0,0 +1,3134 @@ +{ + "contexts": [ + { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "name": "admin", + "service_ids": [], + "slice_ids": [], + "topology_ids": [ + { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + ] + } + ], + "devices": [ + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + }, + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "500", + "type": "optical", + "uuid": "500" + }, + { + "name": "501", + "type": "optical", + "uuid": "501" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[mgmt]", + "resource_value": { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "optical", + "uuid": "500" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[501]", + "resource_value": { + "name": "501", + "type": "optical", + "uuid": "501" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "501" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "b72983bd-57d8-5cf8-8ec7-da9084382d7a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "mgmt", + "kpi_sample_types": [], + "name": "mgmt" + } + ], + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "10.0.30.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "500", + "type": "copper", + "uuid": "500" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "copper", + "uuid": "500" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "500" + } + ], + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "128.32.10.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "201", + "type": "copper", + "uuid": "201" + }, + { + "name": "500", + "type": "copper", + "uuid": "500" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[201]", + "resource_value": { + "name": "201", + "type": "copper", + "uuid": "201" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "copper", + "uuid": "500" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "endpoint_uuid": { + "uuid": "227b6bb2-dacf-5b3d-84e9-c1d0c107bcd8" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "201" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "endpoint_uuid": { + "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "endpoint_uuid": { + "uuid": "d8528b70-9215-59ed-851d-b9590ab0c94b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + } + ], + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "device_operational_status": 2, + "device_type": "emu-datacenter", + "name": "172.10.33.5" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + }, + { + "name": "500", + "type": "optical", + "uuid": "500" + }, + { + "name": "501", + "type": "optical", + "uuid": "501" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[mgmt]", + "resource_value": { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "optical", + "uuid": "500" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[501]", + "resource_value": { + "name": "501", + "type": "optical", + "uuid": "501" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "501" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "ede34dea-6b51-5787-88d2-553fe548f540" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "mgmt", + "kpi_sample_types": [], + "name": "mgmt" + } + ], + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "10.0.40.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "201", + "type": "copper", + "uuid": "201" + }, + { + "name": "500", + "type": "copper", + "uuid": "500" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[201]", + "resource_value": { + "name": "201", + "type": "copper", + "uuid": "201" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "copper", + "uuid": "500" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "201" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "c6435612-3aca-590f-89ba-e606f54df474" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + } + ], + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "device_operational_status": 2, + "device_type": "emu-optical-transponder", + "name": "128.32.33.5" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + }, + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "500", + "type": "optical", + "uuid": "500" + }, + { + "name": "501", + "type": "optical", + "uuid": "501" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[mgmt]", + "resource_value": { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "optical", + "uuid": "500" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[501]", + "resource_value": { + "name": "501", + "type": "optical", + "uuid": "501" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "59e1e30f-ea65-5e04-8a91-760a648a02c6" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "mgmt", + "kpi_sample_types": [], + "name": "mgmt" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "70cbb732-8149-59ee-939b-011828e4292b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "501" + } + ], + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "10.0.10.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + }, + { + "name": "500", + "type": "optical", + "uuid": "500" + }, + { + "name": "501", + "type": "optical", + "uuid": "501" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[mgmt]", + "resource_value": { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "optical", + "uuid": "500" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[501]", + "resource_value": { + "name": "501", + "type": "optical", + "uuid": "501" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "501" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "356378dd-952b-5032-912d-37fc21284b4c" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "da826790-a4b0-5317-b30b-e1370918a644" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "mgmt", + "kpi_sample_types": [], + "name": "mgmt" + } + ], + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "10.0.20.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "eth1", + "type": "copper", + "uuid": "eth1" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[eth1]", + "resource_value": { + "name": "eth1", + "type": "copper", + "uuid": "eth1" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" + } + }, + "endpoint_uuid": { + "uuid": "0701f406-633f-53e7-a44d-c93384745df8" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "eth1" + } + ], + "device_id": { + "device_uuid": { + "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" + } + }, + "device_operational_status": 2, + "device_type": "emu-client", + "name": "128.32.20.5" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "500", + "type": "copper", + "uuid": "500" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "copper", + "uuid": "500" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + } + ], + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "128.32.20.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "eth1", + "type": "copper", + "uuid": "eth1" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[eth1]", + "resource_value": { + "name": "eth1", + "type": "copper", + "uuid": "eth1" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" + } + }, + "endpoint_uuid": { + "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "eth1" + } + ], + "device_id": { + "device_uuid": { + "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" + } + }, + "device_operational_status": 2, + "device_type": "emu-client", + "name": "128.32.10.5" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[mgmt]", + "resource_value": { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "endpoint_uuid": { + "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "mgmt", + "kpi_sample_types": [], + "name": "mgmt" + } + ], + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "device_operational_status": 2, + "device_type": "emu-open-line-system", + "name": "nce-t" + } + ], + "dummy_mode": true, + "links": [ + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "70cbb732-8149-59ee-939b-011828e4292b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "0b3d5943-c2bf-595f-a805-dc29c2be2f52" + } + }, + "name": "10.0.10.1-200" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "1490e70f-472c-5e4c-8280-21c48ed03477" + } + }, + "name": "10.0.40.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "c6435612-3aca-590f-89ba-e606f54df474" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "18ba8eb2-342b-5a73-aeae-7288ea9bb28b" + } + }, + "name": "128.32.10.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" + } + }, + "endpoint_uuid": { + "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "1901b0dc-1b5e-5fdf-b9ac-9168787464c1" + } + }, + "name": "128.32.10.1-200" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "70cbb732-8149-59ee-939b-011828e4292b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "1afdae8b-a281-53aa-99c2-205afb8f4ee7" + } + }, + "name": "128.32.33.5-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "356378dd-952b-5032-912d-37fc21284b4c" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "30ca0f8f-b150-57f2-ae5e-8a6844944783" + } + }, + "name": "10.0.20.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "34c9c6c3-0dcf-54e5-ba67-da33eb2d3c1a" + } + }, + "name": "10.0.20.1-501" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "356378dd-952b-5032-912d-37fc21284b4c" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "35801e61-45f3-564e-ad5c-09baf4aae906" + } + }, + "name": "10.0.30.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "endpoint_uuid": { + "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "36643dba-e8fa-5fb7-952d-dff313db957b" + } + }, + "name": "172.10.33.5-500" + }, + { + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "endpoint_uuid": { + "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "ede34dea-6b51-5787-88d2-553fe548f540" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "36856920-3387-5384-b1b1-dbc9e54da226" + } + }, + "name": "nce-t/mgmt==10.0.40.1/mgmt" + }, + { + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "endpoint_uuid": { + "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "b72983bd-57d8-5cf8-8ec7-da9084382d7a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "46ba12f9-dd17-5f2a-9558-e4611515a6b9" + } + }, + "name": "nce-t/mgmt==10.0.30.1/mgmt" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "4dfe28dd-ac28-53d5-b330-1707e350d772" + } + }, + "name": "10.0.30.1-501" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "644ab377-572c-53a4-8ab5-f5cf45591d88" + } + }, + "name": "128.32.20.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "c6435612-3aca-590f-89ba-e606f54df474" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "661ac531-4309-58cc-b70e-2a79492c2488" + } + }, + "name": "128.32.33.5-200" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "6a236e01-853c-51d0-8915-2d09b45923b0" + } + }, + "name": "128.32.33.5-201" + }, + { + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "endpoint_uuid": { + "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "da826790-a4b0-5317-b30b-e1370918a644" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "6c802ae7-59d1-55e7-9498-146c465bcab5" + } + }, + "name": "nce-t/mgmt==10.0.20.1/mgmt" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" + } + }, + "endpoint_uuid": { + "uuid": "0701f406-633f-53e7-a44d-c93384745df8" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "6fa77ad9-e4d7-5830-bf84-ab206eff613a" + } + }, + "name": "128.32.20.1-200" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "endpoint_uuid": { + "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "808b54e8-3d5a-5e03-a42e-d6c2a57cf6f3" + } + }, + "name": "10.0.30.1-200" + }, + { + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "endpoint_uuid": { + "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "59e1e30f-ea65-5e04-8a91-760a648a02c6" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "85a18715-3ce0-57f9-8025-5634fe622a06" + } + }, + "name": "nce-t/mgmt==10.0.10.1/mgmt" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "8e8d1a2b-beae-5624-8826-9235bd73a3a8" + } + }, + "name": "10.0.40.1-501" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "e9c5b57e-de50-509c-9f5a-0107ff233703" + } + }, + "name": "10.0.10.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" + } + }, + "endpoint_uuid": { + "uuid": "0701f406-633f-53e7-a44d-c93384745df8" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "effca6e0-acf3-5c02-ba9a-d82c17a3f006" + } + }, + "name": "128.32.20.5-eth1" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "f45b4432-4ae2-5719-b4e8-a5e8baa1ccd2" + } + }, + "name": "10.0.10.1-501" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" + } + }, + "endpoint_uuid": { + "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "fd005f34-39f5-550e-b2c0-c6e6f8c16325" + } + }, + "name": "128.32.10.5-eth1" + } + ], + "topologies": [ + { + "device_ids": [ + { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + { + "device_uuid": { + "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" + } + }, + { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + { + "device_uuid": { + "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" + } + }, + { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + } + ], + "link_ids": [ + { + "link_uuid": { + "uuid": "0b3d5943-c2bf-595f-a805-dc29c2be2f52" + } + }, + { + "link_uuid": { + "uuid": "1490e70f-472c-5e4c-8280-21c48ed03477" + } + }, + { + "link_uuid": { + "uuid": "18ba8eb2-342b-5a73-aeae-7288ea9bb28b" + } + }, + { + "link_uuid": { + "uuid": "1901b0dc-1b5e-5fdf-b9ac-9168787464c1" + } + }, + { + "link_uuid": { + "uuid": "1afdae8b-a281-53aa-99c2-205afb8f4ee7" + } + }, + { + "link_uuid": { + "uuid": "30ca0f8f-b150-57f2-ae5e-8a6844944783" + } + }, + { + "link_uuid": { + "uuid": "34c9c6c3-0dcf-54e5-ba67-da33eb2d3c1a" + } + }, + { + "link_uuid": { + "uuid": "35801e61-45f3-564e-ad5c-09baf4aae906" + } + }, + { + "link_uuid": { + "uuid": "36643dba-e8fa-5fb7-952d-dff313db957b" + } + }, + { + "link_uuid": { + "uuid": "36856920-3387-5384-b1b1-dbc9e54da226" + } + }, + { + "link_uuid": { + "uuid": "46ba12f9-dd17-5f2a-9558-e4611515a6b9" + } + }, + { + "link_uuid": { + "uuid": "4dfe28dd-ac28-53d5-b330-1707e350d772" + } + }, + { + "link_uuid": { + "uuid": "644ab377-572c-53a4-8ab5-f5cf45591d88" + } + }, + { + "link_uuid": { + "uuid": "661ac531-4309-58cc-b70e-2a79492c2488" + } + }, + { + "link_uuid": { + "uuid": "6a236e01-853c-51d0-8915-2d09b45923b0" + } + }, + { + "link_uuid": { + "uuid": "6c802ae7-59d1-55e7-9498-146c465bcab5" + } + }, + { + "link_uuid": { + "uuid": "6fa77ad9-e4d7-5830-bf84-ab206eff613a" + } + }, + { + "link_uuid": { + "uuid": "808b54e8-3d5a-5e03-a42e-d6c2a57cf6f3" + } + }, + { + "link_uuid": { + "uuid": "85a18715-3ce0-57f9-8025-5634fe622a06" + } + }, + { + "link_uuid": { + "uuid": "8e8d1a2b-beae-5624-8826-9235bd73a3a8" + } + }, + { + "link_uuid": { + "uuid": "e9c5b57e-de50-509c-9f5a-0107ff233703" + } + }, + { + "link_uuid": { + "uuid": "effca6e0-acf3-5c02-ba9a-d82c17a3f006" + } + }, + { + "link_uuid": { + "uuid": "f45b4432-4ae2-5719-b4e8-a5e8baa1ccd2" + } + }, + { + "link_uuid": { + "uuid": "fd005f34-39f5-550e-b2c0-c6e6f8c16325" + } + } + ], + "name": "admin", + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ] +} \ No newline at end of file diff --git a/src/ztp_server/tests/data/topology-real.json b/src/ztp_server/tests/data/topology-real.json new file mode 100755 index 000000000..bb158d920 --- /dev/null +++ b/src/ztp_server/tests/data/topology-real.json @@ -0,0 +1,259 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + + "devices": [ + {"device_id": {"device_uuid": {"uuid": "nce-t"}}, "name": "nce-t", "device_type": "emu-open-line-system", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "mgmt", "name": "mgmt", "type": "mgmt"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "name": "10.0.10.1", "device_type": "emu-packet-router", + "controller_id": {"device_uuid": {"uuid": "nce-t"}}, + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, + {"uuid": "200", "name": "200", "type": "copper" }, + {"uuid": "500", "name": "500", "type": "optical"}, + {"uuid": "501", "name": "501", "type": "optical"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "name": "10.0.20.1", "device_type": "emu-packet-router", + "controller_id": {"device_uuid": {"uuid": "nce-t"}}, + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, + {"uuid": "500", "name": "500", "type": "optical"}, + {"uuid": "501", "name": "501", "type": "optical"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "name": "10.0.30.1", "device_type": "emu-packet-router", + "controller_id": {"device_uuid": {"uuid": "nce-t"}}, + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, + {"uuid": "200", "name": "200", "type": "copper" }, + {"uuid": "500", "name": "500", "type": "optical"}, + {"uuid": "501", "name": "501", "type": "optical"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "name": "10.0.40.1", "device_type": "emu-packet-router", + "controller_id": {"device_uuid": {"uuid": "nce-t"}}, + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, + {"uuid": "500", "name": "500", "type": "optical"}, + {"uuid": "501", "name": "501", "type": "optical"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "name": "128.32.10.5", "device_type": "emu-client", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "eth1", "name": "eth1", "type": "copper"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "name": "128.32.10.1", "device_type": "emu-packet-router", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "500", "name": "500", "type": "copper"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "name": "128.32.20.5", "device_type": "emu-client", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "eth1", "name": "eth1", "type": "copper"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "name": "128.32.20.1", "device_type": "emu-packet-router", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "500", "name": "500", "type": "copper"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "name": "128.32.33.5", "device_type": "emu-optical-transponder", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "201", "name": "201", "type": "copper"}, + {"uuid": "500", "name": "500", "type": "copper"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "name": "172.10.33.5", "device_type": "emu-datacenter", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "201", "name": "201", "type": "copper"}, + {"uuid": "500", "name": "500", "type": "copper"} + ]}}} + ]}} + ], + + "links": [ + {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.10.1/mgmt"}}, "name": "nce-t/mgmt==10.0.10.1/mgmt", "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.20.1/mgmt"}}, "name": "nce-t/mgmt==10.0.20.1/mgmt", "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.30.1/mgmt"}}, "name": "nce-t/mgmt==10.0.30.1/mgmt", "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.40.1/mgmt"}}, "name": "nce-t/mgmt==10.0.40.1/mgmt", "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "10.0.10.1-501"}}, "name": "10.0.10.1-501", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "501"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "501"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.20.1-501"}}, "name": "10.0.20.1-501", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "501"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "501"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "10.0.10.1-500"}}, "name": "10.0.10.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.40.1-500"}}, "name": "10.0.40.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "10.0.20.1-500"}}, "name": "10.0.20.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.30.1-500"}}, "name": "10.0.30.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "10.0.40.1-501"}}, "name": "10.0.40.1-501", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "501"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "501"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.30.1-501"}}, "name": "10.0.30.1-501", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "501"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "501"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "128.32.10.5-eth1"}}, "name": "128.32.10.5-eth1", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "endpoint_uuid": {"uuid": "eth1"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "200" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "128.32.10.1-200"}}, "name": "128.32.10.1-200", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "200" }}, + {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "endpoint_uuid": {"uuid": "eth1"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "128.32.10.1-500"}}, "name": "128.32.10.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "200"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "128.32.33.5-200"}}, "name": "128.32.33.5-200", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "200"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "128.32.20.5-eth1"}}, "name": "128.32.20.5-eth1", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "endpoint_uuid": {"uuid": "eth1"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "200" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "128.32.20.1-200"}}, "name": "128.32.20.1-200", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "200" }}, + {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "endpoint_uuid": {"uuid": "eth1"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "128.32.20.1-500"}}, "name": "128.32.20.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "201"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "128.32.33.5-201"}}, "name": "128.32.33.5-201", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "201"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "128.32.33.5-500"}}, "name": "128.32.33.5-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "200"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.10.1-200"}}, "name": "10.0.10.1-200", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "200"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "172.10.33.5-500"}}, "name": "172.10.33.5-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "200"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.30.1-200"}}, "name": "10.0.30.1-200", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "200"}}, + {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "endpoint_uuid": {"uuid": "500"}} + ]} + ] +} diff --git a/src/ztp_server/tests/ietf_acl_client.py b/src/ztp_server/tests/ietf_acl_client.py new file mode 100755 index 000000000..20887f1a8 --- /dev/null +++ b/src/ztp_server/tests/ietf_acl_client.py @@ -0,0 +1,89 @@ +# Copyright 2022-2024 ETSI 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 requests, time +from typing import Optional +from requests.auth import HTTPBasicAuth + +BASE_URL = '{:s}://{:s}:{:d}/restconf/data' +ACLS_URL = '{:s}/device={:s}/ietf-access-control-list:acls' +ACL_URL = '{:s}/device={:s}/ietf-access-control-list:acl={:s}' + +CSG1_DEVICE_UUID = '118295c8-318a-52ec-a394-529fc4b70f2f' # router: 128.32.10.1 +ACL_NAME = 'sample-ipv4-acl' +ACL_RULE = {"ietf-access-control-list:acls": { + "acl": [{ + "name": "sample-ipv4-acl", "type": "ipv4-acl-type", + "aces": {"ace": [{ + "name": "rule1", + "matches": { + "ipv4": { + "source-ipv4-network": "128.32.10.6/24", + "destination-ipv4-network": "172.10.33.0/24", + "dscp": 18 + }, + "tcp": { + "source-port": {"operator": "eq", "port": 1444}, + "destination-port": {"operator": "eq", "port": 1333}, + "flags": "syn" + } + }, + "actions": {"forwarding": "drop"} + }]} + }], + "attachment-points": {"interface": [{ + "interface-id": "200", + "ingress": {"acl-sets": {"acl-set": [{"name": "sample-ipv4-acl"}]}} + }] +}}} + +class TfsIetfAclClient: + def __init__( + self, host : str = 'localhost', port : int = 80, schema : str = 'http', + username : Optional[str] = 'admin', password : Optional[str] = 'admin', + timeout : int = 10, allow_redirects : bool = True, verify : bool = False + ) -> None: + self._base_url = BASE_URL.format(schema, host, port) + auth = HTTPBasicAuth(username, password) if username is not None and password is not None else None + self._settings = dict(auth=auth, timeout=timeout, allow_redirects=allow_redirects, verify=verify) + + def post(self, device_uuid : str, ietf_acl_data : dict) -> str: + request_url = ACLS_URL.format(self._base_url, device_uuid) + reply = requests.post(request_url, json=ietf_acl_data, **(self._settings)) + return reply.text + + def get(self, device_uuid : str, acl_name : str) -> str: + request_url = ACL_URL.format(self._base_url, device_uuid, acl_name) + reply = requests.get(request_url, **(self._settings)) + return reply.text + + def delete(self, device_uuid : str, acl_name : str) -> str: + request_url = ACL_URL.format(self._base_url, device_uuid, acl_name) + reply = requests.delete(request_url, **(self._settings)) + return reply.text + +def main(): + client = TfsIetfAclClient() + print(f'ACL rule: {ACL_RULE}') + post_response = client.post(CSG1_DEVICE_UUID, ACL_RULE) + print(f'post response: {post_response}') + time.sleep(.5) + get_response = client.get(CSG1_DEVICE_UUID, ACL_NAME) + print(f'get response: {get_response}') + time.sleep(.5) + delete_response = client.delete(CSG1_DEVICE_UUID, ACL_NAME) + print(f'delete response: {delete_response}') + +if __name__ == '__main__': + main() diff --git a/src/ztp_server/tests/test_etsi_bwm.py b/src/ztp_server/tests/test_etsi_bwm.py new file mode 100755 index 000000000..9400de00f --- /dev/null +++ b/src/ztp_server/tests/test_etsi_bwm.py @@ -0,0 +1,240 @@ +# Copyright 2022-2024 ETSI 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 deepdiff, json, logging, pytest +from typing import Dict +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.proto.context_pb2 import ContextId, TopologyId +from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Topology import json_topology_id +from context.client.ContextClient import ContextClient +from nbi.service.rest_server import RestServer +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + do_rest_delete_request, do_rest_get_request, do_rest_patch_request, do_rest_post_request, do_rest_put_request, + mock_service, nbi_service_rest, context_client +) + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) +ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) +BASE_URL = '/restconf/bwm/v1' + +@pytest.fixture(scope='session') +def storage() -> Dict: + yield dict() + +#def compare_dicts(dict1, dict2): +# # Function to recursively sort dictionaries +# def recursively_sort(d): +# if isinstance(d, dict): +# return {k: recursively_sort(v) for k, v in sorted(d.items())} +# if isinstance(d, list): +# return [recursively_sort(item) for item in d] +# return d +# +# # Sort dictionaries to ignore the order of fields +# sorted_dict1 = recursively_sort(dict1) +# sorted_dict2 = recursively_sort(dict2) +# +# if sorted_dict1 != sorted_dict2: +# LOGGER.error(sorted_dict1) +# LOGGER.error(sorted_dict2) +# +# return sorted_dict1 != sorted_dict2 + +def check_timestamps(bwm_service): + assert 'timeStamp' in bwm_service + assert 'seconds' in bwm_service['timeStamp'] + assert 'nanoseconds' in bwm_service['timeStamp'] + +def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 + assert len(response.service_ids ) == 0 + assert len(response.slice_ids ) == 0 + +def test_get_allocations_empty(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + URL = BASE_URL + '/bw_allocations' + retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) + assert len(retrieved_data) == 0 + +def test_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + URL = BASE_URL + '/bw_allocations' + data = { + "appInsId" : "service_uuid_01", + "allocationDirection" : "00", + "fixedAllocation" : "123000.0", + "fixedBWPriority" : "SEE_DESCRIPTION", + "requestType" : 0, + "sessionFilter" : [{ + "sourceIp" : "192.168.1.2", + "sourcePort" : ["a"], + "protocol" : "string", + "dstAddress" : "192.168.3.2", + "dstPort" : ["b"], + }] + } + retrieved_data = do_rest_post_request(URL, body=data, logger=LOGGER, expected_status_codes={200}) + LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) + storage['service_uuid_01'] = 'service_uuid_01' + + +def test_get_allocations(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + assert 'service_uuid_01' in storage + URL = BASE_URL + '/bw_allocations' + retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) + assert len(retrieved_data) == 1 + good_result = [ + { + "appInsId" : "service_uuid_01", + "fixedAllocation" : "123000.0", + "allocationDirection" : "00", + "fixedBWPriority" : "SEE_DESCRIPTION", + "requestType" : "0", + "sessionFilter" : [{ + "sourceIp" : "192.168.1.2", + "sourcePort" : ["a"], + "protocol" : "string", + "dstAddress" : "192.168.3.2", + "dstPort" : ["b"], + }], + } + ] + check_timestamps(retrieved_data[0]) + del retrieved_data[0]['timeStamp'] + diff_data = deepdiff.DeepDiff(good_result, retrieved_data) + LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) + assert len(diff_data) == 0 + + +def test_get_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + assert 'service_uuid_01' in storage + URL = BASE_URL + '/bw_allocations/service_uuid_01' + retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) + good_result = { + "appInsId" : "service_uuid_01", + "fixedAllocation" : "123000.0", + "allocationDirection": "00", + "fixedBWPriority" : "SEE_DESCRIPTION", + "requestType" : "0", + "sessionFilter" : [{ + "sourceIp" : "192.168.1.2", + "sourcePort" : ["a"], + "protocol" : "string", + "dstAddress" : "192.168.3.2", + "dstPort" : ["b"], + }] + } + check_timestamps(retrieved_data) + del retrieved_data['timeStamp'] + diff_data = deepdiff.DeepDiff(good_result, retrieved_data) + LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) + assert len(diff_data) == 0 + + +def test_put_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + assert 'service_uuid_01' in storage + URL = BASE_URL + '/bw_allocations/service_uuid_01' + changed_allocation = { + "appInsId" : "service_uuid_01", + "fixedAllocation" : "200.0", + "allocationDirection": "00", + "fixedBWPriority" : "NOPRIORITY", + "requestType" : "0", + "sessionFilter" : [{ + "sourceIp" : "192.168.1.2", + "sourcePort" : ["a"], + "protocol" : "string", + "dstAddress" : "192.168.3.2", + "dstPort" : ["b"], + }] + } + retrieved_data = do_rest_put_request(URL, body=json.dumps(changed_allocation), logger=LOGGER, expected_status_codes={200}) + check_timestamps(retrieved_data) + del retrieved_data['timeStamp'] + diff_data = deepdiff.DeepDiff(changed_allocation, retrieved_data) + LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) + assert len(diff_data) == 0 + + +def test_patch_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + assert 'service_uuid_01' in storage + URL = BASE_URL + '/bw_allocations/service_uuid_01' + difference = { + "fixedBWPriority":"FULLPRIORITY", + } + changed_allocation = { + "appInsId" : "service_uuid_01", + "fixedAllocation" : "200.0", + "allocationDirection": "00", + "fixedBWPriority" : "FULLPRIORITY", + "requestType" : "0", + "sessionFilter" : [{ + "sourceIp" : "192.168.1.2", + "sourcePort" : ["a"], + "protocol" : "string", + "dstAddress" : "192.168.3.2", + "dstPort" : ["b"], + }] + } + retrieved_data = do_rest_patch_request(URL, body=difference, logger=LOGGER, expected_status_codes={200}) + check_timestamps(retrieved_data) + del retrieved_data['timeStamp'] + diff_data = deepdiff.DeepDiff(changed_allocation, retrieved_data) + LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) + assert len(diff_data) == 0 + + +def test_delete_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + assert 'service_uuid_01' in storage + URL = BASE_URL + '/bw_allocations/service_uuid_01' + do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={200}) + + +def test_get_allocations_empty_final(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + URL = BASE_URL + '/bw_allocations' + retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) + assert len(retrieved_data) == 0 + + +def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.topology_ids) == 1 + 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() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_l2vpn.py b/src/ztp_server/tests/test_ietf_l2vpn.py new file mode 100755 index 000000000..7bed8ff5d --- /dev/null +++ b/src/ztp_server/tests/test_ietf_l2vpn.py @@ -0,0 +1,75 @@ +# Copyright 2022-2024 ETSI 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 logging +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from tests.tools.mock_osm.MockOSM import MockOSM +from .Constants import SERVICE_CONNECTION_POINTS_1, SERVICE_CONNECTION_POINTS_2, SERVICE_TYPE +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + mock_service, nbi_service_rest, osm_wim, context_client +) + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'nbi/tests/data/topology-7router-emu-dummy.json' + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) + +def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 + assert len(response.service_ids ) == 0 + assert len(response.slice_ids ) == 0 + +def test_create_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name + osm_wim.create_connectivity_service(SERVICE_TYPE, SERVICE_CONNECTION_POINTS_1) + +def test_get_service_status(osm_wim : MockOSM): # pylint: disable=redefined-outer-name + service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service + osm_wim.get_connectivity_service_status(service_uuid) + +def test_edit_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name + service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service + osm_wim.edit_connectivity_service(service_uuid, SERVICE_CONNECTION_POINTS_2) + +def test_delete_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name + service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service + osm_wim.delete_connectivity_service(service_uuid) + +def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.topology_ids) == 1 + 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() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_l3vpn.py b/src/ztp_server/tests/test_ietf_l3vpn.py new file mode 100755 index 000000000..0f214661f --- /dev/null +++ b/src/ztp_server/tests/test_ietf_l3vpn.py @@ -0,0 +1,113 @@ +# Copyright 2022-2024 ETSI 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, pytest +from typing import Dict +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +) +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from nbi.service.rest_server.RestServer import RestServer +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + do_rest_delete_request, do_rest_get_request, do_rest_post_request, + mock_service, nbi_service_rest, osm_wim, context_client +) + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' +SVC1_DATA_FILE = 'nbi/tests/data/ietf_l3vpn_req_svc1.json' +SVC2_DATA_FILE = 'nbi/tests/data/ietf_l3vpn_req_svc2.json' + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) + +@pytest.fixture(scope='session') +def storage() -> Dict: + yield dict() + +def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 + assert len(response.service_ids ) == 0 + assert len(response.slice_ids ) == 0 + +# pylint: disable=redefined-outer-name, unused-argument +def test_create_svc1(nbi_service_rest : RestServer, storage : Dict): + with open(SVC1_DATA_FILE, 'r', encoding='UTF-8') as f: + svc1_data = json.load(f) + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' + do_rest_post_request(URL, body=svc1_data, logger=LOGGER, expected_status_codes={201}) + storage['svc1-uuid'] = svc1_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] + +# pylint: disable=redefined-outer-name, unused-argument +def test_create_svc2(nbi_service_rest : RestServer, storage : Dict): + with open(SVC2_DATA_FILE, 'r', encoding='UTF-8') as f: + svc2_data = json.load(f) + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' + do_rest_post_request(URL, body=svc2_data, logger=LOGGER, expected_status_codes={201}) + storage['svc2-uuid'] = svc2_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] + +# pylint: disable=redefined-outer-name, unused-argument +def test_get_state_svc1(nbi_service_rest : RestServer, storage : Dict): + assert 'svc1-uuid' in storage + service_uuid = storage['svc1-uuid'] + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) + do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + +# pylint: disable=redefined-outer-name, unused-argument +def test_get_state_svc2(nbi_service_rest : RestServer, storage : Dict): + assert 'svc2-uuid' in storage + service_uuid = storage['svc2-uuid'] + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) + do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + +# pylint: disable=redefined-outer-name, unused-argument +def test_delete_svc1(nbi_service_rest : RestServer, storage : Dict): + assert 'svc1-uuid' in storage + service_uuid = storage['svc1-uuid'] + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) + do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={204}) + +# pylint: disable=redefined-outer-name, unused-argument +def test_delete_svc2(nbi_service_rest : RestServer, storage : Dict): + assert 'svc2-uuid' in storage + service_uuid = storage['svc2-uuid'] + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) + do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={204}) + +def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.topology_ids) == 1 + 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() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_network.py b/src/ztp_server/tests/test_ietf_network.py new file mode 100755 index 000000000..68337d0a8 --- /dev/null +++ b/src/ztp_server/tests/test_ietf_network.py @@ -0,0 +1,105 @@ +# Copyright 2022-2024 ETSI 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 deepdiff, json, logging, operator, os +from typing import Dict +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +) +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from nbi.service.rest_server import RestServer + +# Explicitly state NBI to use PyangBind Renderer for this test +os.environ['IETF_NETWORK_RENDERER'] = 'PYANGBIND' + +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + do_rest_get_request, mock_service, nbi_service_rest, osm_wim, context_client +) + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' +TARGET_DATA_FILE = 'nbi/tests/data/test-ietf-network.json' + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) + +def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 + assert len(response.service_ids ) == 0 + assert len(response.slice_ids ) == 0 + +def sort_data(data : Dict) -> None: + if 'ietf-network:networks' not in data: return + if 'network' not in data['ietf-network:networks']: return + data['ietf-network:networks']['network'] = sorted( + data['ietf-network:networks']['network'], + key=operator.itemgetter('network-id') + ) + for network in data['ietf-network:networks']['network']: + if 'node' in network: + network['node'] = sorted( + network['node'], + key=operator.itemgetter('node-id') + ) + + for node in network['node']: + if 'ietf-network-topology:termination-point' in node: + node['ietf-network-topology:termination-point'] = sorted( + node['ietf-network-topology:termination-point'], + key=operator.itemgetter('tp-id') + ) + + if 'ietf-network-topology:link' in network: + network['ietf-network-topology:link'] = sorted( + network['ietf-network-topology:link'], + key=operator.itemgetter('link-id') + ) + +def test_rest_get_networks(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + with open(TARGET_DATA_FILE, 'r', encoding='UTF-8') as f: + target_data = json.load(f) + URL = '/restconf/data/ietf-network:networks' + retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + sort_data(retrieved_data) + sort_data(target_data) + diff_data = deepdiff.DeepDiff(target_data, retrieved_data) + LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) + assert len(diff_data) == 0 + +def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.topology_ids) == 1 + 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() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_slice.py b/src/ztp_server/tests/test_slice.py new file mode 100755 index 000000000..fe112e6fc --- /dev/null +++ b/src/ztp_server/tests/test_slice.py @@ -0,0 +1,125 @@ +# Copyright 2022-2024 ETSI 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, random, uuid +from typing import Dict, Tuple +from nbi.service.rest_server.nbi_plugins.ietf_network_slice.bindings.network_slice_services import ( + NetworkSliceServices +) + +# R1 emulated devices +# Port 13-0 is Optical +# Port 13-1 is Copper +R1_UUID = "ed2388eb-5fb9-5888-a4f4-160267d3e19b" +R1_PORT_13_0_UUID_OPTICAL = "20440915-1a6c-5e7b-a80f-b0e0e51f066d" +R1_PORT_13_1_UUID_COPPER = "ff900d5d-2ac0-576c-9628-a2d016681f9d" + +# R2 emulated devices +# Port 13-0 is Optical +# Port 13-1 is Copper +R2_UUID = "49ce0312-1274-523b-97b8-24d0eca2d72d" +R2_PORT_13_0_UUID_OPTICAL = "214618cb-b63b-5e66-84c2-45c1c016e5f0" +R2_PORT_13_1_UUID_COPPER = "4e0f7fb4-5d22-56ad-a00e-20bffb4860f9" + +# R3 emulated devices +# Port 13-0 is Optical +# Port 13-1 is Copper +R3_UUID = "3bc8e994-a3b9-5f60-9c77-6608b1d08313" +R3_PORT_13_0_UUID_OPTICAL = "da5196f5-d651-5def-ada6-50ed6430279d" +R3_PORT_13_1_UUID_COPPER = "43d221fa-5701-5740-a129-502131f5bda2" + +# R4 emulated devices +# Port 13-0 is Optical +# Port 13-1 is Copper +R4_UUID = "b43e6361-2573-509d-9a88-1793e751b10d" +R4_PORT_13_0_UUID_OPTICAL = "241b74a7-8677-595c-ad65-cc9093c1e341" +R4_PORT_13_1_UUID_COPPER = "c57abf46-caaf-5954-90cc-1fec0a69330e" + +node_dict = {R1_PORT_13_1_UUID_COPPER: R1_UUID, + R2_PORT_13_1_UUID_COPPER: R2_UUID, + R3_PORT_13_1_UUID_COPPER: R3_UUID, + R4_PORT_13_1_UUID_COPPER: R4_UUID} +list_endpoints = [R1_PORT_13_1_UUID_COPPER, + R2_PORT_13_1_UUID_COPPER, + R3_PORT_13_1_UUID_COPPER, + R4_PORT_13_1_UUID_COPPER] + +list_availability= [99, 99.9, 99.99, 99.999, 99.9999] +list_bw = [10, 40, 50, 100, 150, 200, 400] +list_owner = ["Telefonica", "CTTC", "Telenor", "ADVA", "Ubitech", "ATOS"] + +URL_POST = "/restconf/data/ietf-network-slice-service:ietf-nss/network-slice-services" +URL_DELETE = "/restconf/data/ietf-network-slice-service:ietf-nss/network-slice-services/slice-service=" + +def generate_request(seed: str) -> Tuple[Dict, str]: + + ns = NetworkSliceServices() + + # Slice 1 + suuid = str(uuid.uuid5(uuid.NAMESPACE_DNS, str(seed))) + slice1 = ns.slice_service[suuid] + slice1.service_description = "Test slice for OFC 2023 demo" + slice1.status().admin_status().status = "Planned" # TODO not yet mapped + + # SDPS: R1 optical to R3 optical + sdps1 = slice1.sdps().sdp + while True: + ep1_uuid = random.choice(list_endpoints) + ep2_uuid = random.choice(list_endpoints) + if ep1_uuid != ep2_uuid: + break + + sdps1[ep1_uuid].node_id = node_dict.get(ep1_uuid) + sdps1[ep2_uuid].node_id = node_dict.get(ep2_uuid) + + # Connectivity group: Connection construct and 2 sla constrains: + # - Bandwidth + # - Availability + cg_uuid = str(uuid.uuid4()) + cg = slice1.connection_groups().connection_group + cg1 = cg[cg_uuid] + + cc1 = cg1.connectivity_construct[0] + cc1.cc_id = 5 + p2p = cc1.connectivity_construct_type.p2p() + p2p.p2p_sender_sdp = ep1_uuid + p2p.p2p_receiver_sdp = ep2_uuid + + slo_custom = cc1.slo_sle_policy.custom() + metric_bounds = slo_custom.service_slo_sle_policy().metric_bounds().metric_bound + + # SLO Bandwidth + slo_bandwidth = metric_bounds["service-slo-two-way-bandwidth"] + slo_bandwidth.value_description = "Guaranteed bandwidth" + slo_bandwidth.bound = int(random.choice(list_bw)) + slo_bandwidth.metric_unit = "Gbps" + + # SLO Availability + slo_availability = metric_bounds["service-slo-availability"] + slo_availability.value_description = "Guaranteed availability" + slo_availability.metric_unit = "percentage" + slo_availability.bound = random.choice(list_availability) + + json_request = {"data": ns.to_json()} + + #Last, add name and owner manually + list_name_owner = [{"tag-type": "owner", "value": random.choice(list_owner)}] + json_request["data"]["ietf-network-slice-service:network-slice-services"]["slice-service"][0]["service-tags"] = list_name_owner + + return (json_request, suuid) + + +if __name__ == "__main__": + request = generate_request(123) + print(json.dumps(request[0], sort_keys=True, indent=4)) diff --git a/src/ztp_server/tests/test_tfs_api.py b/src/ztp_server/tests/test_tfs_api.py new file mode 100755 index 000000000..eab2f8d9b --- /dev/null +++ b/src/ztp_server/tests/test_tfs_api.py @@ -0,0 +1,217 @@ +# Copyright 2022-2024 ETSI 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 logging, urllib +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +) +from common.tools.object_factory.Context import json_context_id +from common.type_checkers.Assertions import ( + validate_connection, validate_connection_ids, validate_connections, + validate_context, validate_context_ids, validate_contexts, + validate_device, validate_device_ids, validate_devices, + validate_link, validate_link_ids, validate_links, + validate_service, validate_service_ids, validate_services, + validate_slice, validate_slice_ids, validate_slices, + validate_topologies, validate_topology, validate_topology_ids +) +from context.client.ContextClient import ContextClient +from nbi.service.rest_server.RestServer import RestServer +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + mock_service, nbi_service_rest, context_client, + do_rest_get_request +) + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'nbi/tests/data/tfs_api_dummy.json' + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) + + +# ----- Prepare Environment -------------------------------------------------------------------------------------------- + +def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 + assert len(response.service_ids ) == 3 + assert len(response.slice_ids ) == 1 + + +# ----- Context -------------------------------------------------------------------------------------------------------- + +def test_rest_get_context_ids(nbi_service_rest: RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/context_ids') + validate_context_ids(reply) + +def test_rest_get_contexts(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/contexts') + validate_contexts(reply) + +def test_rest_get_context(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}'.format(context_uuid)) + validate_context(reply) + + +# ----- Topology ------------------------------------------------------------------------------------------------------- + +def test_rest_get_topology_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/topology_ids'.format(context_uuid)) + validate_topology_ids(reply) + +def test_rest_get_topologies(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/topologies'.format(context_uuid)) + validate_topologies(reply) + +def test_rest_get_topology(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + topology_uuid = urllib.parse.quote(DEFAULT_TOPOLOGY_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/topology/{:s}'.format(context_uuid, topology_uuid)) + validate_topology(reply, num_devices=3, num_links=6) + + +# ----- Device --------------------------------------------------------------------------------------------------------- + +def test_rest_get_device_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/device_ids') + validate_device_ids(reply) + +def test_rest_get_devices(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/devices') + validate_devices(reply) + +def test_rest_get_device(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + device_uuid = urllib.parse.quote('R1', safe='') + reply = do_rest_get_request('/tfs-api/device/{:s}'.format(device_uuid)) + validate_device(reply) + + +# ----- Link ----------------------------------------------------------------------------------------------------------- + +def test_rest_get_link_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/link_ids') + validate_link_ids(reply) + +def test_rest_get_links(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/links') + validate_links(reply) + +def test_rest_get_link(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + link_uuid = urllib.parse.quote('R1/502==R2/501', safe='') + reply = do_rest_get_request('/tfs-api/link/{:s}'.format(link_uuid)) + validate_link(reply) + + +# ----- Service -------------------------------------------------------------------------------------------------------- + +def test_rest_get_service_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/service_ids'.format(context_uuid)) + validate_service_ids(reply) + +def test_rest_get_services(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/services'.format(context_uuid)) + validate_services(reply) + +def test_rest_get_service(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') + reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}'.format(context_uuid, service_uuid)) + validate_service(reply) + + +# ----- Slice ---------------------------------------------------------------------------------------------------------- + +def test_rest_get_slice_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/slice_ids'.format(context_uuid)) + validate_slice_ids(reply) + +def test_rest_get_slices(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/slices'.format(context_uuid)) + validate_slices(reply) + +def test_rest_get_slice(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + slice_uuid = urllib.parse.quote('SLC:R1-R2-R3', safe='') + reply = do_rest_get_request('/tfs-api/context/{:s}/slice/{:s}'.format(context_uuid, slice_uuid)) + validate_slice(reply) + + +# ----- Connection ----------------------------------------------------------------------------------------------------- + +def test_rest_get_connection_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') + reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}/connection_ids'.format(context_uuid, service_uuid)) + validate_connection_ids(reply) + +def test_rest_get_connections(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') + reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}/connections'.format(context_uuid, service_uuid)) + validate_connections(reply) + +def test_rest_get_connection(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + connection_uuid = urllib.parse.quote('CON:R1/200==R2/200:1', safe='') + reply = do_rest_get_request('/tfs-api/connection/{:s}'.format(connection_uuid)) + validate_connection(reply) + +# ----- Policy --------------------------------------------------------------------------------------------------------- + +#def test_rest_get_policyrule_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +# reply = do_rest_get_request('/tfs-api/policyrule_ids') +# validate_policyrule_ids(reply) + +#def test_rest_get_policyrules(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +# reply = do_rest_get_request('/tfs-api/policyrules') +# validate_policyrules(reply) + +#def test_rest_get_policyrule(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +# policyrule_uuid_quoted = urllib.parse.quote(policyrule_uuid, safe='') +# reply = do_rest_get_request('/tfs-api/policyrule/{:s}'.format(policyrule_uuid_quoted)) +# validate_policyrule(reply) + + +# ----- Cleanup Environment -------------------------------------------------------------------------------------------- + +def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.topology_ids) == 1 + assert len(response.service_ids ) == 3 + assert len(response.slice_ids ) == 1 + + # Load descriptors and validate the base scenario + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) + descriptor_loader.validate() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_yang_acl.py b/src/ztp_server/tests/test_yang_acl.py new file mode 100755 index 000000000..2f45c50bc --- /dev/null +++ b/src/ztp_server/tests/test_yang_acl.py @@ -0,0 +1,104 @@ +# Copyright 2022-2024 ETSI 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 copy, json, libyang, logging, os +from typing import Dict, List, Optional + +LOGGER = logging.getLogger(__name__) + +YANG_DIR = os.path.join(os.path.dirname(__file__), 'yang') +YANG_MODULES = [ + 'ietf-yang-types', + 'ietf-interfaces', + 'iana-if-type', + 'ietf-access-control-list', +] + +class YangValidator: + def __init__(self) -> None: + self._yang_context = libyang.Context(YANG_DIR) + for module_name in YANG_MODULES: + LOGGER.info('Loading module: {:s}'.format(str(module_name))) + yang_module = self._yang_context.load_module(module_name) + yang_module.feature_enable_all() + yang_module_prefix = yang_module.prefix() + LOGGER.info(' Prefix: {:s}'.format(str(yang_module_prefix))) + + def parse_to_dict(self, message : Dict, interface_names : List[str]) -> Dict: + interfaces = self._yang_context.create_data_path('/ietf-interfaces:interfaces') + for if_index,interface_name in enumerate(interface_names): + if_path = 'interface[name="{:s}"]'.format(str(interface_name)) + interface = interfaces.create_path(if_path) + interface.create_path('if-index', if_index + 1) + interface.create_path('type', 'iana-if-type:ethernetCsmacd') + interface.create_path('admin-status', 'up') + interface.create_path('oper-status', 'up') + statistics = interface.create_path('statistics') + statistics.create_path('discontinuity-time', '2024-07-11T10:00:00.000000Z') + + message = copy.deepcopy(message) + message['ietf-interfaces:interfaces'] = interfaces.print_dict()['interfaces'] + + dnode : Optional[libyang.DNode] = self._yang_context.parse_data_mem( + json.dumps(message), 'json', validate_present=True, strict=True + ) + if dnode is None: raise Exception('Unable to parse Message({:s})'.format(str(message))) + message = dnode.print_dict() + dnode.free() + interfaces.free() + return message + + def destroy(self) -> None: + self._yang_context.destroy() + self._yang_context = None + +def main() -> None: + import uuid # pylint: disable=import-outside-toplevel + logging.basicConfig(level=logging.DEBUG) + + interface_names = {'200', '500', str(uuid.uuid4()), str(uuid.uuid4())} + ACL_RULE = {"ietf-access-control-list:acls": { + "acl": [{ + "name": "sample-ipv4-acl", "type": "ipv4-acl-type", + "aces": {"ace": [{ + "name": "rule1", + "matches": { + "ipv4": { + "source-ipv4-network": "128.32.10.6/24", + "destination-ipv4-network": "172.10.33.0/24", + "dscp": 18 + }, + "tcp": { + "source-port": {"operator": "eq", "port": 1444}, + "destination-port": {"operator": "eq", "port": 1333}, + "flags": "syn" + } + }, + "actions": {"forwarding": "drop"} + }]} + }], + "attachment-points": {"interface": [{ + "interface-id": "200", + "ingress": {"acl-sets": {"acl-set": [{"name": "sample-ipv4-acl"}]}} + }] + }}} + + yang_validator = YangValidator() + request_data = yang_validator.parse_to_dict(ACL_RULE, list(interface_names)) + yang_validator.destroy() + + LOGGER.info('request_data = {:s}'.format(str(request_data))) + +if __name__ == '__main__': + main() -- GitLab From 11b4748c60ca1dd0526ab31857ac6d4b05e9d0d6 Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Thu, 19 Dec 2024 11:57:22 +0100 Subject: [PATCH 020/213] Second Draft --- proto/ztp_server.proto | 24 +++++++++++++-- src/ztp_server/client/ZtpClient.py | 4 +-- src/ztp_server/service/ZtpServerService.py | 2 +- .../service/ZtpServerServiceServicerImpl.py | 29 ++++++++++++++----- src/ztp_server/service/__main__.py | 1 + 5 files changed, 46 insertions(+), 14 deletions(-) diff --git a/proto/ztp_server.proto b/proto/ztp_server.proto index 37ccc71d3..6c575df11 100755 --- a/proto/ztp_server.proto +++ b/proto/ztp_server.proto @@ -15,9 +15,27 @@ syntax = "proto3"; package ztpServer; -import "context.proto"; +//import "context.proto"; service ZtpServerService { - rpc GetProvisioningScript (context.ProvisioningScriptName ) returns (context.ProvisioningScript ) {} - rpc GetZtpProvisioning (context.ZtpFileName ) returns (context.ZtpFile ) {} + rpc GetProvisioningScript (ProvisioningScriptName ) returns (ProvisioningScript ) {} + rpc GetZtpProvisioning (ZtpFileName ) returns (ZtpFile ) {} +} + + +// Define the request message for both methods +message ProvisioningScriptName { + string input = 1; +} + +message ZtpFileName { + string input = 1; +} + +message ProvisioningScript { + string script = 1; +} + +message ZtpFile { + string json = 1; } diff --git a/src/ztp_server/client/ZtpClient.py b/src/ztp_server/client/ZtpClient.py index a790b76e2..5e5737857 100755 --- a/src/ztp_server/client/ZtpClient.py +++ b/src/ztp_server/client/ZtpClient.py @@ -15,7 +15,7 @@ import grpc, logging from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_service_port_grpc -from common.proto.ztpServer_pb2_grpc import ztpServerServiceStub #TODO +from common.proto.ztp_server_pb2_grpc import ztpServerServiceStub from common.proto.context_pb2 import ( ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) from common.tools.client.RetryDecorator import retry, delay_exponential @@ -39,7 +39,7 @@ class ZtpClient: def connect(self): self.channel = grpc.insecure_channel(self.endpoint) - self.stub = ztpServerServiceStub(self.channel) #TODO + self.stub = ztpServerServiceStub(self.channel) def close(self): if self.channel is not None: self.channel.close() diff --git a/src/ztp_server/service/ZtpServerService.py b/src/ztp_server/service/ZtpServerService.py index 2b4da4f93..aba4aee94 100755 --- a/src/ztp_server/service/ZtpServerService.py +++ b/src/ztp_server/service/ZtpServerService.py @@ -14,7 +14,7 @@ from common.Constants import ServiceNameEnum from common.Settings import get_service_port_grpc -from common.proto.ztpServer_pb2_grpc import add_Ztp_ServerServiceServicer_to_server +from common.proto.ztp_server_pb2_grpc import add_Ztp_ServerServiceServicer_to_server from common.tools.service.GenericGrpcService import GenericGrpcService from ztp_server.service.ZtpServerServiceServicerImpl import ZtpServerServiceServicerImpl diff --git a/src/ztp_server/service/ZtpServerServiceServicerImpl.py b/src/ztp_server/service/ZtpServerServiceServicerImpl.py index 009cda922..015f958f4 100755 --- a/src/ztp_server/service/ZtpServerServiceServicerImpl.py +++ b/src/ztp_server/service/ZtpServerServiceServicerImpl.py @@ -12,11 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -import grpc, logging +import grpc, logging, json from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method from common.proto.context_pb2 import ( ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) -from common.proto.ztpServer_pb2_grpc import ztpServerServiceServicer +from common.proto.ztp_server_pb2_grpc import ztpServerServiceServicer LOGGER = logging.getLogger(__name__) @@ -29,12 +29,25 @@ class ZtpServerServiceServicerImpl(ztpServerServiceServicer): @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetZtpProvisioning(self, request : ProvisioningScriptName, context : grpc.ServicerContext) -> ProvisioningScript: - LOGGER.warning('NOT IMPLEMENTED') - return ProvisioningScript() + try: + filePath = '../data/' + ProvisioningScriptName + with open(filePath, 'r') as provisioning_file: + provisioning_content = provisioning_file.read() + return ztpServerServiceServicer.ProvisioningScript(script=provisioning_content) + except FileNotFoundError: + context.set_code(grpc.StatusCode.NOT_FOUND) + context.set_details('File not found') + return ztpServerServiceServicer.ProvisioningScript() + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetZtpProvisioning(self, request : ZtpFileName, context : grpc.ServicerContext) -> ZtpFile: - LOGGER.warning('NOT IMPLEMENTED') - return ZtpFile() - - + try: + filePath = '../data/' + ZtpFileName + with open(filePath, 'r') as json_file: + json_content = json_file.read() + return ztpServerServiceServicer.ZtpFile(json=json_content) + except FileNotFoundError: + context.set_code(grpc.StatusCode.NOT_FOUND) + context.set_details('File not found') + return ztpServerServiceServicer.ZtpFile(json=json_content) \ No newline at end of file diff --git a/src/ztp_server/service/__main__.py b/src/ztp_server/service/__main__.py index 25e8605d3..55bd5f187 100755 --- a/src/ztp_server/service/__main__.py +++ b/src/ztp_server/service/__main__.py @@ -21,6 +21,7 @@ from common.Settings import ( ) from .ZtpServerService import ZtpServerService from .rest_server.RestServer import RestServer +from .rest_server.ztpServer_plugins.tfs_api import register_tfs_api from .context_subscription import register_context_subscription -- GitLab From d58af1579e2380804bfd187609a849f8019d287a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 24 Dec 2024 16:27:36 +0000 Subject: [PATCH 021/213] Temporarily disable CI/CD pipeline --- .gitlab-ci.yml | 66 ++++++++++++++++++++-------------------- src/tests/.gitlab-ci.yml | 16 +++++----- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8d55be942..ce9084631 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,39 +21,39 @@ 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/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/opticalcontroller/.gitlab-ci.yml' - # - local: '/src/ztp/.gitlab-ci.yml' - # - local: '/src/policy/.gitlab-ci.yml' - #- local: '/src/automation/.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' - #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' - # - local: '/src/slice/.gitlab-ci.yml' - #- 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/kpi_manager/.gitlab-ci.yml' - # - local: '/src/kpi_value_api/.gitlab-ci.yml' - # - local: '/src/kpi_value_writer/.gitlab-ci.yml' - # - local: '/src/telemetry/.gitlab-ci.yml' - # - local: '/src/analytics/.gitlab-ci.yml' - # - local: '/src/qos_profile/.gitlab-ci.yml' - - local: '/src/vnt_manager/.gitlab-ci.yml' - - local: '/src/e2e_orchestrator/.gitlab-ci.yml' +# #- local: '/manifests/.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/opticalcontroller/.gitlab-ci.yml' +# - local: '/src/ztp/.gitlab-ci.yml' +# - local: '/src/policy/.gitlab-ci.yml' +# #- local: '/src/automation/.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' +# #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' +# - local: '/src/slice/.gitlab-ci.yml' +# #- 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/kpi_manager/.gitlab-ci.yml' +# - local: '/src/kpi_value_api/.gitlab-ci.yml' +# - local: '/src/kpi_value_writer/.gitlab-ci.yml' +# - local: '/src/telemetry/.gitlab-ci.yml' +# - local: '/src/analytics/.gitlab-ci.yml' +# - local: '/src/qos_profile/.gitlab-ci.yml' +# - local: '/src/vnt_manager/.gitlab-ci.yml' +# - local: '/src/e2e_orchestrator/.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 744d539eb..ec8ab77d9 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -14,11 +14,11 @@ # include the individual .gitlab-ci.yml of each end-to-end integration test include: - # - local: '/src/tests/ofc22/.gitlab-ci.yml' - #- local: '/src/tests/oeccpsc22/.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' - # - local: '/src/tests/eucnc24/.gitlab-ci.yml' - - local: '/src/tests/ecoc24/.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/nfvsdn22/.gitlab-ci.yml' +# #- local: '/src/tests/ofc23/.gitlab-ci.yml' +# - local: '/src/tests/ofc24/.gitlab-ci.yml' +# - local: '/src/tests/eucnc24/.gitlab-ci.yml' +# - local: '/src/tests/ecoc24/.gitlab-ci.yml' -- GitLab From 9ebc0ca737216902ca8ed20b78ca71a37ecb061a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 24 Dec 2024 16:28:24 +0000 Subject: [PATCH 022/213] ECOC24 test: - Code styling - Cleanup --- src/tests/ecoc24/.gitlab-ci.yml | 2 +- src/tests/ecoc24/Dockerfile | 42 +++++++------------ src/tests/ecoc24/deploy_specs_e2e.sh | 8 +--- src/tests/ecoc24/deploy_specs_ip.sh | 7 +--- src/tests/ecoc24/deploy_specs_opt.sh | 17 ++++---- src/tests/ecoc24/tests/__init__.py | 2 +- .../tests/test_functional_bootstrap_e2e.py | 2 +- .../tests/test_functional_bootstrap_ip.py | 2 +- .../tests/test_functional_bootstrap_opt.py | 2 +- 9 files changed, 32 insertions(+), 52 deletions(-) diff --git a/src/tests/ecoc24/.gitlab-ci.yml b/src/tests/ecoc24/.gitlab-ci.yml index e1b56eaec..8e3f7e71a 100644 --- a/src/tests/ecoc24/.gitlab-ci.yml +++ b/src/tests/ecoc24/.gitlab-ci.yml @@ -1,4 +1,4 @@ -# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI 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/tests/ecoc24/Dockerfile b/src/tests/ecoc24/Dockerfile index 4a2d4e043..8fca59f57 100644 --- a/src/tests/ecoc24/Dockerfile +++ b/src/tests/ecoc24/Dockerfile @@ -1,4 +1,4 @@ -# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI 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. @@ -22,11 +22,6 @@ RUN apt-get --yes --quiet --quiet update && \ # Set Python to show logs as they occur ENV PYTHONUNBUFFERED=0 -# Download the gRPC health probe -RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ - wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ - chmod +x /bin/grpc_health_probe - # Get generic Python packages RUN python3 -m pip install --upgrade pip RUN python3 -m pip install --upgrade setuptools wheel @@ -85,23 +80,18 @@ COPY src/tests/ecoc24/descriptors/descriptor_opt.json ./tests/ecoc24/descriptors COPY src/tests/ecoc24/descriptors/descriptor_e2e.json ./tests/ecoc24/descriptors/descriptor_e2e.json COPY src/tests/ecoc24/tests/. ./tests/ecoc24/tests/ -# RUN tee ./run_tests.sh <<EOF -#!/bin/bash -#source /var/teraflow/tfs_runtime_env_vars.sh -#export PYTHONPATH=/var/teraflow -#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_opt.py --junitxml=/opt/results/report_bootstrap_opt.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_ip.py --junitxml=/opt/results/report_bootstrap_ip.xml -#sleep 5 -#pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_e2e.py --junitxml=/opt/results/report_bootstrap_e2e.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service.py --junitxml=/opt/results/report_create_service.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service.py --junitxml=/opt/results/report_delete_service.xml -#pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml -#EOF -#RUN chmod ug+x ./run_tests.sh - - - - - -# Run the tests -# ENTRYPOINT ["./run_tests.sh"] +RUN tee ./run_tests.sh <<EOF +!/bin/bash +source /var/teraflow/tfs_runtime_env_vars.sh +export PYTHONPATH=/var/teraflow +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_opt.py --junitxml=/opt/results/report_bootstrap_opt.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_ip.py --junitxml=/opt/results/report_bootstrap_ip.xml +sleep 5 +pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_e2e.py --junitxml=/opt/results/report_bootstrap_e2e.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service.py --junitxml=/opt/results/report_create_service.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service.py --junitxml=/opt/results/report_delete_service.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml +EOF +RUN chmod ug+x ./run_tests.sh + +#ENTRYPOINT ["./run_tests.sh"] diff --git a/src/tests/ecoc24/deploy_specs_e2e.sh b/src/tests/ecoc24/deploy_specs_e2e.sh index 2c4f165dc..2792f9fd3 100755 --- a/src/tests/ecoc24/deploy_specs_e2e.sh +++ b/src/tests/ecoc24/deploy_specs_e2e.sh @@ -66,7 +66,7 @@ export TFS_COMPONENTS="context device pathcomp service nbi webui" export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator" # Uncomment to activate VNT Manager -# export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager" +#export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager" # Uncomment to activate DLT and Interdomain #export TFS_COMPONENTS="${TFS_COMPONENTS} interdomain dlt" @@ -129,15 +129,12 @@ export CRDB_USERNAME="tfs" # Set the database user's password to be used by Context. export CRDB_PASSWORD="tfs123" -# Set the database name to be used by Context. -export CRDB_DATABASE="tfs_e2e" - # Set CockroachDB installation mode to 'single'. This option is convenient for development and testing. # See ./deploy/all.sh or ./deploy/crdb.sh for additional details export CRDB_DEPLOY_MODE="single" # Disable flag for dropping database, if it exists. -export CRDB_DROP_DATABASE_IF_EXISTS="NO" +export CRDB_DROP_DATABASE_IF_EXISTS="YES" # Disable flag for re-deploying CockroachDB from scratch. export CRDB_REDEPLOY="" @@ -214,4 +211,3 @@ export KFK_SERVER_PORT="9092" # Set the flag to YES for redeploying of Apache Kafka export KFK_REDEPLOY="" - \ No newline at end of file diff --git a/src/tests/ecoc24/deploy_specs_ip.sh b/src/tests/ecoc24/deploy_specs_ip.sh index 14abb933c..1e105557b 100755 --- a/src/tests/ecoc24/deploy_specs_ip.sh +++ b/src/tests/ecoc24/deploy_specs_ip.sh @@ -63,7 +63,7 @@ export TFS_COMPONENTS="context device pathcomp service nbi webui" #export TFS_COMPONENTS="${TFS_COMPONENTS} forecaster" # Uncomment to activate E2E Orchestrator -# export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator" +#export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator" # Uncomment to activate VNT Manager export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager" @@ -129,15 +129,12 @@ export CRDB_USERNAME="tfs" # Set the database user's password to be used by Context. export CRDB_PASSWORD="tfs123" -# Set the database name to be used by Context. -export CRDB_DATABASE="tfs_ip" - # Set CockroachDB installation mode to 'single'. This option is convenient for development and testing. # See ./deploy/all.sh or ./deploy/crdb.sh for additional details export CRDB_DEPLOY_MODE="single" # Disable flag for dropping database, if it exists. -export CRDB_DROP_DATABASE_IF_EXISTS="NO" +export CRDB_DROP_DATABASE_IF_EXISTS="YES" # Disable flag for re-deploying CockroachDB from scratch. export CRDB_REDEPLOY="" diff --git a/src/tests/ecoc24/deploy_specs_opt.sh b/src/tests/ecoc24/deploy_specs_opt.sh index 0622e2581..ca650bb65 100755 --- a/src/tests/ecoc24/deploy_specs_opt.sh +++ b/src/tests/ecoc24/deploy_specs_opt.sh @@ -63,10 +63,10 @@ export TFS_COMPONENTS="context device pathcomp service nbi webui" #export TFS_COMPONENTS="${TFS_COMPONENTS} forecaster" # Uncomment to activate E2E Orchestrator -# export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator" +#export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator" # Uncomment to activate VNT Manager -# export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager" +#export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager" # Uncomment to activate DLT and Interdomain #export TFS_COMPONENTS="${TFS_COMPONENTS} interdomain dlt" @@ -129,9 +129,6 @@ export CRDB_USERNAME="tfs" # Set the database user's password to be used by Context. export CRDB_PASSWORD="tfs123" -# Set the database name to be used by Context. -export CRDB_DATABASE="tfs_opt" - # Set CockroachDB installation mode to 'single'. This option is convenient for development and testing. # See ./deploy/all.sh or ./deploy/crdb.sh for additional details export CRDB_DEPLOY_MODE="single" @@ -149,10 +146,10 @@ export CRDB_REDEPLOY="" export NATS_NAMESPACE="nats-opt" # Set the external port NATS Client interface will be exposed to. -export NATS_EXT_PORT_CLIENT="4224" +export NATS_EXT_PORT_CLIENT="4225" # Set the external port NATS HTTP Mgmt GUI interface will be exposed to. -export NATS_EXT_PORT_HTTP="8224" +export NATS_EXT_PORT_HTTP="8225" # Set NATS installation mode to 'single'. This option is convenient for development and testing. # See ./deploy/all.sh or ./deploy/nats.sh for additional details @@ -168,13 +165,13 @@ export NATS_REDEPLOY="" export QDB_NAMESPACE="qdb-opt" # Set the external port QuestDB Postgre SQL interface will be exposed to. -export QDB_EXT_PORT_SQL="8814" +export QDB_EXT_PORT_SQL="8815" # Set the external port QuestDB Influx Line Protocol interface will be exposed to. -export QDB_EXT_PORT_ILP="9012" +export QDB_EXT_PORT_ILP="9013" # Set the external port QuestDB HTTP Mgmt GUI interface will be exposed to. -export QDB_EXT_PORT_HTTP="9002" +export QDB_EXT_PORT_HTTP="9003" # Set the database username to be used for QuestDB. export QDB_USERNAME="admin" diff --git a/src/tests/ecoc24/tests/__init__.py b/src/tests/ecoc24/tests/__init__.py index 3ee6f7071..53d5157f7 100644 --- a/src/tests/ecoc24/tests/__init__.py +++ b/src/tests/ecoc24/tests/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI 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/tests/ecoc24/tests/test_functional_bootstrap_e2e.py b/src/tests/ecoc24/tests/test_functional_bootstrap_e2e.py index cd72f5e94..27648969b 100644 --- a/src/tests/ecoc24/tests/test_functional_bootstrap_e2e.py +++ b/src/tests/ecoc24/tests/test_functional_bootstrap_e2e.py @@ -1,4 +1,4 @@ -# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI 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/tests/ecoc24/tests/test_functional_bootstrap_ip.py b/src/tests/ecoc24/tests/test_functional_bootstrap_ip.py index 692cd41e7..668213a56 100644 --- a/src/tests/ecoc24/tests/test_functional_bootstrap_ip.py +++ b/src/tests/ecoc24/tests/test_functional_bootstrap_ip.py @@ -1,4 +1,4 @@ -# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI 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/tests/ecoc24/tests/test_functional_bootstrap_opt.py b/src/tests/ecoc24/tests/test_functional_bootstrap_opt.py index 2f400c346..f3097519a 100644 --- a/src/tests/ecoc24/tests/test_functional_bootstrap_opt.py +++ b/src/tests/ecoc24/tests/test_functional_bootstrap_opt.py @@ -1,4 +1,4 @@ -# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI 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. -- GitLab From d966bfefb55322e3585a411540e8fb4506fda287 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 24 Dec 2024 16:28:42 +0000 Subject: [PATCH 023/213] VNT Manager component: - Code cleanup --- .../service/VNTManagerServiceServicerImpl.py | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py index 79ff1b752..46a012560 100644 --- a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py +++ b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py @@ -59,12 +59,11 @@ class VNTMEventDispatcher(threading.Thread): def stop(self): self._terminate.set() - def send_msg(self, msg): try: self.websocket.send(msg) except Exception as e: - LOGGER.info(e) + LOGGER.exception('Unable to send message') def recv_msg(self): message = self.websocket.recv() @@ -72,27 +71,27 @@ class VNTMEventDispatcher(threading.Thread): def run(self) -> None: events_collector = EventsCollector( - context_client, log_events_received=True, + context_client, + log_events_received = True, activate_context_collector = True, activate_topology_collector = True, activate_device_collector = True, activate_link_collector = True, activate_service_collector = False, activate_slice_collector = False, - activate_connection_collector = False,) + activate_connection_collector = False, + ) events_collector.start() - - url = "ws://" + str(self.host) + ":" + str(self.port) - LOGGER.debug('Connecting to {}'.format(url)) - try: - LOGGER.info("Connecting to events server...: {}".format(url)) + url = "ws://" + str(self.host) + ":" + str(self.port) + LOGGER.info("Connecting to events server...: {:s}".format(url)) self.websocket = connect(url) except Exception as ex: - LOGGER.error(f'Error connecting to {url}\n\t{ex}') + MSG = 'Error connecting to {:s}' + LOGGER.exception(MSG.format(str(url))) else: - LOGGER.info('Connected to {}'.format(url)) + LOGGER.info('Connected to {:s}'.format(url)) context_id = json_context_id(DEFAULT_CONTEXT_NAME) topology_id = json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id) @@ -155,7 +154,8 @@ class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): link = Link(**message_json) context_client.SetLink(link) except Exception as e: - LOGGER.error(f'Exception setting virtual link={request.link_id.link_uuid.uuid}\n\t{e}') + MSG = 'Exception setting virtual link={:s}') + LOGGER.exception(MSG.format(str(request.link_id.link_uuid.uuid))) return request.link_id @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) @@ -171,8 +171,8 @@ class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): LOGGER.info('Removed') except Exception as e: - msg_error = 'Exception removing virtual link={}\n\t{}'.format(request.link_uuid.uuid, e) - LOGGER.error(msg_error) + MSG = 'Exception removing virtual link={:s}' + LOGGER.exception(MSG.format(str(request.link_uuid.uuid))) return msg_error else: context_client.RemoveLink(request) -- GitLab From c96fa8bcb1f290308c356168b879d54334d5dfc4 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 24 Dec 2024 17:01:42 +0000 Subject: [PATCH 024/213] Moving features outside this issue --- .../service/database/models/enums/LinkType.py | 32 ----------- .../nbi_plugins/tfs_api/Resources.py | 21 ++------ .../nbi_plugins/tfs_api/__init__.py | 53 +++++++++---------- 3 files changed, 29 insertions(+), 77 deletions(-) delete mode 100644 src/context/service/database/models/enums/LinkType.py diff --git a/src/context/service/database/models/enums/LinkType.py b/src/context/service/database/models/enums/LinkType.py deleted file mode 100644 index 1ac1a547f..000000000 --- a/src/context/service/database/models/enums/LinkType.py +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 2022-2024 ETSI 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 enum, functools -from common.proto.context_pb2 import LinkTypeEnum -from ._GrpcToEnum import grpc_to_enum - -# IMPORTANT: Entries of enum class ORM_DeviceDriverEnum should be named as in -# the proto files removing the prefixes. For example, proto item -# DeviceDriverEnum.DEVICEDRIVER_OPENCONFIG should be included as -# OPENCONFIG. If item name does not match, automatic mapping of -# proto enums to database enums will fail. -class ORM_LinkTypeEnum(enum.Enum): - UNKNOWN = LinkTypeEnum.LINKTYPE_UNKNOWN - COPPER = LinkTypeEnum.LINKTYPE_COPPER - VIRTUAL_COPPER = LinkTypeEnum.LINKTYPE_VIRTUAL_COPPER - OPTICAL = LinkTypeEnum.LINKTYPE_OPTICAL - VIRTUAL_OPTICAL = LinkTypeEnum.LINKTYPE_VIRTUAL_OPTICAL - -grpc_to_enum__link_type_enum = functools.partial( - grpc_to_enum, LinkTypeEnum, ORM_LinkTypeEnum) diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py b/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py index 0b99fba50..eaa213525 100644 --- a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py +++ b/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py @@ -177,11 +177,6 @@ class Topology(_Resource): def delete(self, context_uuid : str, topology_uuid : str): return format_grpc_to_json(self.context_client.RemoveTopology(grpc_topology_id(context_uuid, topology_uuid))) -class TopologyDetails(_Resource): - def get(self, context_uuid : str, topology_uuid : str): - return format_grpc_to_json(self.context_client.GetTopologyDetails(grpc_topology_id( - context_uuid, topology_uuid))) - class ServiceIds(_Resource): def get(self, context_uuid : str): return format_grpc_to_json(self.context_client.ListServiceIds(grpc_context_id(context_uuid))) @@ -300,31 +295,21 @@ class Links(_Resource): ] class Link(_Resource): - @staticmethod - def _virtual_link(link): - virtual_types = {LinkTypeEnum.LINKTYPE_VIRTUAL_COPPER, LinkTypeEnum.LINKTYPE_VIRTUAL_OPTICAL} - if link.link_type in virtual_types: - return True - return False - - def get(self, link_uuid : str): return format_grpc_to_json(self.context_client.GetLink(grpc_link_id(link_uuid))) def put(self, link_uuid : str): link_json = request.get_json() link = grpc_link(link_json) + virtual_types = {LinkTypeEnum.LINKTYPE_VIRTUAL_COPPER, LinkTypeEnum.LINKTYPE_VIRTUAL_OPTICAL} if link_uuid != link.link_id.link_uuid.uuid: raise BadRequest('Mismatching link_uuid') - elif self._virtual_link(link): + elif link.link_type in virtual_types: link = grpc_link(link_json) return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(link)) - return format_grpc_to_json(self.context_client.SetLink(link)) + return format_grpc_to_json(self.context_client.SetLink(grpc_link(link))) def delete(self, link_uuid : str): - link = self.context_client.GetLink(grpc_link_id(link_uuid)) - if self._virtual_link(link): - format_grpc_to_json(self.vntmanager_client.RemoveVirtualLink(grpc_link_id(link_uuid))) return format_grpc_to_json(self.context_client.RemoveLink(grpc_link_id(link_uuid))) class ConnectionIds(_Resource): diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py b/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py index 944644d57..304a32648 100644 --- a/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py +++ b/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py @@ -22,7 +22,7 @@ from .Resources import ( PolicyRule, PolicyRuleIds, PolicyRules, Service, ServiceIds, Services, Slice, SliceIds, Slices, - Topologies, Topology, TopologyIds, TopologyDetails + Topologies, Topology, TopologyIds ) URL_PREFIX = '/tfs-api' @@ -30,39 +30,38 @@ URL_PREFIX = '/tfs-api' # Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type. RESOURCES = [ # (endpoint_name, resource_class, resource_url) - ('api.context_ids', ContextIds, '/context_ids'), - ('api.contexts', Contexts, '/contexts'), - ('api.dummy_contexts', DummyContexts, '/dummy_contexts'), - ('api.context', Context, '/context/<path:context_uuid>'), + ('api.context_ids', ContextIds, '/context_ids'), + ('api.contexts', Contexts, '/contexts'), + ('api.dummy_contexts', DummyContexts, '/dummy_contexts'), + ('api.context', Context, '/context/<path:context_uuid>'), - ('api.topology_ids', TopologyIds, '/context/<path:context_uuid>/topology_ids'), - ('api.topologies', Topologies, '/context/<path:context_uuid>/topologies'), - ('api.topology', Topology, '/context/<path:context_uuid>/topology/<path:topology_uuid>'), - ('api.topology_details', TopologyDetails, '/context/<path:context_uuid>/topology_details/<path:topology_uuid>'), + ('api.topology_ids', TopologyIds, '/context/<path:context_uuid>/topology_ids'), + ('api.topologies', Topologies, '/context/<path:context_uuid>/topologies'), + ('api.topology', Topology, '/context/<path:context_uuid>/topology/<path:topology_uuid>'), - ('api.service_ids', ServiceIds, '/context/<path:context_uuid>/service_ids'), - ('api.services', Services, '/context/<path:context_uuid>/services'), - ('api.service', Service, '/context/<path:context_uuid>/service/<path:service_uuid>'), + ('api.service_ids', ServiceIds, '/context/<path:context_uuid>/service_ids'), + ('api.services', Services, '/context/<path:context_uuid>/services'), + ('api.service', Service, '/context/<path:context_uuid>/service/<path:service_uuid>'), - ('api.slice_ids', SliceIds, '/context/<path:context_uuid>/slice_ids'), - ('api.slices', Slices, '/context/<path:context_uuid>/slices'), - ('api.slice', Slice, '/context/<path:context_uuid>/slice/<path:slice_uuid>'), + ('api.slice_ids', SliceIds, '/context/<path:context_uuid>/slice_ids'), + ('api.slices', Slices, '/context/<path:context_uuid>/slices'), + ('api.slice', Slice, '/context/<path:context_uuid>/slice/<path:slice_uuid>'), - ('api.device_ids', DeviceIds, '/device_ids'), - ('api.devices', Devices, '/devices'), - ('api.device', Device, '/device/<path:device_uuid>'), + ('api.device_ids', DeviceIds, '/device_ids'), + ('api.devices', Devices, '/devices'), + ('api.device', Device, '/device/<path:device_uuid>'), - ('api.link_ids', LinkIds, '/link_ids'), - ('api.links', Links, '/links'), - ('api.link', Link, '/link/<path:link_uuid>'), + ('api.link_ids', LinkIds, '/link_ids'), + ('api.links', Links, '/links'), + ('api.link', Link, '/link/<path:link_uuid>'), - ('api.connection_ids', ConnectionIds, '/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids'), - ('api.connections', Connections, '/context/<path:context_uuid>/service/<path:service_uuid>/connections'), - ('api.connection', Connection, '/connection/<path:connection_uuid>'), + ('api.connection_ids', ConnectionIds, '/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids'), + ('api.connections', Connections, '/context/<path:context_uuid>/service/<path:service_uuid>/connections'), + ('api.connection', Connection, '/connection/<path:connection_uuid>'), - ('api.policyrule_ids', PolicyRuleIds, '/policyrule_ids'), - ('api.policyrules', PolicyRules, '/policyrules'), - ('api.policyrule', PolicyRule, '/policyrule/<path:policyrule_uuid>'), + ('api.policyrule_ids', PolicyRuleIds, '/policyrule_ids'), + ('api.policyrules', PolicyRules, '/policyrules'), + ('api.policyrule', PolicyRule, '/policyrule/<path:policyrule_uuid>'), ] def register_tfs_api(rest_server : RestServer): -- GitLab From 8b314e43e07f804a99903e818347ab7f6641203a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 24 Dec 2024 17:07:34 +0000 Subject: [PATCH 025/213] ECOC24 test: - Add deployment of optical controller component in optical SDN controller --- src/tests/ecoc24/deploy_specs_opt.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/tests/ecoc24/deploy_specs_opt.sh b/src/tests/ecoc24/deploy_specs_opt.sh index ca650bb65..5c2467831 100755 --- a/src/tests/ecoc24/deploy_specs_opt.sh +++ b/src/tests/ecoc24/deploy_specs_opt.sh @@ -38,11 +38,11 @@ export TFS_COMPONENTS="context device pathcomp service nbi webui" # 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 +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 310c62faf053be94f9c5477c24af38d2697302a1 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 24 Dec 2024 17:31:16 +0000 Subject: [PATCH 026/213] Moving features outside this issue --- src/context/service/database/Link.py | 5 +---- src/context/service/database/models/LinkModel.py | 6 ------ 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/context/service/database/Link.py b/src/context/service/database/Link.py index 673947f03..c8c178d50 100644 --- a/src/context/service/database/Link.py +++ b/src/context/service/database/Link.py @@ -28,7 +28,6 @@ from .models.TopologyModel import TopologyLinkModel, TopologyModel from .uuids.EndPoint import endpoint_get_uuid from .uuids.Link import link_get_uuid from .Events import notify_event_context, notify_event_link, notify_event_topology -from .models.enums.LinkType import grpc_to_enum__link_type_enum LOGGER = logging.getLogger(__name__) @@ -68,7 +67,7 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link) raw_link_name = request.name link_name = raw_link_uuid if len(raw_link_name) == 0 else raw_link_name link_uuid = link_get_uuid(request.link_id, link_name=link_name, allow_random=True) - link_type = grpc_to_enum__link_type_enum(request.link_type) + now = datetime.datetime.now(datetime.timezone.utc) topology_uuids : Set[str] = set() @@ -118,7 +117,6 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link) link_data = [{ 'link_uuid' : link_uuid, 'link_name' : link_name, - 'link_type' : link_type, 'total_capacity_gbps' : total_capacity_gbps, 'used_capacity_gbps' : used_capacity_gbps, 'created_at' : now, @@ -131,7 +129,6 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link) index_elements=[LinkModel.link_uuid], set_=dict( link_name = stmt.excluded.link_name, - link_type = stmt.excluded.link_type, total_capacity_gbps = stmt.excluded.total_capacity_gbps, used_capacity_gbps = stmt.excluded.used_capacity_gbps, updated_at = stmt.excluded.updated_at, diff --git a/src/context/service/database/models/LinkModel.py b/src/context/service/database/models/LinkModel.py index 2de279a6e..bf90ea253 100644 --- a/src/context/service/database/models/LinkModel.py +++ b/src/context/service/database/models/LinkModel.py @@ -18,15 +18,12 @@ from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from typing import Dict from ._Base import _Base -from common.proto.context_pb2 import LinkTypeEnum -from .enums.LinkType import ORM_LinkTypeEnum class LinkModel(_Base): __tablename__ = 'link' link_uuid = Column(UUID(as_uuid=False), primary_key=True) link_name = Column(String, nullable=False) - link_type = Column(Enum(ORM_LinkTypeEnum), nullable=False) total_capacity_gbps = Column(Float, nullable=True) used_capacity_gbps = Column(Float, nullable=True) created_at = Column(DateTime, nullable=False) @@ -47,14 +44,11 @@ class LinkModel(_Base): result = { 'link_id' : self.dump_id(), 'name' : self.link_name, - 'link_type' : self.link_type.value, 'link_endpoint_ids': [ link_endpoint.endpoint.dump_id() for link_endpoint in sorted(self.link_endpoints, key=operator.attrgetter('position')) ], } - if self.link_type is None: - self.link_type = LinkTypeEnum.LINKTYPE_UNKNOWN if self.total_capacity_gbps is not None: attributes : Dict = result.setdefault('attributes', dict()) attributes.setdefault('total_capacity_gbps', self.total_capacity_gbps) -- GitLab From 846ddd215f190eb4edae8c88482ffa724b88197a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 24 Dec 2024 17:44:08 +0000 Subject: [PATCH 027/213] Pre-merge code cleanup --- src/tests/ecoc24/tests/create_service.py | 14 ++++++++++++++ src/tests/ecoc24/tests/delete_service.py | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/tests/ecoc24/tests/create_service.py b/src/tests/ecoc24/tests/create_service.py index bc24bccd8..5cc349405 100644 --- a/src/tests/ecoc24/tests/create_service.py +++ b/src/tests/ecoc24/tests/create_service.py @@ -1,3 +1,17 @@ +# Copyright 2022-2024 ETSI 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 requests url = "http://localhost:8002/tfs-api/link/CSGW1_xe5-CSGW2_xe5" diff --git a/src/tests/ecoc24/tests/delete_service.py b/src/tests/ecoc24/tests/delete_service.py index 0281fb2b3..31644342c 100644 --- a/src/tests/ecoc24/tests/delete_service.py +++ b/src/tests/ecoc24/tests/delete_service.py @@ -1,3 +1,17 @@ +# Copyright 2022-2024 ETSI 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 requests url = "http://localhost:8002/tfs-api/link/CSGW1_xe5-CSGW2_xe5" -- GitLab From 7c6bffe5eaa6a4ff6d7db360cf53fef790af2ae4 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 7 Jan 2025 15:46:50 +0000 Subject: [PATCH 028/213] E2E Orchetsrator component: - Code cleanup --- .../E2EOrchestratorServiceServicerImpl.py | 93 +++++++++---------- 1 file changed, 42 insertions(+), 51 deletions(-) diff --git a/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py b/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py index 47307b12c..4878d4788 100644 --- a/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py +++ b/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py @@ -12,29 +12,23 @@ # See the License for the specific language governing permissions and # limitations under the License. -import copy -import requests +import copy, grpc, json, logging, networkx, requests, threading from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method from common.proto.e2eorchestrator_pb2 import E2EOrchestratorRequest, E2EOrchestratorReply from common.proto.context_pb2 import ( Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, Topology, Context, Service, ServiceId, ServiceTypeEnum, ServiceStatusEnum) from common.proto.e2eorchestrator_pb2_grpc import E2EOrchestratorServiceServicer +from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest +from common.tools.grpc.Tools import grpc_message_to_json_string +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME from common.Settings import get_setting from context.client.ContextClient import ContextClient -from service.client.ServiceClient import ServiceClient from context.service.database.uuids.EndPoint import endpoint_get_uuid from context.service.database.uuids.Device import device_get_uuid -from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest -from common.tools.grpc.Tools import grpc_message_to_json_string -import grpc -import json -import logging -import networkx as nx -from threading import Thread +from service.client.ServiceClient import ServiceClient from websockets.sync.client import connect from websockets.sync.server import serve -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME LOGGER = logging.getLogger(__name__) @@ -48,53 +42,46 @@ context_client: ContextClient = ContextClient() service_client: ServiceClient = ServiceClient() EXT_HOST = str(get_setting('WS_IP_HOST')) -EXT_PORT = str(get_setting('WS_IP_PORT')) +EXT_PORT = int(get_setting('WS_IP_PORT')) +EXT_URL = 'ws://{:s}:{:d}'.format(EXT_HOST, EXT_PORT) OWN_HOST = str(get_setting('WS_E2E_HOST')) -OWN_PORT = str(get_setting('WS_E2E_PORT')) - +OWN_PORT = int(get_setting('WS_E2E_PORT')) -ALL_HOSTS = "0.0.0.0" +ALL_HOSTS = '0.0.0.0' -class SubscriptionServer(Thread): - def __init__(self): - Thread.__init__(self) - +class SubscriptionServer(threading.Thread): def run(self): - url = "ws://" + EXT_HOST + ":" + EXT_PORT request = VNTSubscriptionRequest() request.host = OWN_HOST request.port = OWN_PORT try: - LOGGER.debug("Trying to connect to {}".format(url)) - websocket = connect(url) - except Exception as ex: - LOGGER.error('Error connecting to {}'.format(url)) + LOGGER.debug('Trying to connect to {:s}'.format(EXT_URL)) + websocket = connect(EXT_URL) + except: # pylint: disable=bare-except + LOGGER.exception('Error connecting to {:s}'.format(EXT_URL)) else: with websocket: - LOGGER.debug("Connected to {}".format(url)) + LOGGER.debug('Connected to {:s}'.format(EXT_URL)) send = grpc_message_to_json_string(request) websocket.send(send) - LOGGER.debug("Sent: {}".format(send)) + LOGGER.debug('Sent: {:s}'.format(send)) try: message = websocket.recv() - LOGGER.debug("Received message from WebSocket: {}".format(message)) + LOGGER.debug('Received message from WebSocket: {:s}'.format(message)) except Exception as ex: - LOGGER.error('Exception receiving from WebSocket: {}'.format(ex)) + LOGGER.error('Exception receiving from WebSocket: {:s}'.format(ex)) self._events_server() def _events_server(self): - all_hosts = "0.0.0.0" - try: - server = serve(self._event_received, all_hosts, int(OWN_PORT)) - except Exception as ex: - LOGGER.error('Error starting server on {}:{}'.format(all_hosts, OWN_PORT)) - LOGGER.error('Exception!: {}'.format(ex)) + server = serve(self._event_received, ALL_HOSTS, int(OWN_PORT)) + except: # pylint: disable=bare-except + LOGGER.exception('Error starting server on {:s}:{:d}'.format(ALL_HOSTS, OWN_PORT)) else: with server: - LOGGER.info("Running events server...: {}:{}".format(all_hosts, OWN_PORT)) + LOGGER.info('Running events server...: {:s}:{:d}'.format(ALL_HOSTS, OWN_PORT)) server.serve_forever() @@ -178,32 +165,36 @@ class SubscriptionServer(Thread): class E2EOrchestratorServiceServicerImpl(E2EOrchestratorServiceServicer): def __init__(self): - LOGGER.debug("Creating Servicer...") + LOGGER.debug('Creating Servicer...') try: - LOGGER.debug("Requesting subscription") + LOGGER.debug('Requesting subscription') sub_server = SubscriptionServer() sub_server.start() - LOGGER.debug("Servicer Created") + LOGGER.debug('Servicer Created') self.retrieve_external_topologies() - except Exception as ex: - LOGGER.info("Exception!: {}".format(ex)) + except: + LOGGER.exception('Unhandled Exception') def retrieve_external_topologies(self): i = 1 while True: try: - ADD = str(get_setting(f'EXT_CONTROLLER{i}_ADD')) - PORT = str(get_setting(f'EXT_CONTROLLER{i}_PORT')) - except Exception as e: + ADD = str(get_setting(f'EXT_CONTROLLER{i}_ADD')) + PORT = int(get_setting(f'EXT_CONTROLLER{i}_PORT')) + except: # pylint: disable=bare-except break + try: - LOGGER.info(f'Retrieving external controller #{i}') - url = f'http://{ADD}:{PORT}/tfs-api/context/{DEFAULT_CONTEXT_NAME}/topology_details/{DEFAULT_TOPOLOGY_NAME}' - LOGGER.info(f'url= {url}') + LOGGER.info('Retrieving external controller #{:d}'.format(i)) + url = 'http://{:s}:{:d}/tfs-api/context/{:s}/topology_details/{:s}'.format( + ADD, PORT, DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME + ) + LOGGER.info('url={:s}'.format(str(url))) topo = requests.get(url).json() - LOGGER.info(f'Retrieved external controller #{i}') - except Exception as e: - LOGGER.info(f'Exception retrieven topology from external controler #{i}: {e}') + LOGGER.info('Retrieved external controller #{:d}'.format(i)) + except: # pylint: disable=bare-except + LOGGER.exception('Exception retrieven topology from external controler #{:d}'.format(i)) + topology_details = TopologyDetails(**topo) context = Context() context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid @@ -229,7 +220,7 @@ class E2EOrchestratorServiceServicerImpl(E2EOrchestratorServiceServicer): for endpoint_id in request.service.service_endpoint_ids: endpoints_ids.append(endpoint_get_uuid(endpoint_id)[2]) - graph = nx.Graph() + graph = networkx.Graph() devices = context_client.ListDevices(Empty()).devices @@ -253,7 +244,7 @@ class E2EOrchestratorServiceServicerImpl(E2EOrchestratorServiceServicer): graph.add_edge(eps[0], eps[1]) - shortest = nx.shortest_path(graph, endpoints_ids[0], endpoints_ids[1]) + shortest = networkx.shortest_path(graph, endpoints_ids[0], endpoints_ids[1]) path = E2EOrchestratorReply() path.services.append(copy.deepcopy(request.service)) -- GitLab From ef493576e561ebeb429734b726d5355b1cd12a7a Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Tue, 21 Jan 2025 10:50:42 +0000 Subject: [PATCH 029/213] Add osm_client microservice Implement new osm_client.proto Create logic to manage request provide by NBI microservice Including ServiceServicer implementation ToDo: Automatic test with HTTP Mock Dockerfile --- manifests/osm_clientservice.yaml | 75 ++++++++++++++++++ proto/osm_client.proto | 71 +++++++++++++++++ src/common/Constants.py | 2 + src/device/requirements.in | 2 +- src/osm_client/Config.py | 20 +++++ src/osm_client/__init__.py | 14 ++++ src/osm_client/client/OsmClient.py | 79 +++++++++++++++++++ src/osm_client/client/__init__.py | 14 ++++ src/osm_client/service/OsmClientService.py | 33 ++++++++ .../service/OsmClientServiceServicerImpl.py | 70 ++++++++++++++++ src/osm_client/service/__init__.py | 14 ++++ src/osm_client/service/__main__.py | 68 ++++++++++++++++ 12 files changed, 461 insertions(+), 1 deletion(-) create mode 100644 manifests/osm_clientservice.yaml create mode 100644 proto/osm_client.proto create mode 100644 src/osm_client/Config.py create mode 100644 src/osm_client/__init__.py create mode 100644 src/osm_client/client/OsmClient.py create mode 100644 src/osm_client/client/__init__.py create mode 100644 src/osm_client/service/OsmClientService.py create mode 100644 src/osm_client/service/OsmClientServiceServicerImpl.py create mode 100644 src/osm_client/service/__init__.py create mode 100644 src/osm_client/service/__main__.py diff --git a/manifests/osm_clientservice.yaml b/manifests/osm_clientservice.yaml new file mode 100644 index 000000000..bf536e2fd --- /dev/null +++ b/manifests/osm_clientservice.yaml @@ -0,0 +1,75 @@ +# Copyright 2022-2024 ETSI 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. + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: osm_clientservice +spec: + selector: + matchLabels: + app: osm_clientservice + #replicas: 1 + template: + metadata: + labels: + app: osm_clientservice + spec: + terminationGracePeriodSeconds: 5 + containers: + - name: server + image: labs.etsi.org:5050/tfs/controller/osm_client:latest + imagePullPolicy: Always + ports: + - containerPort: 30210 + - containerPort: 9192 + env: + - name: OSM_ADDRESS + value: "127.0.0.1" + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:30210"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:30210"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi +--- +apiVersion: v1 +kind: Service +metadata: + name: osm_clientservice + labels: + app: osm_clientservice +spec: + type: ClusterIP + selector: + app: osm_clientservice + ports: + - name: grpc + protocol: TCP + port: 30210 + targetPort: 30210 + - name: metrics + protocol: TCP + port: 9192 + targetPort: +--- \ No newline at end of file diff --git a/proto/osm_client.proto b/proto/osm_client.proto new file mode 100644 index 000000000..b44781641 --- /dev/null +++ b/proto/osm_client.proto @@ -0,0 +1,71 @@ +// Copyright 2022-2024 ETSI 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. + +syntax = "proto3"; +package osmClient; + +import "context.proto"; + +service OsmService { + rpc NsiCreate (CreateRequest) returns(CreateResponse) {} + rpc NsiList (context.Empty) returns(NsiListResponse) {} + rpc NsiGet (GetRequest) returns(GetResponse) {} + rpc NsiDelete (DeleteRequest) returns(DeleteResponse) {} +} + +message CreateRequest { + string nst_name = 1; + string nsi_name = 2; + string config = 3; + string ssh_key = 4; + string account = 5; +} + +//OSM library doesn't return nsi ID, just an exception +message CreateResponse { + bool succeded = 1; + string errormessage = 2; +} + +message NsiListResponse { + repeated string id = 1; +} + +message GetRequest { + string id = 1; +} + +message GetResponse { + NsiObject nsi = 1; +} + +message NsiObject { + string nst_name = 1; + string nsi_name = 2; + string description = 3; + string VimAccountId = 4; + string Netslice_Subnet_id = 5; + string Netslice_vld_ip = 6; +} + +message DeleteRequest { + string id = 1; +} + +//OSM library doesn't return nsi ID, just an exception +message DeleteResponse { + bool succeded = 1; + string errormessage = 2; +} + diff --git a/src/common/Constants.py b/src/common/Constants.py index 682007646..8b5b714b5 100644 --- a/src/common/Constants.py +++ b/src/common/Constants.py @@ -72,6 +72,7 @@ class ServiceNameEnum(Enum): ANALYTICS = 'analytics' ANALYTICSBACKEND = 'analytics-backend' QOSPROFILE = 'qos-profile' + OSMCLIENT = 'osm-client' # Used for test and debugging only DLT_GATEWAY = 'dltgateway' @@ -112,6 +113,7 @@ DEFAULT_SERVICE_GRPC_PORTS = { ServiceNameEnum.ANALYTICS .value : 30080, ServiceNameEnum.ANALYTICSBACKEND .value : 30090, ServiceNameEnum.AUTOMATION .value : 30200, + ServiceNameEnum.OSMCLIENT .value : 30210, # Used for test and debugging only ServiceNameEnum.DLT_GATEWAY .value : 50051, diff --git a/src/device/requirements.in b/src/device/requirements.in index 30c982650..c89303df3 100644 --- a/src/device/requirements.in +++ b/src/device/requirements.in @@ -39,7 +39,7 @@ python-json-logger==2.0.2 requests==2.27.1 requests-mock==1.9.3 tabulate -websockets==10.4 +websockets==12.0 werkzeug==2.3.7 xmltodict==0.12.0 yattag diff --git a/src/osm_client/Config.py b/src/osm_client/Config.py new file mode 100644 index 000000000..84feff3d9 --- /dev/null +++ b/src/osm_client/Config.py @@ -0,0 +1,20 @@ +# Copyright 2022-2024 ETSI 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. + +from common.Settings import get_setting + +DEFAULT_OSM_ADDRESS = '127.0.0.1' +OSM_ADDRESS = get_setting('OSM_ADDRESS', DEFAULT_OSM_ADDRESS) + + \ No newline at end of file diff --git a/src/osm_client/__init__.py b/src/osm_client/__init__.py new file mode 100644 index 000000000..53d5157f7 --- /dev/null +++ b/src/osm_client/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/osm_client/client/OsmClient.py b/src/osm_client/client/OsmClient.py new file mode 100644 index 000000000..a040f661c --- /dev/null +++ b/src/osm_client/client/OsmClient.py @@ -0,0 +1,79 @@ +# Copyright 2022-2024 ETSI 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 grpc, logging +from common.Constants import ServiceNameEnum +from common.Settings import get_service_host, get_service_port_grpc +from common.proto.osm_client_pb2_grpc import osmClientServiceStub +from common.proto.context_pb2 import (Empty) +from common.tools.client.RetryDecorator import retry, delay_exponential +from common.tools.grpc.Tools import grpc_message_to_json_string + +from osmclient import client +from osmclient.common.exceptions import ClientException + + +LOGGER = logging.getLogger(__name__) +MAX_RETRIES = 15 +DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0) +RETRY_DECORATOR = retry(max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, prepare_method_name='connect') + +class OsmClient: + def __init__(self, host=None, port=None): + if not host: host = get_service_host(ServiceNameEnum.OSMCLIENT) + if not port: port = get_service_port_grpc(ServiceNameEnum.OSMCLIENT) + self.endpoint = '{:s}:{:s}'.format(str(host), str(port)) + LOGGER.debug('Creating channel to {:s}...'.format(str(self.endpoint))) + self.channel = None + self.stub = None + self.connect() + LOGGER.debug('Channel created') + + + def connect(self): + self.channel = grpc.insecure_channel(self.endpoint) + self.stub = osmClientServiceStub(self.channel) + + def close(self): + if self.channel is not None: self.channel.close() + self.channel = None + self.stub = None + + @RETRY_DECORATOR + def NsiCreate(self, request : CreateRequest) -> CreateResponse: + LOGGER.debug('NsiCreate request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.NsiCreate(request) + LOGGER.debug('NsiCreate result: {:s}'.format(grpc_message_to_json_string(response))) + return response + + @RETRY_DECORATOR + def NsiList(self, request : Empty) -> NsiListResponse: + LOGGER.debug('NsiList request') + response = self.stub.NsiList(request) + LOGGER.debug('NsiList result: {:s}'.format(grpc_message_to_json_string(response))) + return response + + @RETRY_DECORATOR + def NsiGet(self, request : GetRequest) -> GetResponse: + LOGGER.debug('NsiGet request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.NsiGet(request) + LOGGER.debug('NsiGet result: {:s}'.format(grpc_message_to_json_string(response))) + return response + + @RETRY_DECORATOR + def NsiDelete(self, request : DeleteRequest) -> DeleteResponse: + LOGGER.debug('NsiDelete request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.NsiDelete(request) + LOGGER.debug('NsiDelete result: {:s}'.format(grpc_message_to_json_string(response))) + return response \ No newline at end of file diff --git a/src/osm_client/client/__init__.py b/src/osm_client/client/__init__.py new file mode 100644 index 000000000..53d5157f7 --- /dev/null +++ b/src/osm_client/client/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/osm_client/service/OsmClientService.py b/src/osm_client/service/OsmClientService.py new file mode 100644 index 000000000..ccbf15366 --- /dev/null +++ b/src/osm_client/service/OsmClientService.py @@ -0,0 +1,33 @@ +# Copyright 2022-2024 ETSI 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. + +from common.Constants import ServiceNameEnum +from common.Settings import get_service_port_grpc +from common.proto.osm_client_pb2_grpc import add_OsmServiceServicer_to_server +from common.tools.service.GenericGrpcService import GenericGrpcService +from osm_client.service.OsmClientServiceServicerImpl import OsmClientServiceServicerImpl + +from osmclient import client +from osmclient.common.exceptions import ClientException + + +class OsmClientService(GenericGrpcService): + def __init__(self, cls_name: str = __name__) -> None: + port = get_service_port_grpc(ServiceNameEnum.OSMCLIENT) + super().__init__(port, cls_name=cls_name) + self.osmClient_servicer = OsmClientServiceServicerImpl() + + + def install_servicers(self): + add_OsmServiceServicer_to_server(self.osmClient_servicer, self.server) diff --git a/src/osm_client/service/OsmClientServiceServicerImpl.py b/src/osm_client/service/OsmClientServiceServicerImpl.py new file mode 100644 index 000000000..f45c682a4 --- /dev/null +++ b/src/osm_client/service/OsmClientServiceServicerImpl.py @@ -0,0 +1,70 @@ +# Copyright 2022-2024 ETSI 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 grpc, logging +from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method +from common.tools.grpc.Tools import grpc_message_to_json_string +from common.proto.context_pb2 import (Empty) +from common.proto.osm_client_pb2 import CreateRequest, CreateResponse, NsiListResponse, GetRequest, GetResponse, DeleteRequest, DeleteResponse +from common.proto.osm_client_pb2_grpc import osmCLientServiceServicer +from osmclient import client +from osmclient.common.exceptions import ClientException +from osm_client.Config import OSM_ADDRESS + +LOGGER = logging.getLogger(__name__) + +METRICS_POOL = MetricsPool('OSMCLIENT', 'RPC') + +class OsmClientServiceServicerImpl(osmCLientServiceServicer): + def __init__(self): + LOGGER.info('Creating Servicer...') + self.myclient = client.Client(host=OSM_ADDRESS, sol005=True) + LOGGER.info('osmClient created') + + LOGGER.info('Servicer Created') + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def NsiCreate(self, request : CreateRequest, context : grpc.ServicerContext) -> CreateResponse: + try: + #OSM library doesn't return nsi ID, just an exception + self.myclient.nsi.create(request.nst_name, request.nsi_name, request.account) + except Exception as e: + resp = CreateResponse(succeded = False, errormessage = str(e)) + else: + resp = CreateResponse(succeded = True) + return resp + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def NsiList(self, request : Empty, context : grpc.ServicerContext) -> NsiListResponse: + nsiIDs = self.myclient.nsi.list() + resp = NsiListResponse(id=nsiIDs) + return resp + + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def NsiGet(self, request : GetRequest, context : grpc.ServicerContext) -> GetResponse: + nsiObject = self.myclient.nsi.get(request.id) + resp = GetResponse(NsiObject = nsiObject) + return resp + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def NsiDelete(self, request : DeleteRequest, context : grpc.ServicerContext) -> DeleteResponse: + try: + #OSM library doesn't return nsi ID, just an exception + self.myclient.nsi.delete(request.id, False, False) + except Exception as e: + resp = DeleteResponse(succeded = False, errormessage = str(e)) + else: + resp = DeleteResponse(succeded = True) + return resp \ No newline at end of file diff --git a/src/osm_client/service/__init__.py b/src/osm_client/service/__init__.py new file mode 100644 index 000000000..53d5157f7 --- /dev/null +++ b/src/osm_client/service/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/osm_client/service/__main__.py b/src/osm_client/service/__main__.py new file mode 100644 index 000000000..d27b5c80a --- /dev/null +++ b/src/osm_client/service/__main__.py @@ -0,0 +1,68 @@ +# Copyright 2022-2024 ETSI 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 logging, signal, sys, threading +from common.Constants import ServiceNameEnum +from common.Settings import ( + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, + get_env_var_name, get_log_level, + wait_for_environment_variables +) +from .OsmClientService import OsmClientService + +terminate = threading.Event() +LOGGER = None + +def signal_handler(signal, frame): # pylint: disable=redefined-outer-name, unused-argument + LOGGER.warning('Terminate signal received') + terminate.set() + +def main(): + global LOGGER # pylint: disable=global-statement + + log_level = get_log_level() + logging.basicConfig(level=log_level) + LOGGER = logging.getLogger(__name__) + + wait_for_environment_variables([ + get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + ]) + + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + + LOGGER.info('Starting...') + + # Starting OsmClient service + grpc_service = OsmClientService() + grpc_service.start() + + LOGGER.debug('Configured Rules:') + + # Wait for Ctrl+C or termination signal + while not terminate.wait(timeout=1.0): pass + + LOGGER.info('Terminating...') + grpc_service.stop() + + LOGGER.info('Bye') + return 0 + +if __name__ == '__main__': + sys.exit(main()) -- GitLab From 60b45b062c0fb31d82ab029a52d8a8572f5ff8fa Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Thu, 23 Jan 2025 13:14:46 +0000 Subject: [PATCH 030/213] Add DockerFile to osm_client MicroServices Solve imports typo --- src/osm_client/Dockerfile | 77 +++++++++++++++++++ src/osm_client/client/OsmClient.py | 4 +- src/osm_client/service/OsmClientService.py | 4 - .../service/OsmClientServiceServicerImpl.py | 4 +- 4 files changed, 81 insertions(+), 8 deletions(-) create mode 100644 src/osm_client/Dockerfile diff --git a/src/osm_client/Dockerfile b/src/osm_client/Dockerfile new file mode 100644 index 000000000..1c7427404 --- /dev/null +++ b/src/osm_client/Dockerfile @@ -0,0 +1,77 @@ +# Copyright 2022-2024 ETSI 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. + +FROM python:3.10.16-slim + + +# Install dependencies +RUN apt-get --yes --quiet --quiet update +RUN apt-get --yes --quiet --quiet install wget g++ git build-essential cmake make git \ + libpcre2-dev python3-dev python3-pip python3-cffi curl software-properties-common && \ + rm -rf /var/lib/apt/lists/* + +# Set Python to show logs as they occur +ENV PYTHONUNBUFFERED=0 + + +# Download the gRPC health probe +RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ + wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ + chmod +x /bin/grpc_health_probe + +# Get generic Python packages +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools + +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components +WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt + +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; + +# Create component sub-folders +RUN mkdir -p /var/teraflow/osm_client +WORKDIR /var/teraflow/osm_client +ENV OSM_CLIENT_VERSION=v16.0 +RUN python3 -m pip install -r "https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=${OSM_CLIENT_VERSION}" +RUN python3 -m pip install "git+https://osm.etsi.org/gerrit/osm/IM.git@${OSM_CLIENT_VERSION}#egg=osm-im" --upgrade +#Clone OsmCLient code +RUN git clone https://osm.etsi.org/gerrit/osm/osmclient +RUN git -C osmclient checkout ${OSM_CLIENT_VERSION} +# Install osmClient using pip +RUN python3 -m pip install -r osmclient/requirements.txt +RUN python3 -m pip install ./osmclient + +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/osm_client/. osm_client/ + +# Start the service +ENTRYPOINT ["python", "-m", "osm_client.service"] diff --git a/src/osm_client/client/OsmClient.py b/src/osm_client/client/OsmClient.py index a040f661c..239e2a2fb 100644 --- a/src/osm_client/client/OsmClient.py +++ b/src/osm_client/client/OsmClient.py @@ -15,7 +15,7 @@ import grpc, logging from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_service_port_grpc -from common.proto.osm_client_pb2_grpc import osmClientServiceStub +from common.proto.osm_client_pb2_grpc import OsmServiceStub from common.proto.context_pb2 import (Empty) from common.tools.client.RetryDecorator import retry, delay_exponential from common.tools.grpc.Tools import grpc_message_to_json_string @@ -43,7 +43,7 @@ class OsmClient: def connect(self): self.channel = grpc.insecure_channel(self.endpoint) - self.stub = osmClientServiceStub(self.channel) + self.stub = OsmServiceStub(self.channel) def close(self): if self.channel is not None: self.channel.close() diff --git a/src/osm_client/service/OsmClientService.py b/src/osm_client/service/OsmClientService.py index ccbf15366..81ec534d2 100644 --- a/src/osm_client/service/OsmClientService.py +++ b/src/osm_client/service/OsmClientService.py @@ -18,10 +18,6 @@ from common.proto.osm_client_pb2_grpc import add_OsmServiceServicer_to_server from common.tools.service.GenericGrpcService import GenericGrpcService from osm_client.service.OsmClientServiceServicerImpl import OsmClientServiceServicerImpl -from osmclient import client -from osmclient.common.exceptions import ClientException - - class OsmClientService(GenericGrpcService): def __init__(self, cls_name: str = __name__) -> None: port = get_service_port_grpc(ServiceNameEnum.OSMCLIENT) diff --git a/src/osm_client/service/OsmClientServiceServicerImpl.py b/src/osm_client/service/OsmClientServiceServicerImpl.py index f45c682a4..5bbde3b8b 100644 --- a/src/osm_client/service/OsmClientServiceServicerImpl.py +++ b/src/osm_client/service/OsmClientServiceServicerImpl.py @@ -17,7 +17,7 @@ from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_m from common.tools.grpc.Tools import grpc_message_to_json_string from common.proto.context_pb2 import (Empty) from common.proto.osm_client_pb2 import CreateRequest, CreateResponse, NsiListResponse, GetRequest, GetResponse, DeleteRequest, DeleteResponse -from common.proto.osm_client_pb2_grpc import osmCLientServiceServicer +from common.proto.osm_client_pb2_grpc import OsmServiceServicer from osmclient import client from osmclient.common.exceptions import ClientException from osm_client.Config import OSM_ADDRESS @@ -26,7 +26,7 @@ LOGGER = logging.getLogger(__name__) METRICS_POOL = MetricsPool('OSMCLIENT', 'RPC') -class OsmClientServiceServicerImpl(osmCLientServiceServicer): +class OsmClientServiceServicerImpl(OsmServiceServicer): def __init__(self): LOGGER.info('Creating Servicer...') self.myclient = client.Client(host=OSM_ADDRESS, sol005=True) -- GitLab From 1be101f8a11bc7cabc327b17952d692ea669f75f Mon Sep 17 00:00:00 2001 From: Waleed Akbar <wakbar@cttc.es> Date: Sun, 26 Jan 2025 07:58:02 +0000 Subject: [PATCH 031/213] Updated Telemetry Backend. - Refactor Telemetry backend service methods - Enhance test logging for better clarity. --- .../service/TelemetryBackendService.py | 183 ++++++++++++------ src/telemetry/backend/tests/test_backend.py | 67 ++++--- .../TelemetryFrontendServiceServicerImpl.py | 8 +- 3 files changed, 172 insertions(+), 86 deletions(-) diff --git a/src/telemetry/backend/service/TelemetryBackendService.py b/src/telemetry/backend/service/TelemetryBackendService.py index a1f17df3c..0c515768e 100755 --- a/src/telemetry/backend/service/TelemetryBackendService.py +++ b/src/telemetry/backend/service/TelemetryBackendService.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import queue import json import time import logging @@ -27,6 +26,7 @@ from common.Settings import get_service_port_grpc from common.method_wrappers.Decorator import MetricsPool from common.tools.kafka.Variables import KafkaConfig, KafkaTopic from common.tools.service.GenericGrpcService import GenericGrpcService +from telemetry.backend.collectors.emulated.EmulatedCollector import EmulatedCollector LOGGER = logging.getLogger(__name__) METRICS_POOL = MetricsPool('TelemetryBackend', 'backendService') @@ -44,9 +44,7 @@ class TelemetryBackendService(GenericGrpcService): self.kafka_consumer = KafkaConsumer({'bootstrap.servers' : KafkaConfig.get_kafka_address(), 'group.id' : 'backend', 'auto.offset.reset' : 'latest'}) - self.running_threads = {} - self.emulatorCollector = None - self.metric_queue = queue.Queue() + self.active_jobs = {} def install_servicers(self): threading.Thread(target=self.RequestListener).start() @@ -60,49 +58,88 @@ class TelemetryBackendService(GenericGrpcService): consumer = self.kafka_consumer consumer.subscribe([KafkaTopic.TELEMETRY_REQUEST.value]) while True: - receive_msg = consumer.poll(2.0) + receive_msg = consumer.poll(1.0) if receive_msg is None: continue elif receive_msg.error(): if receive_msg.error().code() == KafkaError._PARTITION_EOF: continue + elif receive_msg.error().code() == KafkaError.UNKNOWN_TOPIC_OR_PART: + LOGGER.warning(f"Subscribed topic {receive_msg.topic()} does not exist. May be topic does not have any messages.") + continue else: LOGGER.error("Consumer error: {}".format(receive_msg.error())) break try: - collector = json.loads(receive_msg.value().decode('utf-8')) + collector = json.loads( + receive_msg.value().decode('utf-8') + ) collector_id = receive_msg.key().decode('utf-8') LOGGER.debug('Recevied Collector: {:} - {:}'.format(collector_id, collector)) - if collector['duration'] == -1 and collector['interval'] == -1: - self.TerminateCollectorBackend(collector_id) + duration = collector.get('duration', -1) + if duration == -1 and collector['interval'] == -1: + self.TerminateCollector(collector_id) else: - threading.Thread(target=self.InitiateCollectorBackend, - args=(collector_id, collector)).start() + LOGGER.info("Collector ID: {:} - Scheduling...".format(collector_id)) + if collector_id not in self.active_jobs: + stop_event = threading.Event() + self.active_jobs[collector_id] = stop_event + threading.Thread(target = self.CollectorHandler, + args=( + collector_id, + collector['kpi_id'], + duration, + collector['interval'], + stop_event + )).start() + # Stop the Collector after the given duration + if duration > 0: + def stop_after_duration(): + time.sleep(duration) + LOGGER.warning(f"Execution duration ({duration}) completed of Collector: {collector_id}") + self.TerminateCollector(collector_id) + + duration_thread = threading.Thread( + target=stop_after_duration, daemon=True, name=f"stop_after_duration_{collector_id}" + ) + duration_thread.start() + else: + LOGGER.warning("Collector ID: {:} - Already scheduled or running".format(collector_id)) except Exception as e: LOGGER.warning("Unable to consumer message from topic: {:}. ERROR: {:}".format(KafkaTopic.TELEMETRY_REQUEST.value, e)) - def InitiateCollectorBackend(self, collector_id, collector): + def CollectorHandler(self, collector_id, kpi_id, duration, interval, stop_event): """ - Method receives collector request and initiates collecter backend. + Method to handle collector request. """ - LOGGER.info("Initiating backend for collector: (Not Implemented... In progress ) {:s}".format(str(collector_id))) - # start_time = time.time() - # self.emulatorCollector = NetworkMetricsEmulator( - # duration = collector['duration'], - # interval = collector['interval'], - # metric_queue = self.metric_queue - # ) - # self.emulatorCollector.start() - # self.running_threads[collector_id] = self.emulatorCollector - - # while self.emulatorCollector.is_alive(): - # if not self.metric_queue.empty(): - # metric_value = self.metric_queue.get() - # LOGGER.debug("Metric: {:} - Value : {:}".format(collector['kpi_id'], metric_value)) - # self.GenerateKpiValue(collector_id, collector['kpi_id'] , metric_value) - # time.sleep(1) - # self.TerminateCollectorBackend(collector_id) + end_points : list = self.get_endpoints_from_kpi_id(kpi_id) + if not end_points: + LOGGER.warning("KPI ID: {:} - Endpoints not found. Skipping...".format(kpi_id)) + + device_type : str = self.get_device_type_from_kpi_id(kpi_id) + + if device_type == "Unknown": + LOGGER.warning("KPI ID: {:} - Device Type not found. Skipping...".format(kpi_id)) + + if device_type == "EMU-Device": + LOGGER.info("KPI ID: {:} - Device Type: {:} - Endpoints: {:}".format(kpi_id, device_type, end_points)) + subscription = [collector_id, end_points, duration, interval] + self.EmulatedCollectorHandler(subscription, kpi_id, stop_event) + else: + LOGGER.warning("KPI ID: {:} - Device Type: {:} - Not Supported".format(kpi_id, device_type)) + + + def EmulatedCollectorHandler(self, subscription, kpi_id, stop_event): + # EmulatedCollector + collector = EmulatedCollector(address="127.0.0.1", port=8000) + collector.Connect() + while not stop_event.is_set(): + # samples = collector.SubscribeState(subscription) + # LOGGER.debug("KPI: {:} - Value: {:}".format(kpi_id, samples)) + # self.GenerateKpiValue(job_id, kpi_id, samples) + LOGGER.info("Generating KPI Values ...") + time.sleep(1) def GenerateKpiValue(self, collector_id: str, kpi_id: str, measured_kpi_value: Any): """ @@ -122,38 +159,74 @@ class TelemetryBackendService(GenericGrpcService): ) producer.flush() - def TerminateCollectorBackend(self, collector_id): + def TerminateCollector(self, job_id): LOGGER.debug("Terminating collector backend...") - if collector_id in self.running_threads: - thread = self.running_threads[collector_id] - thread.stop() - del self.running_threads[collector_id] - LOGGER.debug("Collector backend terminated. Collector ID: {:}".format(collector_id)) - self.GenerateCollectorTerminationSignal(collector_id, "-1", -1) # Termination confirmation to frontend. - else: - LOGGER.warning('Backend collector {:} not found'.format(collector_id)) + try: + if job_id not in self.active_jobs: # not job_ids: + # self.logger.warning(f"Active jobs: {self.active_jobs}") + self.logger.warning(f"No active jobs found for {job_id}. It might have already terminated.") + else: + LOGGER.info(f"Terminating job: {job_id}") + stop_event = self.active_jobs.pop(job_id, None) + if stop_event: + stop_event.set() + LOGGER.info(f"Job {job_id} terminated.") + else: + LOGGER.warning(f"Job {job_id} not found in active jobs.") + except: + LOGGER.exception("Error terminating job: {:}".format(job_id)) - def GenerateCollectorTerminationSignal(self, collector_id: str, kpi_id: str, measured_kpi_value: Any): + def get_endpoints_from_kpi_id(self, kpi_id: str) -> list: """ - Method to write kpi Termination signat on TELEMETRY_RESPONSE Kafka topic + Method to get endpoints based on kpi_id. """ - producer = self.kafka_producer - kpi_value : Dict = { - "kpi_id" : kpi_id, - "kpi_value" : measured_kpi_value, + kpi_endpoints = { + '6e22f180-ba28-4641-b190-2287bf448888': {"uuid": "123e4567-e89b-12d3-a456-42661417ed06", "name": "eth0", "type": "ethernet", "sample_types": [101, 102]}, + '123e4567-e89b-12d3-a456-426614174001': {"uuid": "123e4567-e89b-12d3-a456-42661417ed07", "name": "eth1", "type": "ethernet", "sample_types": []}, + '123e4567-e89b-12d3-a456-426614174002': {"uuid": "123e4567-e89b-12d3-a456-42661417ed08", "name": "13/1/2", "type": "copper", "sample_types": [101, 102, 201, 202]}, } - producer.produce( - KafkaTopic.TELEMETRY_RESPONSE.value, - key = collector_id, - value = json.dumps(kpi_value), - callback = self.delivery_callback - ) - producer.flush() + return [kpi_endpoints.get(kpi_id, {})] if kpi_id in kpi_endpoints else [] + + def get_device_type_from_kpi_id(self, kpi_id: str) -> str: + """ + Method to get device type based on kpi_id. + """ + kpi_device_types = { + "123e4567-e89b-12d3-a456-42661type003" : {'device_type': "PKT-Device"}, + "123e4567-e89b-12d3-a456-42661type004" : {'device_type': "OPT-Device"}, + "6e22f180-ba28-4641-b190-2287bf448888" : {'device_type': "EMU-Device"}, + } + return kpi_device_types.get(kpi_id, {}).get('device_type', "Unknown") + + + # def TerminateCollectorBackend(self, collector_id): + # LOGGER.debug("Terminating collector backend...") + # if collector_id in self.running_threads: + # thread = self.running_threads[collector_id] + # thread.stop() + # del self.running_threads[collector_id] + # LOGGER.debug("Collector backend terminated. Collector ID: {:}".format(collector_id)) + # self.GenerateCollectorTerminationSignal(collector_id, "-1", -1) # Termination confirmation to frontend. + # else: + # LOGGER.warning('Backend collector {:} not found'.format(collector_id)) + + # def GenerateCollectorTerminationSignal(self, collector_id: str, kpi_id: str, measured_kpi_value: Any): + # """ + # Method to write kpi Termination signat on TELEMETRY_RESPONSE Kafka topic + # """ + # producer = self.kafka_producer + # kpi_value : Dict = { + # "kpi_id" : kpi_id, + # "kpi_value" : measured_kpi_value, + # } + # producer.produce( + # KafkaTopic.TELEMETRY_RESPONSE.value, + # key = collector_id, + # value = json.dumps(kpi_value), + # callback = self.delivery_callback + # ) + # producer.flush() def delivery_callback(self, err, msg): if err: LOGGER.error('Message delivery failed: {:s}'.format(str(err))) - # print(f'Message delivery failed: {err}') - # else: - # LOGGER.info('Message delivered to topic {:}'.format(msg.topic())) - # print(f'Message delivered to topic {msg.topic()}') diff --git a/src/telemetry/backend/tests/test_backend.py b/src/telemetry/backend/tests/test_backend.py index e75b33ca5..28b92fb29 100644 --- a/src/telemetry/backend/tests/test_backend.py +++ b/src/telemetry/backend/tests/test_backend.py @@ -12,12 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. +import pytest import logging import time -from typing import Dict -from common.tools.kafka.Variables import KafkaTopic from telemetry.backend.service.TelemetryBackendService import TelemetryBackendService from .messages import create_collector_request +from .Fixtures import context_client, device_client +from .add_devices import load_topology LOGGER = logging.getLogger(__name__) @@ -26,28 +27,42 @@ LOGGER = logging.getLogger(__name__) # Tests Implementation of Telemetry Backend ########################### +@pytest.fixture(autouse=True) +def log_all_methods(request): + ''' + This fixture logs messages before and after each test function runs, indicating the start and end of the test. + The autouse=True parameter ensures that this logging happens automatically for all tests in the module. + ''' + LOGGER.info(f" >>>>> Starting test: {request.node.name} ") + yield + LOGGER.info(f" <<<<< Finished test: {request.node.name} ") + +@pytest.fixture +def telemetryBackend_service(): + LOGGER.info('Initializing TelemetryBackendService...') + + _service = TelemetryBackendService() + _service.start() + + LOGGER.info('Yielding TelemetryBackendService...') + yield _service + + LOGGER.info('Terminating TelemetryBackendService...') + _service.stop() + LOGGER.info('Terminated TelemetryBackendService...') + + +def test_InitiateCollectorBackend(telemetryBackend_service): + LOGGER.info(" Backend Initiated Successfully. Waiting for timer to finish ...") + time.sleep(300) + LOGGER.info(" Backend Timer Finished Successfully. ") + # --- "test_validate_kafka_topics" should be run before the functionality tests --- -def test_validate_kafka_topics(): - LOGGER.debug(" >>> test_validate_kafka_topics: START <<< ") - response = KafkaTopic.create_all_topics() - assert isinstance(response, bool) - -# def test_RunRequestListener(): -# LOGGER.info('test_RunRequestListener') -# TelemetryBackendServiceObj = TelemetryBackendService() -# threading.Thread(target=TelemetryBackendServiceObj.RequestListener).start() - -def test_RunInitiateCollectorBackend(): - LOGGER.debug(">>> RunInitiateCollectorBackend <<<") - collector_obj = create_collector_request() - collector_id = collector_obj.collector_id.collector_id.uuid - collector_dict : Dict = { - "kpi_id" : collector_obj.kpi_id.kpi_id.uuid, - "duration": collector_obj.duration_s, - "interval": collector_obj.interval_s - } - TeleObj = TelemetryBackendService() - TeleObj.InitiateCollectorBackend(collector_id, collector_dict) - time.sleep(20) - - LOGGER.debug("--- Execution Finished Sucessfully---") +# def test_validate_kafka_topics(): +# LOGGER.debug(" >>> test_validate_kafka_topics: START <<< ") +# response = KafkaTopic.create_all_topics() +# assert isinstance(response, bool) + +# # Call load_topology from the add_devices.py file +# def test_load_topology(context_client, device_client): +# load_topology(context_client, device_client) diff --git a/src/telemetry/frontend/service/TelemetryFrontendServiceServicerImpl.py b/src/telemetry/frontend/service/TelemetryFrontendServiceServicerImpl.py index f74e97ffd..1ef8ed46b 100644 --- a/src/telemetry/frontend/service/TelemetryFrontendServiceServicerImpl.py +++ b/src/telemetry/frontend/service/TelemetryFrontendServiceServicerImpl.py @@ -13,7 +13,6 @@ # limitations under the License. import json -import threading from typing import Any, Dict import grpc import logging @@ -29,7 +28,6 @@ from telemetry.database.Telemetry_DB import TelemetryDB from confluent_kafka import Consumer as KafkaConsumer from confluent_kafka import Producer as KafkaProducer -from confluent_kafka import KafkaError LOGGER = logging.getLogger(__name__) @@ -49,7 +47,7 @@ class TelemetryFrontendServiceServicerImpl(TelemetryFrontendServiceServicer): @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def StartCollector(self, - request : Collector, grpc_context: grpc.ServicerContext # type: ignore + request : Collector, context: grpc.ServicerContext # type: ignore ) -> CollectorId: # type: ignore LOGGER.info ("gRPC message: {:}".format(request)) response = CollectorId() @@ -86,7 +84,7 @@ class TelemetryFrontendServiceServicerImpl(TelemetryFrontendServiceServicer): @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def StopCollector(self, - request : CollectorId, grpc_context: grpc.ServicerContext # type: ignore + request : CollectorId, context: grpc.ServicerContext # type: ignore ) -> Empty: # type: ignore LOGGER.info ("gRPC message: {:}".format(request)) try: @@ -125,7 +123,7 @@ class TelemetryFrontendServiceServicerImpl(TelemetryFrontendServiceServicer): @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def SelectCollectors(self, - request : CollectorFilter, contextgrpc_context: grpc.ServicerContext # type: ignore + request : CollectorFilter, context: grpc.ServicerContext # type: ignore ) -> CollectorList: # type: ignore LOGGER.info("gRPC message: {:}".format(request)) response = CollectorList() -- GitLab From af6688ba9ad5972ed2f5334b2f1925f5c2a0265b Mon Sep 17 00:00:00 2001 From: Waleed Akbar <wakbar@cttc.es> Date: Sun, 26 Jan 2025 18:00:10 +0000 Subject: [PATCH 032/213] Updated Telemetry Backend - Enhance telemetry tests with logging - Update collector API methods - Updated Telemetry backend collector management --- .../backend/collector_api/_Collector.py | 42 +- .../collectors/emulated/EmulatedCollector.py | 378 ++---------------- .../service/TelemetryBackendService.py | 84 ++-- src/telemetry/frontend/tests/test_frontend.py | 37 +- 4 files changed, 110 insertions(+), 431 deletions(-) diff --git a/src/telemetry/backend/collector_api/_Collector.py b/src/telemetry/backend/collector_api/_Collector.py index ec4ba943c..d6e711d65 100644 --- a/src/telemetry/backend/collector_api/_Collector.py +++ b/src/telemetry/backend/collector_api/_Collector.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import threading +import queue from typing import Any, Iterator, List, Optional, Tuple, Union # Special resource names to request to the collector to retrieve the specified @@ -135,31 +135,25 @@ class _Collector: """ raise NotImplementedError() - def SubscribeState(self, subscriptions: List[Tuple[str, float, float]]) -> \ + def SubscribeState(self, subscriptions: List[Tuple[str, dict, float, float]]) -> \ + bool: + """ Subscribe to state information of the entire device or selected resources. + Subscriptions are incremental, and the collector should keep track of requested resources. + List of tuples, each containing: + - resource_id (str): Identifier pointing to the resource to be subscribed. + - resource_dict (dict): Dictionary containing resource name, KPI to be subscribed, and type. + - sampling_duration (float): Duration (in seconds) for how long monitoring should last. + - sampling_interval (float): Desired monitoring interval (in seconds) for the specified resource. + List of results for the requested resource key subscriptions. + The return values are in the same order as the requested resource keys. + - True if a resource is successfully subscribed. + - Exception if an error occurs during the subscription process. List[Union[bool, Exception]]: - """ Subscribe to state information of entire device or - selected resources. Subscriptions are incremental. - Collector should keep track of requested resources. - Parameters: - subscriptions : List[Tuple[str, float, float]] - List of tuples, each containing a resource_key pointing the - resource to be subscribed, a sampling_duration, and a - sampling_interval (both in seconds with float - representation) defining, respectively, for how long - monitoring should last, and the desired monitoring interval - for the resource specified. - Returns: - results : List[Union[bool, Exception]] - List of results for resource key subscriptions requested. - Return values must be in the same order as the resource keys - requested. If a resource is properly subscribed, - True must be retrieved; otherwise, the Exception that is - raised during the processing must be retrieved. - """ + """ raise NotImplementedError() - def UnsubscribeState(self, subscriptions: List[Tuple[str, float, float]]) \ - -> List[Union[bool, Exception]]: + def UnsubscribeState(self, resource_key: str) \ + -> bool: """ Unsubscribe from state information of entire device or selected resources. Subscriptions are incremental. Collector should keep track of requested resources. @@ -182,7 +176,7 @@ class _Collector: raise NotImplementedError() def GetState( - self, blocking=False, terminate : Optional[threading.Event] = None + self, duration : int, blocking=False, terminate: Optional[queue.Queue] = None ) -> Iterator[Tuple[float, str, Any]]: """ Retrieve last collected values for subscribed resources. Operates as a generator, so this method should be called once and will diff --git a/src/telemetry/backend/collectors/emulated/EmulatedCollector.py b/src/telemetry/backend/collectors/emulated/EmulatedCollector.py index 90be01336..48102a943 100644 --- a/src/telemetry/backend/collectors/emulated/EmulatedCollector.py +++ b/src/telemetry/backend/collectors/emulated/EmulatedCollector.py @@ -15,10 +15,7 @@ import pytz import queue import logging -import uuid -import json from anytree import Node, Resolver -from apscheduler.events import EVENT_JOB_ADDED, EVENT_JOB_REMOVED from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.jobstores.memory import MemoryJobStore from apscheduler.executors.pool import ThreadPoolExecutor @@ -36,10 +33,6 @@ class EmulatedCollector(_Collector): """ def __init__(self, address: str, port: int, **settings): super().__init__('emulated_collector', address, port, **settings) - self._initial_config = Node('root') # Tree structure for initial config - self._running_config = Node('root') # Tree structure for running config - self._subscriptions = Node('subscriptions') # Tree for state subscriptions - self._resolver = Resolver() # For path resolution in tree structures self._out_samples = queue.Queue() # Queue to hold synthetic state samples self._synthetic_data = SyntheticMetricsGenerator(metric_queue=self._out_samples) # Placeholder for synthetic data generator self._scheduler = BackgroundScheduler(daemon=True) @@ -48,8 +41,8 @@ class EmulatedCollector(_Collector): executors = {'default': ThreadPoolExecutor(max_workers=1)}, timezone = pytz.utc ) - self._scheduler.add_listener(self._listener_job_added_to_subscription_tree, EVENT_JOB_ADDED) - self._scheduler.add_listener(self._listener_job_removed_from_subscription_tree, EVENT_JOB_REMOVED) + # self._scheduler.add_listener(self._listener_job_added_to_subscription_tree, EVENT_JOB_ADDED) + # self._scheduler.add_listener(self._listener_job_removed_from_subscription_tree, EVENT_JOB_REMOVED) self._helper_methods = EmulatedCollectorHelper() self.logger = logging.getLogger(__name__) @@ -77,73 +70,56 @@ class EmulatedCollector(_Collector): if not self.connected: raise RuntimeError("Collector is not connected. Please connect before performing operations.") - def SubscribeState(self, subscriptions: List[Tuple[str, float, float]]) -> List[Union[bool, Exception]]: + def SubscribeState(self, subscriptions: List[Tuple[str, dict, float, float]]) -> bool: self._require_connection() - results = [] - for resource_key, duration, interval in subscriptions: - resource_key = self._helper_methods.validate_resource_key(resource_key) # Validate the endpoint name - self.logger.info(f"1. Subscribing to {resource_key} with duration {duration}s and interval {interval}s") + try: + job_id, endpoint, duration, interval = subscriptions + except: + self.logger.exception(f"Invalid subscription format: {subscriptions}") + return False + if endpoint: + self.logger.info(f"Subscribing to {endpoint} with duration {duration}s and interval {interval}s") try: - self._resolver.get(self._running_config, resource_key) # Verify if the resource key exists in the running configuration - self.logger.info(f"Resource key {resource_key} exists in the configuration.") - resource_value = json.loads(self._resolver.get(self._running_config, resource_key).value) - if resource_value is not None: - sample_type_ids = resource_value['sample_types'] - self.logger.info(f"Sample type IDs for {resource_key}: {sample_type_ids}") - if len(sample_type_ids) == 0: - self.logger.warning(f"No sample types found for {resource_key}. Skipping subscription.") - results.append(False) - continue - else: - self.logger.warning(f"No sample types found for {resource_key}. Skipping subscription.") - results.append(False) - continue + sample_type_ids = endpoint['sample_types'] # type: ignore + resource_name = endpoint['name'] # type: ignore # Add the job to the scheduler - job_id = f"{resource_key}-{uuid.uuid4()}" self._scheduler.add_job( self._generate_sample, 'interval', seconds=interval, - args=[resource_key, sample_type_ids], - id=job_id, + args=[resource_name, sample_type_ids], + id=f"{job_id}", replace_existing=True, end_date=datetime.now(pytz.utc) + timedelta(seconds=duration) ) - self.logger.info(f"Job added to scheduler for resource key {resource_key} with duration {duration}s and interval {interval}s") - results.append(True) - except Exception as e: - self.logger.error(f"Failed to verify resource key or add job: {e}") - results.append(e) - return results + self.logger.info(f"Job added to scheduler for resource key {resource_name} with duration {duration}s and interval {interval}s") + return True + except: + self.logger.exception(f"Failed to verify resource key or add job:") + return False + else: + self.logger.warning(f"No sample types found for {endpoint}. Skipping subscription.") + return False - def UnsubscribeState(self, subscriptions: List[Tuple[str, float, float]]) -> List[Union[bool, Exception]]: + def UnsubscribeState(self, resource_key: str) -> bool: self._require_connection() - results = [] - for resource_key, _, _ in subscriptions: - resource_key = self._helper_methods.validate_resource_key(resource_key) - try: - # Check if job exists - job_ids = [job.id for job in self._scheduler.get_jobs() if resource_key in job.id] - if not job_ids: - self.logger.warning(f"No active jobs found for {resource_key}. It might have already terminated.") - results.append(False) - continue - # Remove jobs - for job_id in job_ids: - self._scheduler.remove_job(job_id) - - self.logger.info(f"Unsubscribed from {resource_key} with job IDs: {job_ids}") - results.append(True) - except Exception as e: - self.logger.exception(f"Failed to unsubscribe from {resource_key}") - results.append(e) - return results + try: + # Check if job exists + job_ids = [job.id for job in self._scheduler.get_jobs() if resource_key in job.id] + if not job_ids: + self.logger.warning(f"No active jobs found for {resource_key}. It might have already terminated.") + return False + for job_id in job_ids: + self._scheduler.remove_job(job_id) + self.logger.info(f"Unsubscribed from {resource_key} with job IDs: {job_ids}") + return True + except: + self.logger.exception(f"Failed to unsubscribe from {resource_key}") + return False - def GetState(self, blocking: bool = False, terminate: Optional[queue.Queue] = None) -> Iterator[Tuple[float, str, Any]]: + def GetState(self, duration : int, blocking: bool = False, terminate: Optional[queue.Queue] = None) -> Iterator[Tuple[float, str, Any]]: self._require_connection() start_time = datetime.now(pytz.utc) - duration = 10 # Duration of the subscription in seconds (as an example) - while True: try: if terminate and not terminate.empty(): @@ -168,283 +144,3 @@ class EmulatedCollector(_Collector): self.logger.debug(f"Executing _generate_sample for resource: {resource_key}") sample = self._synthetic_data.generate_synthetic_data_point(resource_key, sample_type_ids) self._out_samples.put(sample) - -# ------------- Event Listeners (START)----------------- - - def _listener_job_removed_from_subscription_tree(self, event): - if event.job_id: - # Extract the resource key from the job ID - resource_key = event.job_id.split('-')[0] - resource_key = self._helper_methods.validate_resource_key(resource_key) - - # Remove the subscription from the tree - try: - subscription_path = resource_key.split('/') - parent = self._subscriptions - for part in subscription_path: - parent = next((child for child in parent.children if child.name == part), None) - if not parent: - raise ValueError(f"Subscription path '{resource_key}' not found in tree.") - if parent: - parent.parent.children = tuple(child for child in parent.parent.children if child != parent) - self.logger.warning(f"Automatically removed subscription from subscription_tree for {resource_key} after job termination by listener. Maybe due to timeout.") - except Exception as e: - self.logger.warning(f"Failed to remove subscription for {resource_key}: {e}") - - def _listener_job_added_to_subscription_tree(self, event): - try: - job_id = event.job_id - if job_id: - resource_key = job_id.split('-')[0] # Extract resource key from job ID - resource_key = self._helper_methods.validate_resource_key(resource_key) - subscription_path = resource_key.split('/') - parent = self._subscriptions - for part in subscription_path: - node = next((child for child in parent.children if child.name == part), None) - if not node: - node = Node(part, parent=parent) - parent = node - parent.value = { - "job_id": job_id - } - self.logger.info(f"Automatically added subscription for {resource_key} to the subscription_tree by listener.") - except Exception as e: - self.logger.exception("Failed to add subscription to the tree") - -# ------------- Event Listeners (END)----------------- - -#------------------------------------------------------------------------------------- -# ------- The below methods are kept for debugging purposes (test-case) only --------- -#------------------------------------------------------------------------------------- - -# This method can be commented but this will arise an error in the test-case (@pytest.fixture --> connected_configured_collector()). - def SetConfig(self, resources: dict) -> List[Union[bool, Exception]]: # For debugging purposes. - self._require_connection() - results = [] - - # if not isinstance(resources, dict): - # self.logger.error("Invalid configuration format: resources must be a dictionary.") - # raise ValueError("Invalid configuration format. Must be a dictionary.") - if 'config_rules' not in resources or not isinstance(resources['config_rules'], list): - self.logger.error("Invalid configuration format: 'config_rules' key missing or not a list.") - raise ValueError("Invalid configuration format. Must contain a 'config_rules' key with a list of rules.") - - for rule in resources['config_rules']: - try: - if 'action' not in rule or 'custom' not in rule: - raise ValueError(f"Invalid rule format: {rule}") - - action = rule['action'] - custom = rule['custom'] - resource_key = custom.get('resource_key') - resource_value = custom.get('resource_value') - - if not resource_key: - raise ValueError(f"Resource key is missing in rule: {rule}") - - if resource_value is None: - raise ValueError(f"Resource value is None for key: {resource_key}") - if not resource_key: - raise ValueError(f"Resource key is missing in rule: {rule}") - - if action == 1: # Set action - resource_path = self._helper_methods._parse_resource_key(resource_key) - # self.logger.info(f"1. Setting configuration for resource key {resource_key} and resource_path: {resource_path}") - parent = self._running_config - - for part in resource_path[:-1]: - if '[' in part and ']' in part: - base, index = part.split('[', 1) - index = index.rstrip(']') - parent = self._helper_methods._find_or_create_node(index, self._helper_methods._find_or_create_node(base, parent)) - # self.logger.info(f"2a. Creating node: {base}, {index}, {parent}") - elif resource_path[-1] != 'settings': - # self.logger.info(f"2b. Creating node: {part}") - parent = self._helper_methods._find_or_create_node(part, parent) - - final_part = resource_path[-1] - if final_part in ['address', 'port']: - self._helper_methods._create_or_update_node(final_part, parent, resource_value) - self.logger.info(f"Configured: {resource_key} = {resource_value}") - - if resource_key.startswith("_connect/settings"): - parent = self._helper_methods._find_or_create_node("_connect", self._running_config) - settings_node = self._helper_methods._find_or_create_node("settings", parent) - settings_node.value = None # Ensure settings node has None value - endpoints_node = self._helper_methods._find_or_create_node("endpoints", settings_node) - - for endpoint in resource_value.get("endpoints", []): - uuid = endpoint.get("uuid") - uuid = uuid.replace('/', '_') if uuid else None - if uuid: - # self.logger.info(f"3. Creating endpoint: {uuid}, {endpoint}, {endpoints_node}") - self._helper_methods._create_or_update_node(uuid, endpoints_node, endpoint) - self.logger.info(f"Configured endpoint: {uuid} : {endpoint}") - - elif resource_key.startswith("/interface"): - interface_parent = self._helper_methods._find_or_create_node("interface", self._running_config) - name = resource_value.get("name") - name = name.replace('/', '_') if name else None - if name: - self._helper_methods._create_or_update_node(name, interface_parent, resource_value) - self.logger.info(f"Configured interface: {name} : {resource_value}") - # self.logger.info(f"4. Configured interface: {name}") - - results.append(True) - else: - raise ValueError(f"Unsupported action '{action}' in rule: {rule}") - - if resource_value is None: - raise ValueError(f"Resource value is None for key: {resource_key}") - - except Exception as e: - self.logger.exception(f"Failed to apply rule: {rule}") - results.append(e) - - return results - -#----------------------------------- -# ------- EXTRA Methods ------------ -#----------------------------------- - - # def log_active_jobs(self): # For debugging purposes. - # """ - # Logs the IDs of all active jobs. - # This method retrieves the list of active jobs from the scheduler and logs their IDs using the logger. - # """ - # self._require_connection() - # jobs = self._scheduler.get_jobs() - # self.logger.info(f"Active jobs: {[job.id for job in jobs]}") - - # def print_config_tree(self): # For debugging purposes. - # """ - # Reads the configuration using GetConfig and prints it as a hierarchical tree structure. - # """ - # self._require_connection() - - # def print_tree(node, indent=""): - # """ - # Recursively prints the configuration tree. - - # Args: - # node (Node): The current node to print. - # indent (str): The current indentation level. - # """ - # if node.name != "root": # Skip the root node's name - # value = getattr(node, "value", None) - # print(f"{indent}- {node.name}: {json.loads(value) if value else ''}") - - # for child in node.children: - # print_tree(child, indent + " ") - - # print("Configuration Tree:") - # print_tree(self._running_config) - - - # def GetInitialConfig(self) -> List[Tuple[str, Any]]: # comment - # self._require_connection() - # results = [] - # for node in self._initial_config.descendants: - # value = getattr(node, "value", None) - # results.append((node.name, json.loads(value) if value else None)) - # self.logger.info("Retrieved initial configurations") - # return results - - # def GetConfig(self, resource_keys: List[str] = []) -> List[Tuple[str, Union[Any, dict, Exception]]]: # comment - # """ - # Retrieves the configuration for the specified resource keys. - # If no keys are provided, returns the full configuration tree. - - # Args: - # resource_keys (List[str]): A list of keys specifying the configuration to retrieve. - - # Returns: - # List[Tuple[str, Union[Any, dict, Exception]]]: A list of tuples with the resource key and its value, - # subtree, or an exception. - # """ - # self._require_connection() - # results = [] - - # try: - # if not resource_keys: - # # If no specific keys are provided, return the full configuration tree - - # full_tree = self._helper_methods._generate_subtree(self._running_config) - # # full_tree = self._generate_subtree(self._running_config) - # return [("full_configuration", full_tree)] - - # for key in resource_keys: - # try: - # # Parse the resource key - # resource_path = self._helper_methods.(key) - # self.logger.info(f"1. Retrieving configuration for resource path : {resource_path}") - - # # Navigate to the node corresponding to the key - # parent = self._running_config - # for part in resource_path: - # parent = self._find_or_raise_node(part, parent) - - # # Check if the node has a value - # value = getattr(parent, "value", None) - # if value: - # # If a value exists, return it - # results.append((key, json.loads(value))) - # else: - # # If no value, return the subtree of this node - # subtree = self._helper_methods._generate_subtree(parent) - # # subtree = self._generate_subtree(parent) - # results.append((key, subtree)) - - # except Exception as e: - # self.logger.exception(f"Failed to retrieve configuration for key: {key}") - # results.append((key, e)) - - # except Exception as e: - # self.logger.exception("Failed to retrieve configurations") - # results.append(("Error", e)) - - # return results - - # def DeleteConfig(self, resources: List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: # comment - # self._require_connection() - # results = [] - - # for key in resources: - # try: - # # Parse resource key into parts, handling brackets correctly - # resource_path = self._helper_methods.(key) - - # parent = self._running_config - # for part in resource_path: - # parent = self._find_or_raise_node(part, parent) - - # # Delete the final node - # node_to_delete = parent - # parent = node_to_delete.parent - # parent.children = tuple(child for child in parent.children if child != node_to_delete) - # self.logger.info(f"Deleted configuration for key: {key}") - - # # Handle endpoints structure - # if "interface" in key and "settings" in key: - # interface_name = key.split('[')[-1].split(']')[0] - # endpoints_parent = self._find_or_raise_node("_connect", self._running_config) - # endpoints_node = self._find_or_raise_node("endpoints", endpoints_parent) - # endpoint_to_delete = next((child for child in endpoints_node.children if child.name == interface_name), None) - # if endpoint_to_delete: - # endpoints_node.children = tuple(child for child in endpoints_node.children if child != endpoint_to_delete) - # self.logger.info(f"Removed endpoint entry for interface '{interface_name}'") - - # # Check if parent has no more children and is not the root - # while parent and parent.name != "root" and not parent.children: - # node_to_delete = parent - # parent = node_to_delete.parent - # parent.children = tuple(child for child in parent.children if child != node_to_delete) - # self.logger.info(f"Deleted empty parent node: {node_to_delete.name}") - - # results.append(True) - # except Exception as e: - # self.logger.exception(f"Failed to delete configuration for key: {key}") - # results.append(e) - - # return results - diff --git a/src/telemetry/backend/service/TelemetryBackendService.py b/src/telemetry/backend/service/TelemetryBackendService.py index 0c515768e..c392efd1d 100755 --- a/src/telemetry/backend/service/TelemetryBackendService.py +++ b/src/telemetry/backend/service/TelemetryBackendService.py @@ -44,6 +44,7 @@ class TelemetryBackendService(GenericGrpcService): self.kafka_consumer = KafkaConsumer({'bootstrap.servers' : KafkaConfig.get_kafka_address(), 'group.id' : 'backend', 'auto.offset.reset' : 'latest'}) + self.collector = EmulatedCollector(address="127.0.0.1", port=8000) self.active_jobs = {} def install_servicers(self): @@ -65,7 +66,7 @@ class TelemetryBackendService(GenericGrpcService): if receive_msg.error().code() == KafkaError._PARTITION_EOF: continue elif receive_msg.error().code() == KafkaError.UNKNOWN_TOPIC_OR_PART: - LOGGER.warning(f"Subscribed topic {receive_msg.topic()} does not exist. May be topic does not have any messages.") + LOGGER.warning(f"Subscribed topic {receive_msg.topic()} does not exist or topic does not have any messages.") continue else: LOGGER.error("Consumer error: {}".format(receive_msg.error())) @@ -77,11 +78,11 @@ class TelemetryBackendService(GenericGrpcService): collector_id = receive_msg.key().decode('utf-8') LOGGER.debug('Recevied Collector: {:} - {:}'.format(collector_id, collector)) - duration = collector.get('duration', -1) + duration = collector.get('duration', 0) if duration == -1 and collector['interval'] == -1: self.TerminateCollector(collector_id) else: - LOGGER.info("Collector ID: {:} - Scheduling...".format(collector_id)) + LOGGER.info("Received Collector ID: {:} - Scheduling...".format(collector_id)) if collector_id not in self.active_jobs: stop_event = threading.Event() self.active_jobs[collector_id] = stop_event @@ -95,13 +96,15 @@ class TelemetryBackendService(GenericGrpcService): )).start() # Stop the Collector after the given duration if duration > 0: - def stop_after_duration(): - time.sleep(duration) - LOGGER.warning(f"Execution duration ({duration}) completed of Collector: {collector_id}") - self.TerminateCollector(collector_id) + def stop_after_duration(completion_time, stop_event): + time.sleep(completion_time) + if not stop_event.is_set(): + LOGGER.warning(f"Execution duration ({completion_time}) completed of Collector: {collector_id}") + self.TerminateCollector(collector_id) duration_thread = threading.Thread( - target=stop_after_duration, daemon=True, name=f"stop_after_duration_{collector_id}" + target=stop_after_duration, daemon=True, name=f"stop_after_duration_{collector_id}", + args=(duration, stop_event) ) duration_thread.start() else: @@ -113,7 +116,7 @@ class TelemetryBackendService(GenericGrpcService): """ Method to handle collector request. """ - end_points : list = self.get_endpoints_from_kpi_id(kpi_id) + end_points : dict = self.get_endpoints_from_kpi_id(kpi_id) if not end_points: LOGGER.warning("KPI ID: {:} - Endpoints not found. Skipping...".format(kpi_id)) @@ -125,21 +128,24 @@ class TelemetryBackendService(GenericGrpcService): if device_type == "EMU-Device": LOGGER.info("KPI ID: {:} - Device Type: {:} - Endpoints: {:}".format(kpi_id, device_type, end_points)) subscription = [collector_id, end_points, duration, interval] - self.EmulatedCollectorHandler(subscription, kpi_id, stop_event) + self.EmulatedCollectorHandler(subscription, duration, collector_id, kpi_id, stop_event) else: LOGGER.warning("KPI ID: {:} - Device Type: {:} - Not Supported".format(kpi_id, device_type)) - - def EmulatedCollectorHandler(self, subscription, kpi_id, stop_event): + def EmulatedCollectorHandler(self, subscription, duration, collector_id, kpi_id, stop_event): # EmulatedCollector - collector = EmulatedCollector(address="127.0.0.1", port=8000) - collector.Connect() - while not stop_event.is_set(): - # samples = collector.SubscribeState(subscription) - # LOGGER.debug("KPI: {:} - Value: {:}".format(kpi_id, samples)) - # self.GenerateKpiValue(job_id, kpi_id, samples) - LOGGER.info("Generating KPI Values ...") - time.sleep(1) + + self.collector.Connect() + if not self.collector.SubscribeState(subscription): + LOGGER.warning("KPI ID: {:} - Subscription failed. Skipping...".format(kpi_id)) + else: + while not stop_event.is_set(): + samples = list(self.collector.GetState(duration=duration, blocking=True)) + LOGGER.info("KPI: {:} - Value: {:}".format(kpi_id, samples)) + self.GenerateKpiValue(collector_id, kpi_id, samples) + time.sleep(1) + self.collector.Disconnect() + # self.TerminateCollector(collector_id) # No need to terminate, automatically terminated after duration. def GenerateKpiValue(self, collector_id: str, kpi_id: str, measured_kpi_value: Any): """ @@ -171,12 +177,17 @@ class TelemetryBackendService(GenericGrpcService): if stop_event: stop_event.set() LOGGER.info(f"Job {job_id} terminated.") + if self.collector.UnsubscribeState(job_id): + LOGGER.info(f"Unsubscribed from collector: {job_id}") + else: + LOGGER.warning(f"Failed to unsubscribe from collector: {job_id}") else: LOGGER.warning(f"Job {job_id} not found in active jobs.") except: LOGGER.exception("Error terminating job: {:}".format(job_id)) - def get_endpoints_from_kpi_id(self, kpi_id: str) -> list: +# --- Mock Methods --- + def get_endpoints_from_kpi_id(self, kpi_id: str) -> dict: """ Method to get endpoints based on kpi_id. """ @@ -185,7 +196,7 @@ class TelemetryBackendService(GenericGrpcService): '123e4567-e89b-12d3-a456-426614174001': {"uuid": "123e4567-e89b-12d3-a456-42661417ed07", "name": "eth1", "type": "ethernet", "sample_types": []}, '123e4567-e89b-12d3-a456-426614174002': {"uuid": "123e4567-e89b-12d3-a456-42661417ed08", "name": "13/1/2", "type": "copper", "sample_types": [101, 102, 201, 202]}, } - return [kpi_endpoints.get(kpi_id, {})] if kpi_id in kpi_endpoints else [] + return kpi_endpoints.get(kpi_id, {}) if kpi_id in kpi_endpoints else {} def get_device_type_from_kpi_id(self, kpi_id: str) -> str: """ @@ -198,35 +209,6 @@ class TelemetryBackendService(GenericGrpcService): } return kpi_device_types.get(kpi_id, {}).get('device_type', "Unknown") - - # def TerminateCollectorBackend(self, collector_id): - # LOGGER.debug("Terminating collector backend...") - # if collector_id in self.running_threads: - # thread = self.running_threads[collector_id] - # thread.stop() - # del self.running_threads[collector_id] - # LOGGER.debug("Collector backend terminated. Collector ID: {:}".format(collector_id)) - # self.GenerateCollectorTerminationSignal(collector_id, "-1", -1) # Termination confirmation to frontend. - # else: - # LOGGER.warning('Backend collector {:} not found'.format(collector_id)) - - # def GenerateCollectorTerminationSignal(self, collector_id: str, kpi_id: str, measured_kpi_value: Any): - # """ - # Method to write kpi Termination signat on TELEMETRY_RESPONSE Kafka topic - # """ - # producer = self.kafka_producer - # kpi_value : Dict = { - # "kpi_id" : kpi_id, - # "kpi_value" : measured_kpi_value, - # } - # producer.produce( - # KafkaTopic.TELEMETRY_RESPONSE.value, - # key = collector_id, - # value = json.dumps(kpi_value), - # callback = self.delivery_callback - # ) - # producer.flush() - def delivery_callback(self, err, msg): if err: LOGGER.error('Message delivery failed: {:s}'.format(str(err))) diff --git a/src/telemetry/frontend/tests/test_frontend.py b/src/telemetry/frontend/tests/test_frontend.py index 067925a28..6c6107152 100644 --- a/src/telemetry/frontend/tests/test_frontend.py +++ b/src/telemetry/frontend/tests/test_frontend.py @@ -15,6 +15,7 @@ import os import pytest import logging +import time from common.Constants import ServiceNameEnum from common.proto.telemetry_frontend_pb2 import CollectorId, CollectorList @@ -42,6 +43,16 @@ os.environ[get_env_var_name(ServiceNameEnum.TELEMETRY, ENVVAR_SUFIX_SERVICE_PORT LOGGER = logging.getLogger(__name__) +@pytest.fixture(autouse=True) +def log_all_methods(request): + ''' + This fixture logs messages before and after each test function runs, indicating the start and end of the test. + The autouse=True parameter ensures that this logging happens automatically for all tests in the module. + ''' + LOGGER.info(f" >>>>> Starting test: {request.node.name} ") + yield + LOGGER.info(f" <<<<< Finished test: {request.node.name} ") + @pytest.fixture(scope='session') def telemetryFrontend_service(): LOGGER.info('Initializing TelemetryFrontendService...') @@ -82,33 +93,29 @@ def telemetryFrontend_client( # ------- Re-structuring Test --------- # --- "test_validate_kafka_topics" should be run before the functionality tests --- def test_validate_kafka_topics(): - LOGGER.debug(" >>> test_validate_kafka_topics: START <<< ") + # LOGGER.debug(" >>> test_validate_kafka_topics: START <<< ") response = KafkaTopic.create_all_topics() assert isinstance(response, bool) # ----- core funtionality test ----- def test_StartCollector(telemetryFrontend_client): - LOGGER.info(' >>> test_StartCollector START: <<< ') + # LOGGER.info(' >>> test_StartCollector START: <<< ') response = telemetryFrontend_client.StartCollector(create_collector_request()) LOGGER.debug(str(response)) assert isinstance(response, CollectorId) + def test_StopCollector(telemetryFrontend_client): - LOGGER.info(' >>> test_StopCollector START: <<< ') + # LOGGER.info(' >>> test_StopCollector START: <<< ') + LOGGER.info("Waiting before termination...") + time.sleep(30) response = telemetryFrontend_client.StopCollector(create_collector_id()) LOGGER.debug(str(response)) assert isinstance(response, Empty) -def test_SelectCollectors(telemetryFrontend_client): - LOGGER.info(' >>> test_SelectCollectors START: <<< ') - response = telemetryFrontend_client.SelectCollectors(create_collector_filter()) - LOGGER.debug(str(response)) - assert isinstance(response, CollectorList) - -# # ----- Non-gRPC method tests ----- -# def test_RunResponseListener(): -# LOGGER.info(' >>> test_RunResponseListener START: <<< ') -# TelemetryFrontendServiceObj = TelemetryFrontendServiceServicerImpl() -# response = TelemetryFrontendServiceObj.RunResponseListener() # becasue Method "run_kafka_listener" is not define in frontend.proto +# def test_SelectCollectors(telemetryFrontend_client): +# LOGGER.info(' >>> test_SelectCollectors START: <<< ') +# response = telemetryFrontend_client.SelectCollectors(create_collector_filter()) # LOGGER.debug(str(response)) -# assert isinstance(response, bool) +# assert isinstance(response, CollectorList) + -- GitLab From 21a72d9806f82395b19d0cee6dce3ae81058fc2c Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Mon, 27 Jan 2025 14:57:40 +0000 Subject: [PATCH 033/213] Add HTTP Server and gRPC Server Add manifest.yaml Add DockerFile Solve some typo on .proto file --- manifests/ztp_server.yaml | 78 + proto/ztp_server.proto | 4 +- src/common/Constants.py | 5 +- src/ztp_server/Dockerfile | 43 +- src/ztp_server/README.md | 35 - src/ztp_server/client/ZtpClient.py | 7 +- src/ztp_server/data/nso_client.proto | 60 - src/ztp_server/requirements.in | 3 - src/ztp_server/service/ZtpServerService.py | 4 +- .../service/ZtpServerServiceServicerImpl.py | 26 +- .../service/context_subscription/__init__.py | 64 - .../ztpServer_plugins/tfs_api/Resources.py | 22 +- .../ztpServer_plugins/tfs_api/Tools.py | 30 +- .../ztpServer_plugins/tools/Validator.py | 35 - src/ztp_server/tests/Constants.py | 85 - .../tests/MockService_Dependencies.py | 58 - src/ztp_server/tests/PrepareTestScenario.py | 169 - src/ztp_server/tests/__init__.py | 14 - src/ztp_server/tests/data/ietf_acl.json | 56 - .../tests/data/ietf_l3vpn_req_svc1.json | 231 -- .../tests/data/ietf_l3vpn_req_svc2.json | 231 -- .../tests/data/test-ietf-network.json | 1962 ----------- src/ztp_server/tests/data/tfs_api_dummy.json | 442 --- .../data/topology-7router-emu-dummy.json | 157 - .../tests/data/topology-7router-emu.json | 156 - src/ztp_server/tests/data/topology-dummy.json | 3134 ----------------- src/ztp_server/tests/data/topology-real.json | 259 -- src/ztp_server/tests/ietf_acl_client.py | 89 - src/ztp_server/tests/test_etsi_bwm.py | 240 -- src/ztp_server/tests/test_ietf_l2vpn.py | 75 - src/ztp_server/tests/test_ietf_l3vpn.py | 113 - src/ztp_server/tests/test_ietf_network.py | 105 - src/ztp_server/tests/test_slice.py | 125 - src/ztp_server/tests/test_tfs_api.py | 217 -- src/ztp_server/tests/test_yang_acl.py | 104 - 35 files changed, 123 insertions(+), 8315 deletions(-) create mode 100644 manifests/ztp_server.yaml delete mode 100755 src/ztp_server/README.md delete mode 100644 src/ztp_server/data/nso_client.proto delete mode 100755 src/ztp_server/service/context_subscription/__init__.py delete mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py delete mode 100755 src/ztp_server/tests/Constants.py delete mode 100755 src/ztp_server/tests/MockService_Dependencies.py delete mode 100755 src/ztp_server/tests/PrepareTestScenario.py delete mode 100755 src/ztp_server/tests/__init__.py delete mode 100755 src/ztp_server/tests/data/ietf_acl.json delete mode 100755 src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json delete mode 100755 src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json delete mode 100755 src/ztp_server/tests/data/test-ietf-network.json delete mode 100755 src/ztp_server/tests/data/tfs_api_dummy.json delete mode 100755 src/ztp_server/tests/data/topology-7router-emu-dummy.json delete mode 100755 src/ztp_server/tests/data/topology-7router-emu.json delete mode 100755 src/ztp_server/tests/data/topology-dummy.json delete mode 100755 src/ztp_server/tests/data/topology-real.json delete mode 100755 src/ztp_server/tests/ietf_acl_client.py delete mode 100755 src/ztp_server/tests/test_etsi_bwm.py delete mode 100755 src/ztp_server/tests/test_ietf_l2vpn.py delete mode 100755 src/ztp_server/tests/test_ietf_l3vpn.py delete mode 100755 src/ztp_server/tests/test_ietf_network.py delete mode 100755 src/ztp_server/tests/test_slice.py delete mode 100755 src/ztp_server/tests/test_tfs_api.py delete mode 100755 src/ztp_server/tests/test_yang_acl.py diff --git a/manifests/ztp_server.yaml b/manifests/ztp_server.yaml new file mode 100644 index 000000000..6ed469174 --- /dev/null +++ b/manifests/ztp_server.yaml @@ -0,0 +1,78 @@ +# Copyright 2022-2024 ETSI 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. + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ztp_serverservice +spec: + selector: + matchLabels: + app: ztp_serverservice + #replicas: 1 + template: + metadata: + labels: + app: ztp_serverservice + spec: + terminationGracePeriodSeconds: 5 + containers: + - name: server + image: labs.etsi.org:5050/tfs/controller/ztp_server:latest + imagePullPolicy: Always + ports: + - containerPort: 8005 + - containerPort: 5051 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:5051"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:5051"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi +--- +apiVersion: v1 +kind: Service +metadata: + name: ztp_serverservice + labels: + app: ztp_serverservice +spec: + type: ClusterIP + selector: + app: ztp_serverservice + ports: + - name: http + protocol: TCP + port: 8005 + targetPort: 8005 + - name: grpc + protocol: TCP + port: 5051 + targetPort: 5051 + - name: metrics + protocol: TCP + port: 9192 + targetPort: +--- diff --git a/proto/ztp_server.proto b/proto/ztp_server.proto index 6c575df11..807751084 100755 --- a/proto/ztp_server.proto +++ b/proto/ztp_server.proto @@ -25,11 +25,11 @@ service ZtpServerService { // Define the request message for both methods message ProvisioningScriptName { - string input = 1; + string scriptname = 1; } message ZtpFileName { - string input = 1; + string filename = 1; } message ProvisioningScript { diff --git a/src/common/Constants.py b/src/common/Constants.py index 660e99f04..50b792c65 100644 --- a/src/common/Constants.py +++ b/src/common/Constants.py @@ -122,8 +122,9 @@ DEFAULT_SERVICE_GRPC_PORTS = { # Default HTTP/REST-API service ports DEFAULT_SERVICE_HTTP_PORTS = { - ServiceNameEnum.NBI .value : 8080, - ServiceNameEnum.WEBUI.value : 8004, + ServiceNameEnum.NBI .value : 8080, + ServiceNameEnum.WEBUI.value : 8004, + ServiceNameEnum.ZTP_SERVER.value : 8005, } # Default HTTP/REST-API service base URLs diff --git a/src/ztp_server/Dockerfile b/src/ztp_server/Dockerfile index a9be06d37..bbcc282bd 100755 --- a/src/ztp_server/Dockerfile +++ b/src/ztp_server/Dockerfile @@ -19,21 +19,6 @@ RUN apt-get --yes --quiet --quiet update && \ apt-get --yes --quiet --quiet install wget g++ git build-essential cmake libpcre2-dev python3-dev python3-cffi && \ rm -rf /var/lib/apt/lists/* -# Download, build and install libyang. Note that APT package is outdated -# - Ref: https://github.com/CESNET/libyang -# - Ref: https://github.com/CESNET/libyang-python/ -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" .. -RUN make -RUN make install -RUN ldconfig - # Set Python to show logs as they occur ENV PYTHONUNBUFFERED=0 @@ -69,29 +54,19 @@ RUN rm *.proto RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; # Create component sub-folders, get specific Python packages -RUN mkdir -p /var/teraflow/nbi -WORKDIR /var/teraflow/nbi -COPY src/nbi/requirements.in requirements.in +RUN mkdir -p /var/teraflow/ztp_server +WORKDIR /var/teraflow/ztp_server +COPY src/ztp_server/requirements.in requirements.in RUN pip-compile --quiet --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt # Add component files into working directory WORKDIR /var/teraflow -COPY src/nbi/. nbi/ -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/service/__init__.py service/__init__.py -COPY src/service/client/. service/client/ -COPY src/slice/__init__.py slice/__init__.py -COPY src/slice/client/. slice/client/ -COPY src/qkd_app/__init__.py qkd_app/__init__.py -COPY src/qkd_app/client/. qkd_app/client/ -COPY src/vnt_manager/__init__.py vnt_manager/__init__.py -COPY src/vnt_manager/client/. vnt_manager/client/ -RUN mkdir -p /var/teraflow/tests/tools -COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ +COPY src/ztp_server/. ztp_server/ + +#ToDo Implement Test +#RUN mkdir -p /var/teraflow/tests/tools +#COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ # Start the service -ENTRYPOINT ["python", "-m", "nbi.service"] +ENTRYPOINT ["python", "-m", "ztp_server.service"] diff --git a/src/ztp_server/README.md b/src/ztp_server/README.md deleted file mode 100755 index 32902a0b3..000000000 --- a/src/ztp_server/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# NBI Component - -The NBI component uses libyang to validate and process messages. Follow instructions below to install it. - -## Install libyang -- Ref: https://github.com/CESNET/libyang -- Ref: https://github.com/CESNET/libyang-python/ - -__NOTE__: APT package is extremely outdated and does not work for our purposes. - -### Build Requisites -```bash -sudo apt-get install build-essential cmake libpcre2-dev -sudo apt-get install python3-dev gcc python3-cffi -``` - -### Build from source -```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" .. -make -sudo make install -sudo ldconfig -``` - -### Install Python bindings -```bash -pip install libyang==2.8.0 -``` diff --git a/src/ztp_server/client/ZtpClient.py b/src/ztp_server/client/ZtpClient.py index 5e5737857..9e14bd694 100755 --- a/src/ztp_server/client/ZtpClient.py +++ b/src/ztp_server/client/ZtpClient.py @@ -15,9 +15,8 @@ import grpc, logging from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_service_port_grpc -from common.proto.ztp_server_pb2_grpc import ztpServerServiceStub -from common.proto.context_pb2 import ( - ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) +from common.proto.ztp_server_pb2_grpc import ZtpServerServiceStub +from common.proto.ztp_server_pb2 import ProvisioningScriptName, ProvisioningScript, ZtpFileName, ZtpFile from common.tools.client.RetryDecorator import retry, delay_exponential from common.tools.grpc.Tools import grpc_message_to_json_string @@ -39,7 +38,7 @@ class ZtpClient: def connect(self): self.channel = grpc.insecure_channel(self.endpoint) - self.stub = ztpServerServiceStub(self.channel) + self.stub = ZtpServerServiceStub(self.channel) def close(self): if self.channel is not None: self.channel.close() diff --git a/src/ztp_server/data/nso_client.proto b/src/ztp_server/data/nso_client.proto deleted file mode 100644 index d5983c62c..000000000 --- a/src/ztp_server/data/nso_client.proto +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -syntax = "proto3"; -package nos_client; - -message NOS_SW { - string ztp_device_sw_url = 1; - bytes ztp_device_sw_file = 2; -} - -// For ONIE Requests -message NOS_SW_REQ { - string serial_number = 1; - string eth_addr = 2; - string vendor_id = 3; - string machine = 4; - string machine_rev = 5; - string arch = 6; - string security_key = 7; - string operation = 8; -} - -message Config_Script { - string config_script_url = 1; - bytes config_script_file = 2; -} - -message Config_Script_REQ { - string agent = 1; - string machine = 2; - string serial_number = 3; - string eth_addr = 4; - string version = 5; -} - -message Status_Notification { - string status = 1; - string serial_number = 2; - string eth_addr = 3; -} - -message Empty{} - -service nos_client { - rpc GetNOSFile (NOS_SW_REQ) returns (NOS_SW) {} - rpc GetConfigScriptFile (Config_Script_REQ) returns (Config_Script) {} - rpc NotifyStatus (Status_Notification) returns (Empty) {} -} diff --git a/src/ztp_server/requirements.in b/src/ztp_server/requirements.in index 0d7804836..ba715494d 100755 --- a/src/ztp_server/requirements.in +++ b/src/ztp_server/requirements.in @@ -18,10 +18,7 @@ Flask==2.1.3 Flask-HTTPAuth==4.5.0 Flask-RESTful==0.3.9 jsonschema==4.4.0 -libyang==2.8.0 netaddr==0.9.0 -pyang==2.6.0 -git+https://github.com/robshakir/pyangbind.git pydantic==2.6.3 requests==2.27.1 werkzeug==2.3.7 diff --git a/src/ztp_server/service/ZtpServerService.py b/src/ztp_server/service/ZtpServerService.py index aba4aee94..c099cf7f6 100755 --- a/src/ztp_server/service/ZtpServerService.py +++ b/src/ztp_server/service/ZtpServerService.py @@ -14,7 +14,7 @@ from common.Constants import ServiceNameEnum from common.Settings import get_service_port_grpc -from common.proto.ztp_server_pb2_grpc import add_Ztp_ServerServiceServicer_to_server +from common.proto.ztp_server_pb2_grpc import add_ZtpServerServiceServicer_to_server from common.tools.service.GenericGrpcService import GenericGrpcService from ztp_server.service.ZtpServerServiceServicerImpl import ZtpServerServiceServicerImpl @@ -25,4 +25,4 @@ class ZtpServerService(GenericGrpcService): self.ztp_servicer = ZtpServerServiceServicerImpl() def install_servicers(self): - add_Ztp_ServerServiceServicer_to_server(self.ztp_servicer, self.server) + add_ZtpServerServiceServicer_to_server(self.ztp_servicer, self.server) diff --git a/src/ztp_server/service/ZtpServerServiceServicerImpl.py b/src/ztp_server/service/ZtpServerServiceServicerImpl.py index 015f958f4..410db6cb3 100755 --- a/src/ztp_server/service/ZtpServerServiceServicerImpl.py +++ b/src/ztp_server/service/ZtpServerServiceServicerImpl.py @@ -12,17 +12,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -import grpc, logging, json +import grpc, logging, json, os from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method -from common.proto.context_pb2 import ( - ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) -from common.proto.ztp_server_pb2_grpc import ztpServerServiceServicer +from common.proto.ztp_server_pb2 import ProvisioningScriptName, ProvisioningScript, ZtpFileName, ZtpFile +from common.proto.ztp_server_pb2_grpc import ZtpServerServiceServicer LOGGER = logging.getLogger(__name__) METRICS_POOL = MetricsPool('ZTP_SERVER', 'RPC') -class ZtpServerServiceServicerImpl(ztpServerServiceServicer): + +class ZtpServerServiceServicerImpl(ZtpServerServiceServicer): def __init__(self): LOGGER.info('Creating Servicer...') LOGGER.info('Servicer Created') @@ -30,24 +30,24 @@ class ZtpServerServiceServicerImpl(ztpServerServiceServicer): @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetZtpProvisioning(self, request : ProvisioningScriptName, context : grpc.ServicerContext) -> ProvisioningScript: try: - filePath = '../data/' + ProvisioningScriptName - with open(filePath, 'r') as provisioning_file: + provisioningPath = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', 'data', request.scriptname) + with open(provisioningPath, 'r') as provisioning_file: provisioning_content = provisioning_file.read() - return ztpServerServiceServicer.ProvisioningScript(script=provisioning_content) + return ProvisioningScript(script=provisioning_content) except FileNotFoundError: context.set_code(grpc.StatusCode.NOT_FOUND) context.set_details('File not found') - return ztpServerServiceServicer.ProvisioningScript() + return ProvisioningScript() @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetZtpProvisioning(self, request : ZtpFileName, context : grpc.ServicerContext) -> ZtpFile: try: - filePath = '../data/' + ZtpFileName - with open(filePath, 'r') as json_file: + ztpPath = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', 'data', request.filename) + with open(ztpPath, 'r') as json_file: json_content = json_file.read() - return ztpServerServiceServicer.ZtpFile(json=json_content) + return ZtpFile(json=json_content) except FileNotFoundError: context.set_code(grpc.StatusCode.NOT_FOUND) context.set_details('File not found') - return ztpServerServiceServicer.ZtpFile(json=json_content) \ No newline at end of file + return ZtpFile() \ No newline at end of file diff --git a/src/ztp_server/service/context_subscription/__init__.py b/src/ztp_server/service/context_subscription/__init__.py deleted file mode 100755 index 758f3d82c..000000000 --- a/src/ztp_server/service/context_subscription/__init__.py +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 2022-2024 ETSI 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 logging - -from websockets.sync.server import serve -from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest -from common.Settings import get_setting -from context.client.ContextClient import ContextClient -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME -from common.tools.object_factory.Topology import json_topology_id -from common.tools.object_factory.Context import json_context_id -from common.proto.context_pb2 import ContextId, TopologyId -import json -import os -from vnt_manager.client.VNTManagerClient import VNTManagerClient - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) -ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) - -vnt_manager_client: VNTManagerClient = VNTManagerClient() -context_client: ContextClient = ContextClient() - -ALL_HOSTS = "0.0.0.0" -WS_E2E_PORT = int(get_setting('WS_E2E_PORT', default='8762')) - -LOGGER = logging.getLogger(__name__) - - -def register_context_subscription(): - with serve(subcript_to_vnt_manager, ALL_HOSTS, WS_E2E_PORT, logger=LOGGER) as server: - LOGGER.info("Running subscription server...: {}:{}".format(ALL_HOSTS, str(WS_E2E_PORT))) - server.serve_forever() - LOGGER.info("Exiting subscription server...") - - -def subcript_to_vnt_manager(websocket): - for message in websocket: - LOGGER.debug("Message received: {}".format(message)) - message_json = json.loads(message) - request = VNTSubscriptionRequest() - request.host = message_json['host'] - request.port = message_json['port'] - LOGGER.debug("Received gRPC from ws: {}".format(request)) - - try: - vntm_reply = vnt_manager_client.VNTSubscript(request) - LOGGER.debug("Received gRPC from vntm: {}".format(vntm_reply)) - except Exception as e: - LOGGER.error('Could not subscript to VTNManager: {}'.format(e)) - - websocket.send(vntm_reply.subscription) diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py index c1b8c3733..43b7b79b6 100755 --- a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py @@ -16,32 +16,22 @@ import json import logging from flask.json import jsonify from flask_restful import Resource, request -from werkzeug.exceptions import BadRequest -from common.proto.context_pb2 import Empty, LinkTypeEnum from common.tools.grpc.Tools import grpc_message_to_json -from context.client.ContextClient import ContextClient -from device.client.DeviceClient import DeviceClient -from service.client.ServiceClient import ServiceClient -from slice.client.SliceClient import SliceClient -from vnt_manager.client.VNTManagerClient import VNTManagerClient +from ztp_server.service.rest_server.ztpServer_plugins.tools.Authentication import HTTP_AUTH from .Tools import ( - format_grpc_to_json, returnConfigFile + returnConfigFile ) LOGGER = logging.getLogger(__name__) - class _Resource(Resource): def __init__(self) -> None: super().__init__() - self.context_client = ContextClient() - self.device_client = DeviceClient() - self.service_client = ServiceClient() - self.vntmanager_client = VNTManagerClient() - self.slice_client = SliceClient() - class config(_Resource): + @HTTP_AUTH.login_required def get(self, config_db : str): - return returnConfigFile(config_db) #TODO define how to return configFile.json + #if returnConfigFile(config_db) + + return diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py index 6665dd4ce..7d05816ee 100755 --- a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py @@ -12,30 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict -from flask.json import jsonify -from common.proto.context_pb2 import ( - ConnectionId, returnConfigFile -) -from common.proto.policy_pb2 import PolicyRule, PolicyRuleId -from common.tools.grpc.Tools import grpc_message_to_json -from common.tools.object_factory.Connection import json_connection_id -from common.tools.object_factory.Context import json_context_id -from common.tools.object_factory.Device import json_device_id -from common.tools.object_factory.Link import json_link_id -from common.tools.object_factory.PolicyRule import json_policyrule_id -from common.tools.object_factory.Service import json_service_id -from common.tools.object_factory.Slice import json_slice_id -from common.tools.object_factory.Topology import json_topology_id - - -def format_grpc_to_json(grpc_reply): - return jsonify(grpc_message_to_json(grpc_reply)) +import os def returnConfigFile(config_db): - path = config_db - - with open(path, 'r', encoding='utf-8') as configFile: - content = configFile.read() + try: + configFilePath = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..','..','..','..','..', 'data', config_db) + with open(configFilePath, 'r', encoding='utf-8') as configFile: + content = configFile.read() + except FileNotFoundError: + return "File not Found" return content \ No newline at end of file diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py deleted file mode 100755 index 66b607c8b..000000000 --- a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -from typing import List -from flask.json import jsonify -from jsonschema import _utils -from jsonschema.validators import validator_for -from jsonschema.protocols import Validator -from jsonschema.exceptions import ValidationError -from werkzeug.exceptions import BadRequest -from .HttpStatusCodes import HTTP_BADREQUEST - -def validate_message(schema, message): - validator_class = validator_for(schema) - validator : Validator = validator_class(schema) - errors : List[ValidationError] = sorted(validator.iter_errors(message), key=str) - if len(errors) == 0: return - response = jsonify([ - {'message': str(error.message), 'schema': str(error.schema), 'validator': str(error.validator), - 'where': str(_utils.format_as_index(container='message', indices=error.relative_path))} - for error in errors - ]) - response.status_code = HTTP_BADREQUEST - raise BadRequest(response=response) diff --git a/src/ztp_server/tests/Constants.py b/src/ztp_server/tests/Constants.py deleted file mode 100755 index 886ddcafa..000000000 --- a/src/ztp_server/tests/Constants.py +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -USERNAME = 'admin' -PASSWORD = 'admin' - -# Ref: https://osm.etsi.org/wikipub/index.php/WIM -WIM_MAPPING = [ - { - 'device-id' : 'dev-1', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-1', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R1-EMU:13/1/2'}, - 'site-id': '1', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, - { - 'device-id' : 'dev-2', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-2', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R2-EMU:13/1/2'}, - 'site-id': '2', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, - { - 'device-id' : 'dev-3', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-3', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R3-EMU:13/1/2'}, - 'site-id': '3', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, - { - 'device-id' : 'dev-4', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-4', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R4-EMU:13/1/2'}, - 'site-id': '4', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, -] - -SERVICE_TYPE = 'ELINE' - -SERVICE_CONNECTION_POINTS_1 = [ - {'service_endpoint_id': 'ep-1', - 'service_endpoint_encapsulation_type': 'dot1q', - 'service_endpoint_encapsulation_info': {'vlan': 1234}}, - {'service_endpoint_id': 'ep-2', - 'service_endpoint_encapsulation_type': 'dot1q', - 'service_endpoint_encapsulation_info': {'vlan': 1234}}, -] - -SERVICE_CONNECTION_POINTS_2 = [ - {'service_endpoint_id': 'ep-3', - 'service_endpoint_encapsulation_type': 'dot1q', - 'service_endpoint_encapsulation_info': {'vlan': 1234}}, -] \ No newline at end of file diff --git a/src/ztp_server/tests/MockService_Dependencies.py b/src/ztp_server/tests/MockService_Dependencies.py deleted file mode 100755 index 322441367..000000000 --- a/src/ztp_server/tests/MockService_Dependencies.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2022-2024 ETSI 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 os -from typing import Union -from common.Constants import ServiceNameEnum -from common.Settings import ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name -from common.proto.context_pb2_grpc import add_ContextServiceServicer_to_server -from common.proto.service_pb2_grpc import add_ServiceServiceServicer_to_server -from common.proto.slice_pb2_grpc import add_SliceServiceServicer_to_server -from common.tests.MockServicerImpl_Context import MockServicerImpl_Context -from common.tests.MockServicerImpl_Service import MockServicerImpl_Service -from common.tests.MockServicerImpl_Slice import MockServicerImpl_Slice -from common.tools.service.GenericGrpcService import GenericGrpcService - -LOCAL_HOST = '127.0.0.1' - -SERVICE_CONTEXT = ServiceNameEnum.CONTEXT -SERVICE_SERVICE = ServiceNameEnum.SERVICE -SERVICE_SLICE = ServiceNameEnum.SLICE - -class MockService_Dependencies(GenericGrpcService): - # Mock Service implementing Context, Service and Slice to simplify unitary tests of NBI - - def __init__(self, bind_port: Union[str, int]) -> None: - super().__init__(bind_port, LOCAL_HOST, enable_health_servicer=False, cls_name='MockService') - - # pylint: disable=attribute-defined-outside-init - def install_servicers(self): - self.context_servicer = MockServicerImpl_Context() - add_ContextServiceServicer_to_server(self.context_servicer, self.server) - - self.service_servicer = MockServicerImpl_Service() - add_ServiceServiceServicer_to_server(self.service_servicer, self.server) - - self.slice_servicer = MockServicerImpl_Slice() - add_SliceServiceServicer_to_server(self.slice_servicer, self.server) - - def configure_env_vars(self): - os.environ[get_env_var_name(SERVICE_CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) - os.environ[get_env_var_name(SERVICE_CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) - - os.environ[get_env_var_name(SERVICE_SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) - os.environ[get_env_var_name(SERVICE_SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) - - os.environ[get_env_var_name(SERVICE_SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) - os.environ[get_env_var_name(SERVICE_SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) diff --git a/src/ztp_server/tests/PrepareTestScenario.py b/src/ztp_server/tests/PrepareTestScenario.py deleted file mode 100755 index a574f086b..000000000 --- a/src/ztp_server/tests/PrepareTestScenario.py +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright 2022-2024 ETSI 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 enum, logging, os, pytest, requests, time -from typing import Any, Dict, List, Optional, Set, Union -from common.Constants import ServiceNameEnum -from common.Settings import ( - ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_HTTP, - get_env_var_name, get_service_baseurl_http, get_service_port_http -) -from context.client.ContextClient import ContextClient -from nbi.service.rest_server.RestServer import RestServer -from nbi.service.rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api -from nbi.service.rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn -from nbi.service.rest_server.nbi_plugins.ietf_l3vpn import register_ietf_l3vpn -from nbi.service.rest_server.nbi_plugins.ietf_network import register_ietf_network -from nbi.service.rest_server.nbi_plugins.tfs_api import register_tfs_api -from nbi.tests.MockService_Dependencies import MockService_Dependencies -from service.client.ServiceClient import ServiceClient -from slice.client.SliceClient import SliceClient -from tests.tools.mock_osm.MockOSM import MockOSM -from .Constants import USERNAME, PASSWORD, WIM_MAPPING - -LOCAL_HOST = '127.0.0.1' -MOCKSERVICE_PORT = 10000 -NBI_SERVICE_PORT = MOCKSERVICE_PORT + get_service_port_http(ServiceNameEnum.NBI) # avoid privileged ports -os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) -os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) - -@pytest.fixture(scope='session') -def mock_service(): - _service = MockService_Dependencies(MOCKSERVICE_PORT) - _service.configure_env_vars() - _service.start() - yield _service - _service.stop() - -@pytest.fixture(scope='session') -def nbi_service_rest(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument - _rest_server = RestServer() - register_etsi_bwm_api(_rest_server) - register_ietf_l2vpn(_rest_server) - register_ietf_l3vpn(_rest_server) - register_ietf_network(_rest_server) - register_tfs_api(_rest_server) - _rest_server.start() - time.sleep(1) # bring time for the server to start - yield _rest_server - _rest_server.shutdown() - _rest_server.join() - -@pytest.fixture(scope='session') -def osm_wim(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - wim_url = 'http://{:s}:{:d}'.format(LOCAL_HOST, NBI_SERVICE_PORT) - return MockOSM(wim_url, WIM_MAPPING, USERNAME, PASSWORD) - -@pytest.fixture(scope='session') -def context_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument - _client = ContextClient() - yield _client - _client.close() - -@pytest.fixture(scope='session') -def service_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument - _client = ServiceClient() - yield _client - _client.close() - -@pytest.fixture(scope='session') -def slice_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument - _client = SliceClient() - yield _client - _client.close() - -class RestRequestMethod(enum.Enum): - GET = 'get' - POST = 'post' - PUT = 'put' - PATCH = 'patch' - DELETE = 'delete' - -EXPECTED_STATUS_CODES : Set[int] = { - requests.codes['OK' ], - requests.codes['CREATED' ], - requests.codes['ACCEPTED' ], - requests.codes['NO_CONTENT'], -} - -def do_rest_request( - method : RestRequestMethod, url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - base_url = get_service_baseurl_http(ServiceNameEnum.NBI) or '' - request_url = 'http://{:s}:{:s}@{:s}:{:d}{:s}{:s}'.format( - USERNAME, PASSWORD, LOCAL_HOST, NBI_SERVICE_PORT, str(base_url), url - ) - if logger is not None: - msg = 'Request: {:s} {:s}'.format(str(method.value).upper(), str(request_url)) - if body is not None: msg += ' body={:s}'.format(str(body)) - logger.warning(msg) - reply = requests.request(method.value, request_url, timeout=timeout, json=body, allow_redirects=allow_redirects) - if logger is not None: - logger.warning('Reply: {:s}'.format(str(reply.text))) - assert reply.status_code in expected_status_codes, 'Reply failed with status code {:d}'.format(reply.status_code) - - if reply.content and len(reply.content) > 0: return reply.json() - return None - -def do_rest_get_request( - url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - return do_rest_request( - RestRequestMethod.GET, url, body=body, timeout=timeout, allow_redirects=allow_redirects, - expected_status_codes=expected_status_codes, logger=logger - ) - -def do_rest_post_request( - url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - return do_rest_request( - RestRequestMethod.POST, url, body=body, timeout=timeout, allow_redirects=allow_redirects, - expected_status_codes=expected_status_codes, logger=logger - ) - -def do_rest_put_request( - url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - return do_rest_request( - RestRequestMethod.PUT, url, body=body, timeout=timeout, allow_redirects=allow_redirects, - expected_status_codes=expected_status_codes, logger=logger - ) - -def do_rest_patch_request( - url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - return do_rest_request( - RestRequestMethod.PATCH, url, body=body, timeout=timeout, allow_redirects=allow_redirects, - expected_status_codes=expected_status_codes, logger=logger - ) - -def do_rest_delete_request( - url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - return do_rest_request( - RestRequestMethod.DELETE, url, body=body, timeout=timeout, allow_redirects=allow_redirects, - expected_status_codes=expected_status_codes, logger=logger - ) diff --git a/src/ztp_server/tests/__init__.py b/src/ztp_server/tests/__init__.py deleted file mode 100755 index 53d5157f7..000000000 --- a/src/ztp_server/tests/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - diff --git a/src/ztp_server/tests/data/ietf_acl.json b/src/ztp_server/tests/data/ietf_acl.json deleted file mode 100755 index 072df6d01..000000000 --- a/src/ztp_server/tests/data/ietf_acl.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "ietf-access-control-list": { - "acls": { - "acl": [ - { - "name": "sample-ipv4-acl", - "type": "ipv4-acl-type", - "aces": { - "ace": [ - { - "name": "rule1", - "matches": { - "ipv4": { - "dscp": 18, - "source-ipv4-network": "128.32.10.6/24", - "destination-ipv4-network": "172.10.33.0/24" - }, - "tcp": { - "flags": "syn", - "source-port": { - "port": 1444, - "operator": "eq" - }, - "destination-port": { - "port": 1333, - "operator": "eq" - } - } - }, - "actions": { - "forwarding": "drop" - } - } - ] - } - } - ], - "attachment-points": { - "interface": [ - { - "interface-id": "200", - "ingress": { - "acl-sets": { - "acl-set": [ - { - "name": "sample-ipv4-acl" - } - ] - } - } - } - ] - } - } - } -} diff --git a/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json b/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json deleted file mode 100755 index bfeb93fb7..000000000 --- a/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json +++ /dev/null @@ -1,231 +0,0 @@ -{ - "ietf-l3vpn-svc:l3vpn-svc": { - "vpn-services": { - "vpn-service": [ - { - "vpn-id": "vpn1" - } - ] - }, - "sites": { - "site": [ - { - "site-id": "site_OLT", - "management": { - "type": "ietf-l3vpn-svc:provider-managed" - }, - "locations": { - "location": [ - { - "location-id": "OLT" - } - ] - }, - "devices": { - "device": [ - { - "device-id": "128.32.33.5", - "location": "OLT" - } - ] - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "128.32.10.1/24", - "lan-tag": "vlan21", - "next-hop": "128.32.33.2" - }, - { - "lan": "128.32.20.1/24", - "lan-tag": "vlan21", - "next-hop": "128.32.33.2" - } - ] - } - } - } - ] - }, - "site-network-accesses": { - "site-network-access": [ - { - "site-network-access-id": "500", - "site-network-access-type": "ietf-l3vpn-svc:multipoint", - "device-reference": "128.32.33.5", - "vpn-attachment": { - "vpn-id": "vpn1", - "site-role": "ietf-l3vpn-svc:spoke-role" - }, - "ip-connection": { - "ipv4": { - "address-allocation-type": "ietf-l3vpn-svc:static-address", - "addresses": { - "provider-address": "128.32.33.254", - "customer-address": "128.32.33.2", - "prefix-length": 24 - } - } - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "172.1.101.1/24", - "lan-tag": "vlan21", - "next-hop": "128.32.33.254" - } - ] - } - } - } - ] - }, - "service": { - "svc-mtu": 1500, - "svc-input-bandwidth": 1000000000, - "svc-output-bandwidth": 1000000000, - "qos": { - "qos-profile": { - "classes": { - "class": [ - { - "class-id": "qos-realtime", - "direction": "ietf-l3vpn-svc:both", - "latency": { - "latency-boundary": 10 - }, - "bandwidth": { - "guaranteed-bw-percent": 100 - } - } - ] - } - } - } - } - } - ] - } - }, - { - "site-id": "site_POP", - "management": { - "type": "ietf-l3vpn-svc:provider-managed" - }, - "locations": { - "location": [ - { - "location-id": "POP" - } - ] - }, - "devices": { - "device": [ - { - "device-id": "172.10.33.5", - "location": "POP" - } - ] - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "172.1.101.1/24", - "lan-tag": "vlan101", - "next-hop": "172.10.33.2" - } - ] - } - } - } - ] - }, - "site-network-accesses": { - "site-network-access": [ - { - "site-network-access-id": "500", - "site-network-access-type": "ietf-l3vpn-svc:multipoint", - "device-reference": "172.10.33.5", - "vpn-attachment": { - "vpn-id": "vpn1", - "site-role": "ietf-l3vpn-svc:hub-role" - }, - "ip-connection": { - "ipv4": { - "address-allocation-type": "ietf-l3vpn-svc:static-address", - "addresses": { - "provider-address": "172.10.33.254", - "customer-address": "172.10.33.2", - "prefix-length": 24 - } - } - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "128.32.10.1/24", - "lan-tag": "vlan101", - "next-hop": "172.10.33.254" - }, - { - "lan": "128.32.20.1/24", - "lan-tag": "vlan101", - "next-hop": "172.10.33.254" - } - ] - } - } - } - ] - }, - "service": { - "svc-mtu": 1500, - "svc-input-bandwidth": 1000000000, - "svc-output-bandwidth": 1000000000, - "qos": { - "qos-profile": { - "classes": { - "class": [ - { - "class-id": "qos-realtime", - "direction": "ietf-l3vpn-svc:both", - "latency": { - "latency-boundary": 10 - }, - "bandwidth": { - "guaranteed-bw-percent": 100 - } - } - ] - } - } - } - } - } - ] - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json b/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json deleted file mode 100755 index 2cc512e59..000000000 --- a/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json +++ /dev/null @@ -1,231 +0,0 @@ -{ - "ietf-l3vpn-svc:l3vpn-svc": { - "vpn-services": { - "vpn-service": [ - { - "vpn-id": "vpn2" - } - ] - }, - "sites": { - "site": [ - { - "site-id": "site_OLT", - "management": { - "type": "ietf-l3vpn-svc:provider-managed" - }, - "locations": { - "location": [ - { - "location-id": "OLT" - } - ] - }, - "devices": { - "device": [ - { - "device-id": "128.32.33.5", - "location": "OLT" - } - ] - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "128.32.10.1/24", - "lan-tag": "vlan31", - "next-hop": "128.32.33.2" - }, - { - "lan": "128.32.20.1/24", - "lan-tag": "vlan31", - "next-hop": "128.32.33.2" - } - ] - } - } - } - ] - }, - "site-network-accesses": { - "site-network-access": [ - { - "site-network-access-id": "500", - "site-network-access-type": "ietf-l3vpn-svc:multipoint", - "device-reference": "128.32.33.5", - "vpn-attachment": { - "vpn-id": "vpn2", - "site-role": "ietf-l3vpn-svc:spoke-role" - }, - "ip-connection": { - "ipv4": { - "address-allocation-type": "ietf-l3vpn-svc:static-address", - "addresses": { - "provider-address": "128.32.33.254", - "customer-address": "128.32.33.2", - "prefix-length": 24 - } - } - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "172.1.201.1/24", - "lan-tag": "vlan31", - "next-hop": "128.32.33.254" - } - ] - } - } - } - ] - }, - "service": { - "svc-mtu": 1500, - "svc-input-bandwidth": 1000000000, - "svc-output-bandwidth": 1000000000, - "qos": { - "qos-profile": { - "classes": { - "class": [ - { - "class-id": "qos-realtime", - "direction": "ietf-l3vpn-svc:both", - "latency": { - "latency-boundary": 10 - }, - "bandwidth": { - "guaranteed-bw-percent": 100 - } - } - ] - } - } - } - } - } - ] - } - }, - { - "site-id": "site_POP", - "management": { - "type": "ietf-l3vpn-svc:provider-managed" - }, - "locations": { - "location": [ - { - "location-id": "POP" - } - ] - }, - "devices": { - "device": [ - { - "device-id": "172.10.33.5", - "location": "POP" - } - ] - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "172.1.201.1/24", - "lan-tag": "vlan201", - "next-hop": "172.10.33.2" - } - ] - } - } - } - ] - }, - "site-network-accesses": { - "site-network-access": [ - { - "site-network-access-id": "500", - "site-network-access-type": "ietf-l3vpn-svc:multipoint", - "device-reference": "172.10.33.5", - "vpn-attachment": { - "vpn-id": "vpn2", - "site-role": "ietf-l3vpn-svc:hub-role" - }, - "ip-connection": { - "ipv4": { - "address-allocation-type": "ietf-l3vpn-svc:static-address", - "addresses": { - "provider-address": "172.10.33.254", - "customer-address": "172.10.33.2", - "prefix-length": 24 - } - } - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "128.32.10.1/24", - "lan-tag": "vlan201", - "next-hop": "172.10.33.254" - }, - { - "lan": "128.32.20.1/24", - "lan-tag": "vlan201", - "next-hop": "172.10.33.254" - } - ] - } - } - } - ] - }, - "service": { - "svc-mtu": 1500, - "svc-input-bandwidth": 1000000000, - "svc-output-bandwidth": 1000000000, - "qos": { - "qos-profile": { - "classes": { - "class": [ - { - "class-id": "qos-realtime", - "direction": "ietf-l3vpn-svc:both", - "latency": { - "latency-boundary": 10 - }, - "bandwidth": { - "guaranteed-bw-percent": 100 - } - } - ] - } - } - } - } - } - ] - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/ztp_server/tests/data/test-ietf-network.json b/src/ztp_server/tests/data/test-ietf-network.json deleted file mode 100755 index 7643ef53a..000000000 --- a/src/ztp_server/tests/data/test-ietf-network.json +++ /dev/null @@ -1,1962 +0,0 @@ -{ - "ietf-network:networks": { - "network": [ - { - "network-id": "providerId-10-clientId-0-topologyId-1", - "ietf-te-topology:te": { - "name": "Huawei-Network" - }, - "ietf-te-topology:te-topology-identifier": { - "provider-id": 10, - "client-id": 0, - "topology-id": "1" - }, - "network-types": { - "ietf-te-topology:te-topology": { - "ietf-otn-topology:otn-topology": {} - } - }, - "node": [ - { - "node-id": "10.0.10.1", - "ietf-te-topology:te-node-id": "10.0.10.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "OA" - }, - "tunnel-termination-point": [ - { - "tunnel-tp-id": "NTAx", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "501" - } - ] - } - }, - { - "tunnel-tp-id": "NTAw", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "500" - } - ] - } - } - ] - } - }, - { - "node-id": "10.0.20.1", - "ietf-te-topology:te-node-id": "10.0.20.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "P" - }, - "tunnel-termination-point": [ - { - "tunnel-tp-id": "NTAx", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "501" - } - ] - } - }, - { - "tunnel-tp-id": "NTAw", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "500" - } - ] - } - } - ] - } - }, - { - "node-id": "10.0.40.1", - "ietf-te-topology:te-node-id": "10.0.40.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - }, - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "P" - }, - "tunnel-termination-point": [ - { - "tunnel-tp-id": "NTAw", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "500" - } - ] - } - }, - { - "tunnel-tp-id": "NTAx", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "501" - } - ] - } - } - ] - } - }, - { - "node-id": "10.0.30.1", - "ietf-te-topology:te-node-id": "10.0.30.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - }, - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "OE" - }, - "tunnel-termination-point": [ - { - "tunnel-tp-id": "NTAw", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "500" - } - ] - } - }, - { - "tunnel-tp-id": "NTAx", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "501" - } - ] - } - } - ] - } - } - ], - "ietf-network-topology:link": [ - { - "link-id": "10.0.10.1-501", - "source": { - "source-node": "10.0.10.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.20.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.10.1-501", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.10.1-500", - "source": { - "source-node": "10.0.10.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.40.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.10.1-500", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.20.1-501", - "source": { - "source-node": "10.0.20.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.10.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.20.1-501", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.20.1-500", - "source": { - "source-node": "10.0.20.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.30.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.20.1-500", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.40.1-500", - "source": { - "source-node": "10.0.40.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.10.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.40.1-500", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.40.1-501", - "source": { - "source-node": "10.0.40.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.30.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.40.1-501", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.30.1-500", - "source": { - "source-node": "10.0.30.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.20.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.30.1-500", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.30.1-501", - "source": { - "source-node": "10.0.30.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.40.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.30.1-501", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - } - ] - }, - { - "network-id": "providerId-10-clientId-0-topologyId-2", - "ietf-te-topology:te": { - "name": "Huawei-Network" - }, - "ietf-te-topology:te-topology-identifier": { - "provider-id": 10, - "client-id": 0, - "topology-id": "2" - }, - "network-types": { - "ietf-te-topology:te-topology": { - "ietf-eth-te-topology:eth-tran-topology": {} - } - }, - "node": [ - { - "node-id": "10.0.10.1", - "ietf-te-topology:te-node-id": "10.0.10.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "200", - "ietf-te-topology:te-tp-id": "128.32.33.254", - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "OA" - } - } - }, - { - "node-id": "10.0.20.1", - "ietf-te-topology:te-node-id": "10.0.20.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "P" - } - } - }, - { - "node-id": "10.0.40.1", - "ietf-te-topology:te-node-id": "10.0.40.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "P" - } - } - }, - { - "node-id": "10.0.30.1", - "ietf-te-topology:te-node-id": "10.0.30.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "200", - "ietf-te-topology:te-tp-id": "172.10.33.254", - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "OE" - } - } - }, - { - "node-id": "128.32.33.5", - "ietf-te-topology:te-node-id": "128.32.33.5", - "ietf-network-topology:termination-point": [ - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": "128.32.33.2", - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "200", - "ietf-te-topology:te-tp-id": 200, - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - }, - { - "tp-id": "201", - "ietf-te-topology:te-tp-id": 201, - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "OLT", - "connectivity-matrices": { - "label-restrictions": { - "label-restriction": [ - { - "index": 0, - "label-start": { - "te-label": { - "ietf-eth-te-topology:vlanid": 21 - } - }, - "label-end": { - "te-label": { - "ietf-eth-te-topology:vlanid": 21 - } - } - }, - { - "index": 1, - "label-start": { - "te-label": { - "ietf-eth-te-topology:vlanid": 31 - } - }, - "label-end": { - "te-label": { - "ietf-eth-te-topology:vlanid": 31 - } - } - } - ] - } - } - } - } - }, - { - "node-id": "128.32.10.1", - "ietf-te-topology:te-node-id": "128.32.10.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - }, - { - "tp-id": "200", - "ietf-te-topology:te-tp-id": 200, - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "ONT1" - } - } - }, - { - "node-id": "128.32.20.1", - "ietf-te-topology:te-node-id": "128.32.20.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - }, - { - "tp-id": "200", - "ietf-te-topology:te-tp-id": 200, - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "ONT2" - } - } - } - ], - "ietf-network-topology:link": [ - { - "link-id": "10.0.10.1-200", - "source": { - "source-node": "10.0.10.1", - "source-tp": "200" - }, - "destination": { - "dest-node": "128.32.33.5", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.10.1-200", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "128.32.33.5-500", - "source": { - "source-node": "128.32.33.5", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.10.1", - "dest-tp": "200" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "128.32.33.5-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.10.1-501", - "source": { - "source-node": "10.0.10.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.20.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.10.1-501", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.10.1-500", - "source": { - "source-node": "10.0.10.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.40.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.10.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.20.1-501", - "source": { - "source-node": "10.0.20.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.10.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.20.1-501", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.20.1-500", - "source": { - "source-node": "10.0.20.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.30.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.20.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.40.1-501", - "source": { - "source-node": "10.0.40.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.30.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.40.1-501", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.40.1-500", - "source": { - "source-node": "10.0.40.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.10.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.40.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.30.1-501", - "source": { - "source-node": "10.0.30.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.40.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.30.1-501", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.30.1-500", - "source": { - "source-node": "10.0.30.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.20.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.30.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "128.32.33.5-200", - "source": { - "source-node": "128.32.33.5", - "source-tp": "200" - }, - "destination": { - "dest-node": "128.32.10.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "128.32.33.5-200", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "128.32.10.1-500", - "source": { - "source-node": "128.32.10.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "128.32.33.5", - "dest-tp": "200" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "128.32.10.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "128.32.33.5-201", - "source": { - "source-node": "128.32.33.5", - "source-tp": "201" - }, - "destination": { - "dest-node": "128.32.20.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "128.32.33.5-201", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "128.32.20.1-500", - "source": { - "source-node": "128.32.20.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "128.32.33.5", - "dest-tp": "201" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "128.32.20.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - } - ] - } - ] - } -} \ No newline at end of file diff --git a/src/ztp_server/tests/data/tfs_api_dummy.json b/src/ztp_server/tests/data/tfs_api_dummy.json deleted file mode 100755 index d8f513757..000000000 --- a/src/ztp_server/tests/data/tfs_api_dummy.json +++ /dev/null @@ -1,442 +0,0 @@ -{ - "dummy_mode": true, - "contexts": [ - { - "context_id": {"context_uuid": {"uuid": "admin"}}, - "name": "admin", - "topology_ids": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - ], - "service_ids": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}} - ], - "slice_ids": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}, "slice_uuid": {"uuid": "SLC:R1-R2-R3"}} - ] - } - ], - "topologies": [ - { - "device_ids": [ - {"device_uuid": {"uuid": "R1"}}, - {"device_uuid": {"uuid": "R2"}}, - {"device_uuid": {"uuid": "R3"}} - ], - "link_ids": [ - {"link_uuid": {"uuid": "R1/502==R2/501"}}, - {"link_uuid": {"uuid": "R1/503==R3/501"}}, - {"link_uuid": {"uuid": "R2/501==R1/502"}}, - {"link_uuid": {"uuid": "R2/503==R3/502"}}, - {"link_uuid": {"uuid": "R3/501==R1/503"}}, - {"link_uuid": {"uuid": "R3/502==R2/503"}} - ], - "name": "admin", - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "devices": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "name": "R1", "device_type": "emu-packet-router", - "device_drivers": [0], "device_operational_status": 2, - "device_endpoints": [ - {"name": "200", "endpoint_type": "copper", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "502", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "503", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }} - ], - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "502", "name": "502", "type": "optical"}, - {"uuid": "503", "name": "503", "type": "optical"} - ]}}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { - "uuid": "200", "name": "200", "type": "copper" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[502]", "resource_value": { - "uuid": "502", "name": "502", "type": "optical" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { - "uuid": "503", "name": "503", "type": "optical" - }}} - ]} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "name": "R2", "device_type": "emu-packet-router", - "device_drivers": [0], "device_operational_status": 2, - "device_endpoints": [ - {"name": "200", "endpoint_type": "copper", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "501", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "503", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }} - ], - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "501", "name": "501", "type": "optical"}, - {"uuid": "503", "name": "503", "type": "optical"} - ]}}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { - "uuid": "200", "name": "200", "type": "copper" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[501]", "resource_value": { - "uuid": "501", "name": "501", "type": "optical" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { - "uuid": "503", "name": "503", "type": "optical" - }}} - ]} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "name": "R3", "device_type": "emu-packet-router", - "device_drivers": [0], "device_operational_status": 2, - "device_endpoints": [ - {"name": "200", "endpoint_type": "copper", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "502", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "503", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }} - ], - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "502", "name": "502", "type": "optical"}, - {"uuid": "503", "name": "503", "type": "optical"} - ]}}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { - "uuid": "200", "name": "200", "type": "copper" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[502]", "resource_value": { - "uuid": "502", "name": "502", "type": "optical" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { - "uuid": "503", "name": "503", "type": "optical" - }}} - ]} - } - ], - "links": [ - { - "link_id": {"link_uuid": {"uuid": "R1/502==R2/501"}}, "name": "R1/502==R2/501", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - }, - { - "link_id": {"link_uuid": {"uuid": "R1/503==R3/501"}}, "name": "R1/503==R3/501", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - }, - { - "link_id": {"link_uuid": {"uuid": "R2/501==R1/502"}}, "name": "R2/501==R1/502", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - }, - { - "link_id": {"link_uuid": {"uuid": "R2/503==R3/502"}}, "name": "R2/503==R3/502", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - }, - { - "link_id": {"link_uuid": {"uuid": "R3/501==R1/503"}}, "name": "R3/501==R1/503", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - }, - { - "link_id": {"link_uuid": {"uuid": "R3/502==R2/503"}}, "name": "R3/502==R2/503", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - } - ], - "services": [ - { - "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, - "name": "SVC:R1/200==R2/200", "service_type": 1, "service_status": {"service_status": 1}, - "service_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "service_constraints": [ - {"action": 1, "sla_capacity": {"capacity_gbps": 40.0}}, - {"action": 1, "sla_latency": {"e2e_latency_ms": 10.0}}, - {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.99}} - ], - "service_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 - }}}, - {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 - }}} - ]} - }, - { - "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, - "name": "SVC:R1/200==R3/200", "service_type": 1, "service_status": {"service_status": 1}, - "service_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "service_constraints": [ - {"action": 1, "sla_capacity": {"capacity_gbps": 50.0}}, - {"action": 1, "sla_latency": {"e2e_latency_ms": 8.0}}, - {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.9}} - ], - "service_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 - }}}, - {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 - }}} - ]} - }, - { - "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}}, - "name": "SVC:R2/200==R3/200", "service_type": 1, "service_status": {"service_status": 1}, - "service_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "service_constraints": [ - {"action": 1, "sla_capacity": {"capacity_gbps": 10.0}}, - {"action": 1, "sla_latency": {"e2e_latency_ms": 3.0}}, - {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.9999}} - ], - "service_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 - }}}, - {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 - }}} - ]} - } - ], - "slices": [ - { - "slice_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "slice_uuid": {"uuid": "SLC:R1-R2-R3"}}, - "name": "SLC:R1-R2-R3", - "slice_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "slice_constraints": [ - {"action": 1, "sla_capacity": {"capacity_gbps": 40.0}}, - {"action": 1, "sla_latency": {"e2e_latency_ms": 10.0}}, - {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.99}} - ], - "slice_service_ids": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}} - ], - "slice_subslice_ids": [], - "slice_status": {"slice_status" : 1}, - "slice_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 - }}}, - {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 - }}}, - {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 - }}} - ]}, - "slice_owner": {"owner_uuid": {"uuid": "TFS"}, "owner_string": "TFS:SLC:R1-R2-R3"} - } - ], - "connections": [ - { - "connection_id": {"connection_uuid": {"uuid": "CON:R1/200==R2/200:1"}}, - "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, - "path_hops_endpoint_ids" : [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "sub_service_ids": [], - "settings": { - "l3": {"src_ip_address": "10.0.1.10", "dst_ip_address": "10.0.2.10", "ttl": 20} - } - }, - { - "connection_id": {"connection_uuid": {"uuid": "CON:R1/200==R3/200:1"}}, - "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, - "path_hops_endpoint_ids" : [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "sub_service_ids": [], - "settings": { - "l3": {"src_ip_address": "10.0.1.10", "dst_ip_address": "10.0.3.10", "ttl": 20} - } - }, - { - "connection_id": {"connection_uuid": {"uuid": "CON:R2/200==R3/200:1"}}, - "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}}, - "path_hops_endpoint_ids" : [ - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "sub_service_ids": [], - "settings": { - "l3": {"src_ip_address": "10.0.2.10", "dst_ip_address": "10.0.3.10", "ttl": 20} - } - } - ] -} diff --git a/src/ztp_server/tests/data/topology-7router-emu-dummy.json b/src/ztp_server/tests/data/topology-7router-emu-dummy.json deleted file mode 100755 index 3bb622626..000000000 --- a/src/ztp_server/tests/data/topology-7router-emu-dummy.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "dummy_mode": true, - "contexts": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}} - ], - "topologies": [ - {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} - ], - "devices": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, - {"uuid": "1/3", "type": "copper"}, {"uuid": "2/1", "type": "copper"}, - {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"}, - {"uuid": "2/4", "type": "copper"}, {"uuid": "2/5", "type": "copper"}, - {"uuid": "2/6", "type": "copper"} - ]}}} - ]}} - ], - "links": [ - {"link_id": {"link_uuid": {"uuid": "R1==R2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R1==R6"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R1==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R2==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R2==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R4"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R4==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R4==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R4"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R6"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R6==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R6==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]} - ] -} diff --git a/src/ztp_server/tests/data/topology-7router-emu.json b/src/ztp_server/tests/data/topology-7router-emu.json deleted file mode 100755 index 4174f4fb4..000000000 --- a/src/ztp_server/tests/data/topology-7router-emu.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "contexts": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}} - ], - "topologies": [ - {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} - ], - "devices": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, - {"uuid": "1/3", "type": "copper"}, {"uuid": "2/1", "type": "copper"}, - {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"}, - {"uuid": "2/4", "type": "copper"}, {"uuid": "2/5", "type": "copper"}, - {"uuid": "2/6", "type": "copper"} - ]}}} - ]}} - ], - "links": [ - {"link_id": {"link_uuid": {"uuid": "R1==R2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R1==R6"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R1==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R2==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R2==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R4"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R4==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R4==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R4"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R6"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R6==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R6==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]} - ] -} diff --git a/src/ztp_server/tests/data/topology-dummy.json b/src/ztp_server/tests/data/topology-dummy.json deleted file mode 100755 index f066051ee..000000000 --- a/src/ztp_server/tests/data/topology-dummy.json +++ /dev/null @@ -1,3134 +0,0 @@ -{ - "contexts": [ - { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "name": "admin", - "service_ids": [], - "slice_ids": [], - "topology_ids": [ - { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - ] - } - ], - "devices": [ - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - }, - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "500", - "type": "optical", - "uuid": "500" - }, - { - "name": "501", - "type": "optical", - "uuid": "501" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[mgmt]", - "resource_value": { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "optical", - "uuid": "500" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[501]", - "resource_value": { - "name": "501", - "type": "optical", - "uuid": "501" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "501" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "b72983bd-57d8-5cf8-8ec7-da9084382d7a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "mgmt", - "kpi_sample_types": [], - "name": "mgmt" - } - ], - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "10.0.30.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "500", - "type": "copper", - "uuid": "500" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "copper", - "uuid": "500" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "500" - } - ], - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "128.32.10.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "201", - "type": "copper", - "uuid": "201" - }, - { - "name": "500", - "type": "copper", - "uuid": "500" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[201]", - "resource_value": { - "name": "201", - "type": "copper", - "uuid": "201" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "copper", - "uuid": "500" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "endpoint_uuid": { - "uuid": "227b6bb2-dacf-5b3d-84e9-c1d0c107bcd8" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "201" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "endpoint_uuid": { - "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "endpoint_uuid": { - "uuid": "d8528b70-9215-59ed-851d-b9590ab0c94b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - } - ], - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "device_operational_status": 2, - "device_type": "emu-datacenter", - "name": "172.10.33.5" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - }, - { - "name": "500", - "type": "optical", - "uuid": "500" - }, - { - "name": "501", - "type": "optical", - "uuid": "501" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[mgmt]", - "resource_value": { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "optical", - "uuid": "500" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[501]", - "resource_value": { - "name": "501", - "type": "optical", - "uuid": "501" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "501" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "ede34dea-6b51-5787-88d2-553fe548f540" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "mgmt", - "kpi_sample_types": [], - "name": "mgmt" - } - ], - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "10.0.40.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "201", - "type": "copper", - "uuid": "201" - }, - { - "name": "500", - "type": "copper", - "uuid": "500" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[201]", - "resource_value": { - "name": "201", - "type": "copper", - "uuid": "201" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "copper", - "uuid": "500" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "201" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "c6435612-3aca-590f-89ba-e606f54df474" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - } - ], - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "device_operational_status": 2, - "device_type": "emu-optical-transponder", - "name": "128.32.33.5" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - }, - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "500", - "type": "optical", - "uuid": "500" - }, - { - "name": "501", - "type": "optical", - "uuid": "501" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[mgmt]", - "resource_value": { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "optical", - "uuid": "500" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[501]", - "resource_value": { - "name": "501", - "type": "optical", - "uuid": "501" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "59e1e30f-ea65-5e04-8a91-760a648a02c6" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "mgmt", - "kpi_sample_types": [], - "name": "mgmt" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "70cbb732-8149-59ee-939b-011828e4292b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "501" - } - ], - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "10.0.10.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - }, - { - "name": "500", - "type": "optical", - "uuid": "500" - }, - { - "name": "501", - "type": "optical", - "uuid": "501" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[mgmt]", - "resource_value": { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "optical", - "uuid": "500" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[501]", - "resource_value": { - "name": "501", - "type": "optical", - "uuid": "501" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "501" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "356378dd-952b-5032-912d-37fc21284b4c" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "da826790-a4b0-5317-b30b-e1370918a644" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "mgmt", - "kpi_sample_types": [], - "name": "mgmt" - } - ], - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "10.0.20.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "eth1", - "type": "copper", - "uuid": "eth1" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[eth1]", - "resource_value": { - "name": "eth1", - "type": "copper", - "uuid": "eth1" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" - } - }, - "endpoint_uuid": { - "uuid": "0701f406-633f-53e7-a44d-c93384745df8" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "eth1" - } - ], - "device_id": { - "device_uuid": { - "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" - } - }, - "device_operational_status": 2, - "device_type": "emu-client", - "name": "128.32.20.5" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "500", - "type": "copper", - "uuid": "500" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "copper", - "uuid": "500" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - } - ], - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "128.32.20.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "eth1", - "type": "copper", - "uuid": "eth1" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[eth1]", - "resource_value": { - "name": "eth1", - "type": "copper", - "uuid": "eth1" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" - } - }, - "endpoint_uuid": { - "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "eth1" - } - ], - "device_id": { - "device_uuid": { - "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" - } - }, - "device_operational_status": 2, - "device_type": "emu-client", - "name": "128.32.10.5" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[mgmt]", - "resource_value": { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "endpoint_uuid": { - "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "mgmt", - "kpi_sample_types": [], - "name": "mgmt" - } - ], - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "device_operational_status": 2, - "device_type": "emu-open-line-system", - "name": "nce-t" - } - ], - "dummy_mode": true, - "links": [ - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "70cbb732-8149-59ee-939b-011828e4292b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "0b3d5943-c2bf-595f-a805-dc29c2be2f52" - } - }, - "name": "10.0.10.1-200" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "1490e70f-472c-5e4c-8280-21c48ed03477" - } - }, - "name": "10.0.40.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "c6435612-3aca-590f-89ba-e606f54df474" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "18ba8eb2-342b-5a73-aeae-7288ea9bb28b" - } - }, - "name": "128.32.10.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" - } - }, - "endpoint_uuid": { - "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "1901b0dc-1b5e-5fdf-b9ac-9168787464c1" - } - }, - "name": "128.32.10.1-200" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "70cbb732-8149-59ee-939b-011828e4292b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "1afdae8b-a281-53aa-99c2-205afb8f4ee7" - } - }, - "name": "128.32.33.5-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "356378dd-952b-5032-912d-37fc21284b4c" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "30ca0f8f-b150-57f2-ae5e-8a6844944783" - } - }, - "name": "10.0.20.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "34c9c6c3-0dcf-54e5-ba67-da33eb2d3c1a" - } - }, - "name": "10.0.20.1-501" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "356378dd-952b-5032-912d-37fc21284b4c" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "35801e61-45f3-564e-ad5c-09baf4aae906" - } - }, - "name": "10.0.30.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "endpoint_uuid": { - "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "36643dba-e8fa-5fb7-952d-dff313db957b" - } - }, - "name": "172.10.33.5-500" - }, - { - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "endpoint_uuid": { - "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "ede34dea-6b51-5787-88d2-553fe548f540" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "36856920-3387-5384-b1b1-dbc9e54da226" - } - }, - "name": "nce-t/mgmt==10.0.40.1/mgmt" - }, - { - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "endpoint_uuid": { - "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "b72983bd-57d8-5cf8-8ec7-da9084382d7a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "46ba12f9-dd17-5f2a-9558-e4611515a6b9" - } - }, - "name": "nce-t/mgmt==10.0.30.1/mgmt" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "4dfe28dd-ac28-53d5-b330-1707e350d772" - } - }, - "name": "10.0.30.1-501" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "644ab377-572c-53a4-8ab5-f5cf45591d88" - } - }, - "name": "128.32.20.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "c6435612-3aca-590f-89ba-e606f54df474" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "661ac531-4309-58cc-b70e-2a79492c2488" - } - }, - "name": "128.32.33.5-200" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "6a236e01-853c-51d0-8915-2d09b45923b0" - } - }, - "name": "128.32.33.5-201" - }, - { - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "endpoint_uuid": { - "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "da826790-a4b0-5317-b30b-e1370918a644" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "6c802ae7-59d1-55e7-9498-146c465bcab5" - } - }, - "name": "nce-t/mgmt==10.0.20.1/mgmt" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" - } - }, - "endpoint_uuid": { - "uuid": "0701f406-633f-53e7-a44d-c93384745df8" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "6fa77ad9-e4d7-5830-bf84-ab206eff613a" - } - }, - "name": "128.32.20.1-200" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "endpoint_uuid": { - "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "808b54e8-3d5a-5e03-a42e-d6c2a57cf6f3" - } - }, - "name": "10.0.30.1-200" - }, - { - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "endpoint_uuid": { - "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "59e1e30f-ea65-5e04-8a91-760a648a02c6" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "85a18715-3ce0-57f9-8025-5634fe622a06" - } - }, - "name": "nce-t/mgmt==10.0.10.1/mgmt" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "8e8d1a2b-beae-5624-8826-9235bd73a3a8" - } - }, - "name": "10.0.40.1-501" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "e9c5b57e-de50-509c-9f5a-0107ff233703" - } - }, - "name": "10.0.10.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" - } - }, - "endpoint_uuid": { - "uuid": "0701f406-633f-53e7-a44d-c93384745df8" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "effca6e0-acf3-5c02-ba9a-d82c17a3f006" - } - }, - "name": "128.32.20.5-eth1" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "f45b4432-4ae2-5719-b4e8-a5e8baa1ccd2" - } - }, - "name": "10.0.10.1-501" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" - } - }, - "endpoint_uuid": { - "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "fd005f34-39f5-550e-b2c0-c6e6f8c16325" - } - }, - "name": "128.32.10.5-eth1" - } - ], - "topologies": [ - { - "device_ids": [ - { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - { - "device_uuid": { - "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" - } - }, - { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - { - "device_uuid": { - "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" - } - }, - { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - } - ], - "link_ids": [ - { - "link_uuid": { - "uuid": "0b3d5943-c2bf-595f-a805-dc29c2be2f52" - } - }, - { - "link_uuid": { - "uuid": "1490e70f-472c-5e4c-8280-21c48ed03477" - } - }, - { - "link_uuid": { - "uuid": "18ba8eb2-342b-5a73-aeae-7288ea9bb28b" - } - }, - { - "link_uuid": { - "uuid": "1901b0dc-1b5e-5fdf-b9ac-9168787464c1" - } - }, - { - "link_uuid": { - "uuid": "1afdae8b-a281-53aa-99c2-205afb8f4ee7" - } - }, - { - "link_uuid": { - "uuid": "30ca0f8f-b150-57f2-ae5e-8a6844944783" - } - }, - { - "link_uuid": { - "uuid": "34c9c6c3-0dcf-54e5-ba67-da33eb2d3c1a" - } - }, - { - "link_uuid": { - "uuid": "35801e61-45f3-564e-ad5c-09baf4aae906" - } - }, - { - "link_uuid": { - "uuid": "36643dba-e8fa-5fb7-952d-dff313db957b" - } - }, - { - "link_uuid": { - "uuid": "36856920-3387-5384-b1b1-dbc9e54da226" - } - }, - { - "link_uuid": { - "uuid": "46ba12f9-dd17-5f2a-9558-e4611515a6b9" - } - }, - { - "link_uuid": { - "uuid": "4dfe28dd-ac28-53d5-b330-1707e350d772" - } - }, - { - "link_uuid": { - "uuid": "644ab377-572c-53a4-8ab5-f5cf45591d88" - } - }, - { - "link_uuid": { - "uuid": "661ac531-4309-58cc-b70e-2a79492c2488" - } - }, - { - "link_uuid": { - "uuid": "6a236e01-853c-51d0-8915-2d09b45923b0" - } - }, - { - "link_uuid": { - "uuid": "6c802ae7-59d1-55e7-9498-146c465bcab5" - } - }, - { - "link_uuid": { - "uuid": "6fa77ad9-e4d7-5830-bf84-ab206eff613a" - } - }, - { - "link_uuid": { - "uuid": "808b54e8-3d5a-5e03-a42e-d6c2a57cf6f3" - } - }, - { - "link_uuid": { - "uuid": "85a18715-3ce0-57f9-8025-5634fe622a06" - } - }, - { - "link_uuid": { - "uuid": "8e8d1a2b-beae-5624-8826-9235bd73a3a8" - } - }, - { - "link_uuid": { - "uuid": "e9c5b57e-de50-509c-9f5a-0107ff233703" - } - }, - { - "link_uuid": { - "uuid": "effca6e0-acf3-5c02-ba9a-d82c17a3f006" - } - }, - { - "link_uuid": { - "uuid": "f45b4432-4ae2-5719-b4e8-a5e8baa1ccd2" - } - }, - { - "link_uuid": { - "uuid": "fd005f34-39f5-550e-b2c0-c6e6f8c16325" - } - } - ], - "name": "admin", - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ] -} \ No newline at end of file diff --git a/src/ztp_server/tests/data/topology-real.json b/src/ztp_server/tests/data/topology-real.json deleted file mode 100755 index bb158d920..000000000 --- a/src/ztp_server/tests/data/topology-real.json +++ /dev/null @@ -1,259 +0,0 @@ -{ - "contexts": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}} - ], - - "topologies": [ - {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} - ], - - "devices": [ - {"device_id": {"device_uuid": {"uuid": "nce-t"}}, "name": "nce-t", "device_type": "emu-open-line-system", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "mgmt", "name": "mgmt", "type": "mgmt"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "name": "10.0.10.1", "device_type": "emu-packet-router", - "controller_id": {"device_uuid": {"uuid": "nce-t"}}, - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, - {"uuid": "200", "name": "200", "type": "copper" }, - {"uuid": "500", "name": "500", "type": "optical"}, - {"uuid": "501", "name": "501", "type": "optical"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "name": "10.0.20.1", "device_type": "emu-packet-router", - "controller_id": {"device_uuid": {"uuid": "nce-t"}}, - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, - {"uuid": "500", "name": "500", "type": "optical"}, - {"uuid": "501", "name": "501", "type": "optical"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "name": "10.0.30.1", "device_type": "emu-packet-router", - "controller_id": {"device_uuid": {"uuid": "nce-t"}}, - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, - {"uuid": "200", "name": "200", "type": "copper" }, - {"uuid": "500", "name": "500", "type": "optical"}, - {"uuid": "501", "name": "501", "type": "optical"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "name": "10.0.40.1", "device_type": "emu-packet-router", - "controller_id": {"device_uuid": {"uuid": "nce-t"}}, - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, - {"uuid": "500", "name": "500", "type": "optical"}, - {"uuid": "501", "name": "501", "type": "optical"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "name": "128.32.10.5", "device_type": "emu-client", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "eth1", "name": "eth1", "type": "copper"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "name": "128.32.10.1", "device_type": "emu-packet-router", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "500", "name": "500", "type": "copper"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "name": "128.32.20.5", "device_type": "emu-client", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "eth1", "name": "eth1", "type": "copper"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "name": "128.32.20.1", "device_type": "emu-packet-router", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "500", "name": "500", "type": "copper"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "name": "128.32.33.5", "device_type": "emu-optical-transponder", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "201", "name": "201", "type": "copper"}, - {"uuid": "500", "name": "500", "type": "copper"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "name": "172.10.33.5", "device_type": "emu-datacenter", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "201", "name": "201", "type": "copper"}, - {"uuid": "500", "name": "500", "type": "copper"} - ]}}} - ]}} - ], - - "links": [ - {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.10.1/mgmt"}}, "name": "nce-t/mgmt==10.0.10.1/mgmt", "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.20.1/mgmt"}}, "name": "nce-t/mgmt==10.0.20.1/mgmt", "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.30.1/mgmt"}}, "name": "nce-t/mgmt==10.0.30.1/mgmt", "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.40.1/mgmt"}}, "name": "nce-t/mgmt==10.0.40.1/mgmt", "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "10.0.10.1-501"}}, "name": "10.0.10.1-501", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "501"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "501"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.20.1-501"}}, "name": "10.0.20.1-501", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "501"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "501"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "10.0.10.1-500"}}, "name": "10.0.10.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.40.1-500"}}, "name": "10.0.40.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "10.0.20.1-500"}}, "name": "10.0.20.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.30.1-500"}}, "name": "10.0.30.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "10.0.40.1-501"}}, "name": "10.0.40.1-501", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "501"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "501"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.30.1-501"}}, "name": "10.0.30.1-501", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "501"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "501"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "128.32.10.5-eth1"}}, "name": "128.32.10.5-eth1", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "endpoint_uuid": {"uuid": "eth1"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "200" }} - ]}, - {"link_id": {"link_uuid": {"uuid": "128.32.10.1-200"}}, "name": "128.32.10.1-200", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "200" }}, - {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "endpoint_uuid": {"uuid": "eth1"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "128.32.10.1-500"}}, "name": "128.32.10.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "200"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "128.32.33.5-200"}}, "name": "128.32.33.5-200", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "200"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "128.32.20.5-eth1"}}, "name": "128.32.20.5-eth1", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "endpoint_uuid": {"uuid": "eth1"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "200" }} - ]}, - {"link_id": {"link_uuid": {"uuid": "128.32.20.1-200"}}, "name": "128.32.20.1-200", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "200" }}, - {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "endpoint_uuid": {"uuid": "eth1"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "128.32.20.1-500"}}, "name": "128.32.20.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "201"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "128.32.33.5-201"}}, "name": "128.32.33.5-201", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "201"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "128.32.33.5-500"}}, "name": "128.32.33.5-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "200"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.10.1-200"}}, "name": "10.0.10.1-200", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "200"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "172.10.33.5-500"}}, "name": "172.10.33.5-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "200"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.30.1-200"}}, "name": "10.0.30.1-200", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "200"}}, - {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "endpoint_uuid": {"uuid": "500"}} - ]} - ] -} diff --git a/src/ztp_server/tests/ietf_acl_client.py b/src/ztp_server/tests/ietf_acl_client.py deleted file mode 100755 index 20887f1a8..000000000 --- a/src/ztp_server/tests/ietf_acl_client.py +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 2022-2024 ETSI 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 requests, time -from typing import Optional -from requests.auth import HTTPBasicAuth - -BASE_URL = '{:s}://{:s}:{:d}/restconf/data' -ACLS_URL = '{:s}/device={:s}/ietf-access-control-list:acls' -ACL_URL = '{:s}/device={:s}/ietf-access-control-list:acl={:s}' - -CSG1_DEVICE_UUID = '118295c8-318a-52ec-a394-529fc4b70f2f' # router: 128.32.10.1 -ACL_NAME = 'sample-ipv4-acl' -ACL_RULE = {"ietf-access-control-list:acls": { - "acl": [{ - "name": "sample-ipv4-acl", "type": "ipv4-acl-type", - "aces": {"ace": [{ - "name": "rule1", - "matches": { - "ipv4": { - "source-ipv4-network": "128.32.10.6/24", - "destination-ipv4-network": "172.10.33.0/24", - "dscp": 18 - }, - "tcp": { - "source-port": {"operator": "eq", "port": 1444}, - "destination-port": {"operator": "eq", "port": 1333}, - "flags": "syn" - } - }, - "actions": {"forwarding": "drop"} - }]} - }], - "attachment-points": {"interface": [{ - "interface-id": "200", - "ingress": {"acl-sets": {"acl-set": [{"name": "sample-ipv4-acl"}]}} - }] -}}} - -class TfsIetfAclClient: - def __init__( - self, host : str = 'localhost', port : int = 80, schema : str = 'http', - username : Optional[str] = 'admin', password : Optional[str] = 'admin', - timeout : int = 10, allow_redirects : bool = True, verify : bool = False - ) -> None: - self._base_url = BASE_URL.format(schema, host, port) - auth = HTTPBasicAuth(username, password) if username is not None and password is not None else None - self._settings = dict(auth=auth, timeout=timeout, allow_redirects=allow_redirects, verify=verify) - - def post(self, device_uuid : str, ietf_acl_data : dict) -> str: - request_url = ACLS_URL.format(self._base_url, device_uuid) - reply = requests.post(request_url, json=ietf_acl_data, **(self._settings)) - return reply.text - - def get(self, device_uuid : str, acl_name : str) -> str: - request_url = ACL_URL.format(self._base_url, device_uuid, acl_name) - reply = requests.get(request_url, **(self._settings)) - return reply.text - - def delete(self, device_uuid : str, acl_name : str) -> str: - request_url = ACL_URL.format(self._base_url, device_uuid, acl_name) - reply = requests.delete(request_url, **(self._settings)) - return reply.text - -def main(): - client = TfsIetfAclClient() - print(f'ACL rule: {ACL_RULE}') - post_response = client.post(CSG1_DEVICE_UUID, ACL_RULE) - print(f'post response: {post_response}') - time.sleep(.5) - get_response = client.get(CSG1_DEVICE_UUID, ACL_NAME) - print(f'get response: {get_response}') - time.sleep(.5) - delete_response = client.delete(CSG1_DEVICE_UUID, ACL_NAME) - print(f'delete response: {delete_response}') - -if __name__ == '__main__': - main() diff --git a/src/ztp_server/tests/test_etsi_bwm.py b/src/ztp_server/tests/test_etsi_bwm.py deleted file mode 100755 index 9400de00f..000000000 --- a/src/ztp_server/tests/test_etsi_bwm.py +++ /dev/null @@ -1,240 +0,0 @@ -# Copyright 2022-2024 ETSI 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 deepdiff, json, logging, pytest -from typing import Dict -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME -from common.proto.context_pb2 import ContextId, TopologyId -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -from common.tools.object_factory.Context import json_context_id -from common.tools.object_factory.Topology import json_topology_id -from context.client.ContextClient import ContextClient -from nbi.service.rest_server import RestServer -from .PrepareTestScenario import ( # pylint: disable=unused-import - # be careful, order of symbols is important here! - do_rest_delete_request, do_rest_get_request, do_rest_patch_request, do_rest_post_request, do_rest_put_request, - mock_service, nbi_service_rest, context_client -) - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) -ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) -BASE_URL = '/restconf/bwm/v1' - -@pytest.fixture(scope='session') -def storage() -> Dict: - yield dict() - -#def compare_dicts(dict1, dict2): -# # Function to recursively sort dictionaries -# def recursively_sort(d): -# if isinstance(d, dict): -# return {k: recursively_sort(v) for k, v in sorted(d.items())} -# if isinstance(d, list): -# return [recursively_sort(item) for item in d] -# return d -# -# # Sort dictionaries to ignore the order of fields -# sorted_dict1 = recursively_sort(dict1) -# sorted_dict2 = recursively_sort(dict2) -# -# if sorted_dict1 != sorted_dict2: -# LOGGER.error(sorted_dict1) -# LOGGER.error(sorted_dict2) -# -# return sorted_dict1 != sorted_dict2 - -def check_timestamps(bwm_service): - assert 'timeStamp' in bwm_service - assert 'seconds' in bwm_service['timeStamp'] - assert 'nanoseconds' in bwm_service['timeStamp'] - -def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - validate_empty_scenario(context_client) - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 - assert len(response.service_ids ) == 0 - assert len(response.slice_ids ) == 0 - -def test_get_allocations_empty(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - URL = BASE_URL + '/bw_allocations' - retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) - assert len(retrieved_data) == 0 - -def test_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - URL = BASE_URL + '/bw_allocations' - data = { - "appInsId" : "service_uuid_01", - "allocationDirection" : "00", - "fixedAllocation" : "123000.0", - "fixedBWPriority" : "SEE_DESCRIPTION", - "requestType" : 0, - "sessionFilter" : [{ - "sourceIp" : "192.168.1.2", - "sourcePort" : ["a"], - "protocol" : "string", - "dstAddress" : "192.168.3.2", - "dstPort" : ["b"], - }] - } - retrieved_data = do_rest_post_request(URL, body=data, logger=LOGGER, expected_status_codes={200}) - LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) - storage['service_uuid_01'] = 'service_uuid_01' - - -def test_get_allocations(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - assert 'service_uuid_01' in storage - URL = BASE_URL + '/bw_allocations' - retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) - assert len(retrieved_data) == 1 - good_result = [ - { - "appInsId" : "service_uuid_01", - "fixedAllocation" : "123000.0", - "allocationDirection" : "00", - "fixedBWPriority" : "SEE_DESCRIPTION", - "requestType" : "0", - "sessionFilter" : [{ - "sourceIp" : "192.168.1.2", - "sourcePort" : ["a"], - "protocol" : "string", - "dstAddress" : "192.168.3.2", - "dstPort" : ["b"], - }], - } - ] - check_timestamps(retrieved_data[0]) - del retrieved_data[0]['timeStamp'] - diff_data = deepdiff.DeepDiff(good_result, retrieved_data) - LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) - assert len(diff_data) == 0 - - -def test_get_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - assert 'service_uuid_01' in storage - URL = BASE_URL + '/bw_allocations/service_uuid_01' - retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) - good_result = { - "appInsId" : "service_uuid_01", - "fixedAllocation" : "123000.0", - "allocationDirection": "00", - "fixedBWPriority" : "SEE_DESCRIPTION", - "requestType" : "0", - "sessionFilter" : [{ - "sourceIp" : "192.168.1.2", - "sourcePort" : ["a"], - "protocol" : "string", - "dstAddress" : "192.168.3.2", - "dstPort" : ["b"], - }] - } - check_timestamps(retrieved_data) - del retrieved_data['timeStamp'] - diff_data = deepdiff.DeepDiff(good_result, retrieved_data) - LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) - assert len(diff_data) == 0 - - -def test_put_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - assert 'service_uuid_01' in storage - URL = BASE_URL + '/bw_allocations/service_uuid_01' - changed_allocation = { - "appInsId" : "service_uuid_01", - "fixedAllocation" : "200.0", - "allocationDirection": "00", - "fixedBWPriority" : "NOPRIORITY", - "requestType" : "0", - "sessionFilter" : [{ - "sourceIp" : "192.168.1.2", - "sourcePort" : ["a"], - "protocol" : "string", - "dstAddress" : "192.168.3.2", - "dstPort" : ["b"], - }] - } - retrieved_data = do_rest_put_request(URL, body=json.dumps(changed_allocation), logger=LOGGER, expected_status_codes={200}) - check_timestamps(retrieved_data) - del retrieved_data['timeStamp'] - diff_data = deepdiff.DeepDiff(changed_allocation, retrieved_data) - LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) - assert len(diff_data) == 0 - - -def test_patch_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - assert 'service_uuid_01' in storage - URL = BASE_URL + '/bw_allocations/service_uuid_01' - difference = { - "fixedBWPriority":"FULLPRIORITY", - } - changed_allocation = { - "appInsId" : "service_uuid_01", - "fixedAllocation" : "200.0", - "allocationDirection": "00", - "fixedBWPriority" : "FULLPRIORITY", - "requestType" : "0", - "sessionFilter" : [{ - "sourceIp" : "192.168.1.2", - "sourcePort" : ["a"], - "protocol" : "string", - "dstAddress" : "192.168.3.2", - "dstPort" : ["b"], - }] - } - retrieved_data = do_rest_patch_request(URL, body=difference, logger=LOGGER, expected_status_codes={200}) - check_timestamps(retrieved_data) - del retrieved_data['timeStamp'] - diff_data = deepdiff.DeepDiff(changed_allocation, retrieved_data) - LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) - assert len(diff_data) == 0 - - -def test_delete_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - assert 'service_uuid_01' in storage - URL = BASE_URL + '/bw_allocations/service_uuid_01' - do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={200}) - - -def test_get_allocations_empty_final(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - URL = BASE_URL + '/bw_allocations' - retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) - assert len(retrieved_data) == 0 - - -def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.topology_ids) == 1 - 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() - descriptor_loader.unload() - validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_l2vpn.py b/src/ztp_server/tests/test_ietf_l2vpn.py deleted file mode 100755 index 7bed8ff5d..000000000 --- a/src/ztp_server/tests/test_ietf_l2vpn.py +++ /dev/null @@ -1,75 +0,0 @@ -# Copyright 2022-2024 ETSI 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 logging -from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -from common.tools.object_factory.Context import json_context_id -from context.client.ContextClient import ContextClient -from tests.tools.mock_osm.MockOSM import MockOSM -from .Constants import SERVICE_CONNECTION_POINTS_1, SERVICE_CONNECTION_POINTS_2, SERVICE_TYPE -from .PrepareTestScenario import ( # pylint: disable=unused-import - # be careful, order of symbols is important here! - mock_service, nbi_service_rest, osm_wim, context_client -) - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -DESCRIPTOR_FILE = 'nbi/tests/data/topology-7router-emu-dummy.json' - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) - -def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - validate_empty_scenario(context_client) - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 - assert len(response.service_ids ) == 0 - assert len(response.slice_ids ) == 0 - -def test_create_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name - osm_wim.create_connectivity_service(SERVICE_TYPE, SERVICE_CONNECTION_POINTS_1) - -def test_get_service_status(osm_wim : MockOSM): # pylint: disable=redefined-outer-name - service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service - osm_wim.get_connectivity_service_status(service_uuid) - -def test_edit_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name - service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service - osm_wim.edit_connectivity_service(service_uuid, SERVICE_CONNECTION_POINTS_2) - -def test_delete_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name - service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service - osm_wim.delete_connectivity_service(service_uuid) - -def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.topology_ids) == 1 - 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() - descriptor_loader.unload() - validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_l3vpn.py b/src/ztp_server/tests/test_ietf_l3vpn.py deleted file mode 100755 index 0f214661f..000000000 --- a/src/ztp_server/tests/test_ietf_l3vpn.py +++ /dev/null @@ -1,113 +0,0 @@ -# Copyright 2022-2024 ETSI 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, pytest -from typing import Dict -from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import ( - DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -) -from common.tools.object_factory.Context import json_context_id -from context.client.ContextClient import ContextClient -from nbi.service.rest_server.RestServer import RestServer -from .PrepareTestScenario import ( # pylint: disable=unused-import - # be careful, order of symbols is important here! - do_rest_delete_request, do_rest_get_request, do_rest_post_request, - mock_service, nbi_service_rest, osm_wim, context_client -) - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' -SVC1_DATA_FILE = 'nbi/tests/data/ietf_l3vpn_req_svc1.json' -SVC2_DATA_FILE = 'nbi/tests/data/ietf_l3vpn_req_svc2.json' - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) - -@pytest.fixture(scope='session') -def storage() -> Dict: - yield dict() - -def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - validate_empty_scenario(context_client) - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 - assert len(response.service_ids ) == 0 - assert len(response.slice_ids ) == 0 - -# pylint: disable=redefined-outer-name, unused-argument -def test_create_svc1(nbi_service_rest : RestServer, storage : Dict): - with open(SVC1_DATA_FILE, 'r', encoding='UTF-8') as f: - svc1_data = json.load(f) - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' - do_rest_post_request(URL, body=svc1_data, logger=LOGGER, expected_status_codes={201}) - storage['svc1-uuid'] = svc1_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] - -# pylint: disable=redefined-outer-name, unused-argument -def test_create_svc2(nbi_service_rest : RestServer, storage : Dict): - with open(SVC2_DATA_FILE, 'r', encoding='UTF-8') as f: - svc2_data = json.load(f) - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' - do_rest_post_request(URL, body=svc2_data, logger=LOGGER, expected_status_codes={201}) - storage['svc2-uuid'] = svc2_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] - -# pylint: disable=redefined-outer-name, unused-argument -def test_get_state_svc1(nbi_service_rest : RestServer, storage : Dict): - assert 'svc1-uuid' in storage - service_uuid = storage['svc1-uuid'] - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) - do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - -# pylint: disable=redefined-outer-name, unused-argument -def test_get_state_svc2(nbi_service_rest : RestServer, storage : Dict): - assert 'svc2-uuid' in storage - service_uuid = storage['svc2-uuid'] - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) - do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - -# pylint: disable=redefined-outer-name, unused-argument -def test_delete_svc1(nbi_service_rest : RestServer, storage : Dict): - assert 'svc1-uuid' in storage - service_uuid = storage['svc1-uuid'] - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) - do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={204}) - -# pylint: disable=redefined-outer-name, unused-argument -def test_delete_svc2(nbi_service_rest : RestServer, storage : Dict): - assert 'svc2-uuid' in storage - service_uuid = storage['svc2-uuid'] - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) - do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={204}) - -def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.topology_ids) == 1 - 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() - descriptor_loader.unload() - validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_network.py b/src/ztp_server/tests/test_ietf_network.py deleted file mode 100755 index 68337d0a8..000000000 --- a/src/ztp_server/tests/test_ietf_network.py +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 2022-2024 ETSI 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 deepdiff, json, logging, operator, os -from typing import Dict -from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import ( - DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -) -from common.tools.object_factory.Context import json_context_id -from context.client.ContextClient import ContextClient -from nbi.service.rest_server import RestServer - -# Explicitly state NBI to use PyangBind Renderer for this test -os.environ['IETF_NETWORK_RENDERER'] = 'PYANGBIND' - -from .PrepareTestScenario import ( # pylint: disable=unused-import - # be careful, order of symbols is important here! - do_rest_get_request, mock_service, nbi_service_rest, osm_wim, context_client -) - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' -TARGET_DATA_FILE = 'nbi/tests/data/test-ietf-network.json' - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) - -def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - validate_empty_scenario(context_client) - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 - assert len(response.service_ids ) == 0 - assert len(response.slice_ids ) == 0 - -def sort_data(data : Dict) -> None: - if 'ietf-network:networks' not in data: return - if 'network' not in data['ietf-network:networks']: return - data['ietf-network:networks']['network'] = sorted( - data['ietf-network:networks']['network'], - key=operator.itemgetter('network-id') - ) - for network in data['ietf-network:networks']['network']: - if 'node' in network: - network['node'] = sorted( - network['node'], - key=operator.itemgetter('node-id') - ) - - for node in network['node']: - if 'ietf-network-topology:termination-point' in node: - node['ietf-network-topology:termination-point'] = sorted( - node['ietf-network-topology:termination-point'], - key=operator.itemgetter('tp-id') - ) - - if 'ietf-network-topology:link' in network: - network['ietf-network-topology:link'] = sorted( - network['ietf-network-topology:link'], - key=operator.itemgetter('link-id') - ) - -def test_rest_get_networks(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - with open(TARGET_DATA_FILE, 'r', encoding='UTF-8') as f: - target_data = json.load(f) - URL = '/restconf/data/ietf-network:networks' - retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - sort_data(retrieved_data) - sort_data(target_data) - diff_data = deepdiff.DeepDiff(target_data, retrieved_data) - LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) - assert len(diff_data) == 0 - -def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.topology_ids) == 1 - 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() - descriptor_loader.unload() - validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_slice.py b/src/ztp_server/tests/test_slice.py deleted file mode 100755 index fe112e6fc..000000000 --- a/src/ztp_server/tests/test_slice.py +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright 2022-2024 ETSI 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, random, uuid -from typing import Dict, Tuple -from nbi.service.rest_server.nbi_plugins.ietf_network_slice.bindings.network_slice_services import ( - NetworkSliceServices -) - -# R1 emulated devices -# Port 13-0 is Optical -# Port 13-1 is Copper -R1_UUID = "ed2388eb-5fb9-5888-a4f4-160267d3e19b" -R1_PORT_13_0_UUID_OPTICAL = "20440915-1a6c-5e7b-a80f-b0e0e51f066d" -R1_PORT_13_1_UUID_COPPER = "ff900d5d-2ac0-576c-9628-a2d016681f9d" - -# R2 emulated devices -# Port 13-0 is Optical -# Port 13-1 is Copper -R2_UUID = "49ce0312-1274-523b-97b8-24d0eca2d72d" -R2_PORT_13_0_UUID_OPTICAL = "214618cb-b63b-5e66-84c2-45c1c016e5f0" -R2_PORT_13_1_UUID_COPPER = "4e0f7fb4-5d22-56ad-a00e-20bffb4860f9" - -# R3 emulated devices -# Port 13-0 is Optical -# Port 13-1 is Copper -R3_UUID = "3bc8e994-a3b9-5f60-9c77-6608b1d08313" -R3_PORT_13_0_UUID_OPTICAL = "da5196f5-d651-5def-ada6-50ed6430279d" -R3_PORT_13_1_UUID_COPPER = "43d221fa-5701-5740-a129-502131f5bda2" - -# R4 emulated devices -# Port 13-0 is Optical -# Port 13-1 is Copper -R4_UUID = "b43e6361-2573-509d-9a88-1793e751b10d" -R4_PORT_13_0_UUID_OPTICAL = "241b74a7-8677-595c-ad65-cc9093c1e341" -R4_PORT_13_1_UUID_COPPER = "c57abf46-caaf-5954-90cc-1fec0a69330e" - -node_dict = {R1_PORT_13_1_UUID_COPPER: R1_UUID, - R2_PORT_13_1_UUID_COPPER: R2_UUID, - R3_PORT_13_1_UUID_COPPER: R3_UUID, - R4_PORT_13_1_UUID_COPPER: R4_UUID} -list_endpoints = [R1_PORT_13_1_UUID_COPPER, - R2_PORT_13_1_UUID_COPPER, - R3_PORT_13_1_UUID_COPPER, - R4_PORT_13_1_UUID_COPPER] - -list_availability= [99, 99.9, 99.99, 99.999, 99.9999] -list_bw = [10, 40, 50, 100, 150, 200, 400] -list_owner = ["Telefonica", "CTTC", "Telenor", "ADVA", "Ubitech", "ATOS"] - -URL_POST = "/restconf/data/ietf-network-slice-service:ietf-nss/network-slice-services" -URL_DELETE = "/restconf/data/ietf-network-slice-service:ietf-nss/network-slice-services/slice-service=" - -def generate_request(seed: str) -> Tuple[Dict, str]: - - ns = NetworkSliceServices() - - # Slice 1 - suuid = str(uuid.uuid5(uuid.NAMESPACE_DNS, str(seed))) - slice1 = ns.slice_service[suuid] - slice1.service_description = "Test slice for OFC 2023 demo" - slice1.status().admin_status().status = "Planned" # TODO not yet mapped - - # SDPS: R1 optical to R3 optical - sdps1 = slice1.sdps().sdp - while True: - ep1_uuid = random.choice(list_endpoints) - ep2_uuid = random.choice(list_endpoints) - if ep1_uuid != ep2_uuid: - break - - sdps1[ep1_uuid].node_id = node_dict.get(ep1_uuid) - sdps1[ep2_uuid].node_id = node_dict.get(ep2_uuid) - - # Connectivity group: Connection construct and 2 sla constrains: - # - Bandwidth - # - Availability - cg_uuid = str(uuid.uuid4()) - cg = slice1.connection_groups().connection_group - cg1 = cg[cg_uuid] - - cc1 = cg1.connectivity_construct[0] - cc1.cc_id = 5 - p2p = cc1.connectivity_construct_type.p2p() - p2p.p2p_sender_sdp = ep1_uuid - p2p.p2p_receiver_sdp = ep2_uuid - - slo_custom = cc1.slo_sle_policy.custom() - metric_bounds = slo_custom.service_slo_sle_policy().metric_bounds().metric_bound - - # SLO Bandwidth - slo_bandwidth = metric_bounds["service-slo-two-way-bandwidth"] - slo_bandwidth.value_description = "Guaranteed bandwidth" - slo_bandwidth.bound = int(random.choice(list_bw)) - slo_bandwidth.metric_unit = "Gbps" - - # SLO Availability - slo_availability = metric_bounds["service-slo-availability"] - slo_availability.value_description = "Guaranteed availability" - slo_availability.metric_unit = "percentage" - slo_availability.bound = random.choice(list_availability) - - json_request = {"data": ns.to_json()} - - #Last, add name and owner manually - list_name_owner = [{"tag-type": "owner", "value": random.choice(list_owner)}] - json_request["data"]["ietf-network-slice-service:network-slice-services"]["slice-service"][0]["service-tags"] = list_name_owner - - return (json_request, suuid) - - -if __name__ == "__main__": - request = generate_request(123) - print(json.dumps(request[0], sort_keys=True, indent=4)) diff --git a/src/ztp_server/tests/test_tfs_api.py b/src/ztp_server/tests/test_tfs_api.py deleted file mode 100755 index eab2f8d9b..000000000 --- a/src/ztp_server/tests/test_tfs_api.py +++ /dev/null @@ -1,217 +0,0 @@ -# Copyright 2022-2024 ETSI 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 logging, urllib -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME -from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import ( - DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -) -from common.tools.object_factory.Context import json_context_id -from common.type_checkers.Assertions import ( - validate_connection, validate_connection_ids, validate_connections, - validate_context, validate_context_ids, validate_contexts, - validate_device, validate_device_ids, validate_devices, - validate_link, validate_link_ids, validate_links, - validate_service, validate_service_ids, validate_services, - validate_slice, validate_slice_ids, validate_slices, - validate_topologies, validate_topology, validate_topology_ids -) -from context.client.ContextClient import ContextClient -from nbi.service.rest_server.RestServer import RestServer -from .PrepareTestScenario import ( # pylint: disable=unused-import - # be careful, order of symbols is important here! - mock_service, nbi_service_rest, context_client, - do_rest_get_request -) - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -DESCRIPTOR_FILE = 'nbi/tests/data/tfs_api_dummy.json' - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) - - -# ----- Prepare Environment -------------------------------------------------------------------------------------------- - -def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - validate_empty_scenario(context_client) - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 - assert len(response.service_ids ) == 3 - assert len(response.slice_ids ) == 1 - - -# ----- Context -------------------------------------------------------------------------------------------------------- - -def test_rest_get_context_ids(nbi_service_rest: RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/context_ids') - validate_context_ids(reply) - -def test_rest_get_contexts(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/contexts') - validate_contexts(reply) - -def test_rest_get_context(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}'.format(context_uuid)) - validate_context(reply) - - -# ----- Topology ------------------------------------------------------------------------------------------------------- - -def test_rest_get_topology_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/topology_ids'.format(context_uuid)) - validate_topology_ids(reply) - -def test_rest_get_topologies(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/topologies'.format(context_uuid)) - validate_topologies(reply) - -def test_rest_get_topology(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - topology_uuid = urllib.parse.quote(DEFAULT_TOPOLOGY_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/topology/{:s}'.format(context_uuid, topology_uuid)) - validate_topology(reply, num_devices=3, num_links=6) - - -# ----- Device --------------------------------------------------------------------------------------------------------- - -def test_rest_get_device_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/device_ids') - validate_device_ids(reply) - -def test_rest_get_devices(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/devices') - validate_devices(reply) - -def test_rest_get_device(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - device_uuid = urllib.parse.quote('R1', safe='') - reply = do_rest_get_request('/tfs-api/device/{:s}'.format(device_uuid)) - validate_device(reply) - - -# ----- Link ----------------------------------------------------------------------------------------------------------- - -def test_rest_get_link_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/link_ids') - validate_link_ids(reply) - -def test_rest_get_links(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/links') - validate_links(reply) - -def test_rest_get_link(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - link_uuid = urllib.parse.quote('R1/502==R2/501', safe='') - reply = do_rest_get_request('/tfs-api/link/{:s}'.format(link_uuid)) - validate_link(reply) - - -# ----- Service -------------------------------------------------------------------------------------------------------- - -def test_rest_get_service_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/service_ids'.format(context_uuid)) - validate_service_ids(reply) - -def test_rest_get_services(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/services'.format(context_uuid)) - validate_services(reply) - -def test_rest_get_service(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') - reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}'.format(context_uuid, service_uuid)) - validate_service(reply) - - -# ----- Slice ---------------------------------------------------------------------------------------------------------- - -def test_rest_get_slice_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/slice_ids'.format(context_uuid)) - validate_slice_ids(reply) - -def test_rest_get_slices(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/slices'.format(context_uuid)) - validate_slices(reply) - -def test_rest_get_slice(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - slice_uuid = urllib.parse.quote('SLC:R1-R2-R3', safe='') - reply = do_rest_get_request('/tfs-api/context/{:s}/slice/{:s}'.format(context_uuid, slice_uuid)) - validate_slice(reply) - - -# ----- Connection ----------------------------------------------------------------------------------------------------- - -def test_rest_get_connection_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') - reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}/connection_ids'.format(context_uuid, service_uuid)) - validate_connection_ids(reply) - -def test_rest_get_connections(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') - reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}/connections'.format(context_uuid, service_uuid)) - validate_connections(reply) - -def test_rest_get_connection(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - connection_uuid = urllib.parse.quote('CON:R1/200==R2/200:1', safe='') - reply = do_rest_get_request('/tfs-api/connection/{:s}'.format(connection_uuid)) - validate_connection(reply) - -# ----- Policy --------------------------------------------------------------------------------------------------------- - -#def test_rest_get_policyrule_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument -# reply = do_rest_get_request('/tfs-api/policyrule_ids') -# validate_policyrule_ids(reply) - -#def test_rest_get_policyrules(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument -# reply = do_rest_get_request('/tfs-api/policyrules') -# validate_policyrules(reply) - -#def test_rest_get_policyrule(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument -# policyrule_uuid_quoted = urllib.parse.quote(policyrule_uuid, safe='') -# reply = do_rest_get_request('/tfs-api/policyrule/{:s}'.format(policyrule_uuid_quoted)) -# validate_policyrule(reply) - - -# ----- Cleanup Environment -------------------------------------------------------------------------------------------- - -def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.topology_ids) == 1 - assert len(response.service_ids ) == 3 - assert len(response.slice_ids ) == 1 - - # Load descriptors and validate the base scenario - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) - descriptor_loader.validate() - descriptor_loader.unload() - validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_yang_acl.py b/src/ztp_server/tests/test_yang_acl.py deleted file mode 100755 index 2f45c50bc..000000000 --- a/src/ztp_server/tests/test_yang_acl.py +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright 2022-2024 ETSI 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 copy, json, libyang, logging, os -from typing import Dict, List, Optional - -LOGGER = logging.getLogger(__name__) - -YANG_DIR = os.path.join(os.path.dirname(__file__), 'yang') -YANG_MODULES = [ - 'ietf-yang-types', - 'ietf-interfaces', - 'iana-if-type', - 'ietf-access-control-list', -] - -class YangValidator: - def __init__(self) -> None: - self._yang_context = libyang.Context(YANG_DIR) - for module_name in YANG_MODULES: - LOGGER.info('Loading module: {:s}'.format(str(module_name))) - yang_module = self._yang_context.load_module(module_name) - yang_module.feature_enable_all() - yang_module_prefix = yang_module.prefix() - LOGGER.info(' Prefix: {:s}'.format(str(yang_module_prefix))) - - def parse_to_dict(self, message : Dict, interface_names : List[str]) -> Dict: - interfaces = self._yang_context.create_data_path('/ietf-interfaces:interfaces') - for if_index,interface_name in enumerate(interface_names): - if_path = 'interface[name="{:s}"]'.format(str(interface_name)) - interface = interfaces.create_path(if_path) - interface.create_path('if-index', if_index + 1) - interface.create_path('type', 'iana-if-type:ethernetCsmacd') - interface.create_path('admin-status', 'up') - interface.create_path('oper-status', 'up') - statistics = interface.create_path('statistics') - statistics.create_path('discontinuity-time', '2024-07-11T10:00:00.000000Z') - - message = copy.deepcopy(message) - message['ietf-interfaces:interfaces'] = interfaces.print_dict()['interfaces'] - - dnode : Optional[libyang.DNode] = self._yang_context.parse_data_mem( - json.dumps(message), 'json', validate_present=True, strict=True - ) - if dnode is None: raise Exception('Unable to parse Message({:s})'.format(str(message))) - message = dnode.print_dict() - dnode.free() - interfaces.free() - return message - - def destroy(self) -> None: - self._yang_context.destroy() - self._yang_context = None - -def main() -> None: - import uuid # pylint: disable=import-outside-toplevel - logging.basicConfig(level=logging.DEBUG) - - interface_names = {'200', '500', str(uuid.uuid4()), str(uuid.uuid4())} - ACL_RULE = {"ietf-access-control-list:acls": { - "acl": [{ - "name": "sample-ipv4-acl", "type": "ipv4-acl-type", - "aces": {"ace": [{ - "name": "rule1", - "matches": { - "ipv4": { - "source-ipv4-network": "128.32.10.6/24", - "destination-ipv4-network": "172.10.33.0/24", - "dscp": 18 - }, - "tcp": { - "source-port": {"operator": "eq", "port": 1444}, - "destination-port": {"operator": "eq", "port": 1333}, - "flags": "syn" - } - }, - "actions": {"forwarding": "drop"} - }]} - }], - "attachment-points": {"interface": [{ - "interface-id": "200", - "ingress": {"acl-sets": {"acl-set": [{"name": "sample-ipv4-acl"}]}} - }] - }}} - - yang_validator = YangValidator() - request_data = yang_validator.parse_to_dict(ACL_RULE, list(interface_names)) - yang_validator.destroy() - - LOGGER.info('request_data = {:s}'.format(str(request_data))) - -if __name__ == '__main__': - main() -- GitLab From ebd836d300a7e67d6ee51dccfd94cb988b092a28 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Thu, 30 Jan 2025 18:33:55 +0000 Subject: [PATCH 034/213] NBI component: - Updated to use gunicorn as WGSI HTTP server - Removed gRPC client/server as it was unused - Added WebSocket Flask-SocketIO - Implemented Heartbeat endpoint based on WebSocket - Other minor framework and WebUI fixes --- manifests/nbiservice.yaml | 33 +++--- proto/nbi.proto | 28 ----- src/common/Constants.py | 1 - src/nbi/.gitlab-ci.yml | 2 +- src/nbi/Dockerfile | 17 +-- src/nbi/client/NbiClient.py | 96 ----------------- src/nbi/requirements.in | 21 +++- src/nbi/service/NbiApplication.py | 63 +++++++++++ src/nbi/service/NbiService.py | 28 ----- src/nbi/service/NbiServiceServicerImpl.py | 63 ----------- src/nbi/service/{__main__.py => app.py} | 102 ++++++++---------- .../websocket_namespaces}/__init__.py | 0 .../hearthbeat/HeartbeatNamespace.py | 41 +++++++ .../hearthbeat/__init__.py} | 14 ++- src/webui/service/__init__.py | 2 +- 15 files changed, 193 insertions(+), 318 deletions(-) delete mode 100644 proto/nbi.proto delete mode 100644 src/nbi/client/NbiClient.py create mode 100644 src/nbi/service/NbiApplication.py delete mode 100644 src/nbi/service/NbiService.py delete mode 100644 src/nbi/service/NbiServiceServicerImpl.py rename src/nbi/service/{__main__.py => app.py} (53%) rename src/nbi/{client => service/websocket_namespaces}/__init__.py (100%) create mode 100644 src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py rename src/nbi/service/{rest_server/RestServer.py => websocket_namespaces/hearthbeat/__init__.py} (56%) diff --git a/manifests/nbiservice.yaml b/manifests/nbiservice.yaml index 5c954d1bb..108195d37 100644 --- a/manifests/nbiservice.yaml +++ b/manifests/nbiservice.yaml @@ -23,9 +23,6 @@ spec: replicas: 1 template: metadata: - annotations: - config.linkerd.io/skip-inbound-ports: "8762" - config.linkerd.io/skip-outbound-ports: "8762" labels: app: nbiservice spec: @@ -36,22 +33,28 @@ spec: imagePullPolicy: Always ports: - containerPort: 8080 - - containerPort: 9090 - containerPort: 9192 - - containerPort: 8761 env: - name: LOG_LEVEL value: "INFO" + - name: FLASK_ENV + value: "production" # change to "development" if developing - name: IETF_NETWORK_RENDERER value: "LIBYANG" - - name: WS_IP_PORT - value: "8761" readinessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:9090"] + httpGet: + path: /healthz + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 + failureThreshold: 3 livenessProbe: - exec: - command: ["/bin/grpc_health_probe", "-addr=:9090"] + httpGet: + path: /healthz + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 + failureThreshold: 3 resources: requests: cpu: 50m @@ -75,15 +78,7 @@ spec: protocol: TCP port: 8080 targetPort: 8080 - - name: grpc - protocol: TCP - port: 9090 - targetPort: 9090 - name: metrics protocol: TCP port: 9192 targetPort: 9192 - - name: websocket - protocol: TCP - port: 8761 - targetPort: 8761 diff --git a/proto/nbi.proto b/proto/nbi.proto deleted file mode 100644 index a81df70ef..000000000 --- a/proto/nbi.proto +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2022-2024 ETSI 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. - -syntax = "proto3"; -package nbi; - -import "context.proto"; - -service NbiService { - rpc CheckCredentials (context.TeraFlowController) returns (context.AuthenticationResult) {} - rpc GetConnectivityServiceStatus (context.ServiceId ) returns (context.ServiceStatus ) {} - rpc CreateConnectivityService (context.Service ) returns (context.ServiceId ) {} - rpc EditConnectivityService (context.Service ) returns (context.ServiceId ) {} - rpc DeleteConnectivityService (context.Service ) returns (context.Empty ) {} - rpc GetAllActiveConnectivityServices (context.Empty ) returns (context.ServiceIdList ) {} - rpc ClearAllConnectivityServices (context.Empty ) returns (context.Empty ) {} -} diff --git a/src/common/Constants.py b/src/common/Constants.py index 682007646..6508ac151 100644 --- a/src/common/Constants.py +++ b/src/common/Constants.py @@ -87,7 +87,6 @@ DEFAULT_SERVICE_GRPC_PORTS = { ServiceNameEnum.POLICY .value : 6060, ServiceNameEnum.MONITORING .value : 7070, ServiceNameEnum.DLT .value : 8080, - ServiceNameEnum.NBI .value : 9090, ServiceNameEnum.L3_CAD .value : 10001, ServiceNameEnum.L3_AM .value : 10002, ServiceNameEnum.DBSCANSERVING .value : 10008, diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 71bf223ba..d97fab701 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -62,7 +62,7 @@ unit_test nbi: fi script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - - docker run --name $IMAGE_NAME -d -p 9090:9090 -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG + - docker run --name $IMAGE_NAME -d -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG - sleep 5 - docker ps -a - docker logs $IMAGE_NAME diff --git a/src/nbi/Dockerfile b/src/nbi/Dockerfile index a9be06d37..5f5aef914 100644 --- a/src/nbi/Dockerfile +++ b/src/nbi/Dockerfile @@ -16,7 +16,7 @@ FROM python:3.9-slim # Install dependencies RUN apt-get --yes --quiet --quiet update && \ - apt-get --yes --quiet --quiet install wget g++ git build-essential cmake libpcre2-dev python3-dev python3-cffi && \ + apt-get --yes --quiet --quiet install g++ git build-essential cmake libpcre2-dev python3-dev python3-cffi && \ rm -rf /var/lib/apt/lists/* # Download, build and install libyang. Note that APT package is outdated @@ -37,23 +37,11 @@ RUN ldconfig # Set Python to show logs as they occur ENV PYTHONUNBUFFERED=0 -# Download the gRPC health probe -RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ - wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ - chmod +x /bin/grpc_health_probe - # Get generic Python packages RUN python3 -m pip install --upgrade pip RUN python3 -m pip install --upgrade setuptools wheel RUN python3 -m pip install --upgrade pip-tools -# Get common Python packages -# Note: this step enables sharing the previous Docker build steps among all the Python components -WORKDIR /var/teraflow -COPY common_requirements.in common_requirements.in -RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in -RUN python3 -m pip install -r common_requirements.txt - # Add common files into working directory WORKDIR /var/teraflow/common COPY src/common/. ./ @@ -94,4 +82,5 @@ RUN mkdir -p /var/teraflow/tests/tools COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ # Start the service -ENTRYPOINT ["python", "-m", "nbi.service"] +#ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "eventlet", "-b", "0.0.0.0:8080", "nbi.service:nbi_app"] +ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "-b", "0.0.0.0:8080", "nbi.service.app:nbi_app"] diff --git a/src/nbi/client/NbiClient.py b/src/nbi/client/NbiClient.py deleted file mode 100644 index 043035c5a..000000000 --- a/src/nbi/client/NbiClient.py +++ /dev/null @@ -1,96 +0,0 @@ -# Copyright 2022-2024 ETSI 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 grpc, logging -from common.Constants import ServiceNameEnum -from common.Settings import get_service_host, get_service_port_grpc -from common.proto.nbi_pb2_grpc import NbiServiceStub -from common.proto.context_pb2 import ( - AuthenticationResult, Empty, Service, ServiceId, ServiceIdList, ServiceStatus, TeraFlowController) -from common.tools.client.RetryDecorator import retry, delay_exponential -from common.tools.grpc.Tools import grpc_message_to_json_string - -LOGGER = logging.getLogger(__name__) -MAX_RETRIES = 15 -DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0) -RETRY_DECORATOR = retry(max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, prepare_method_name='connect') - -class NbiClient: - def __init__(self, host=None, port=None): - if not host: host = get_service_host(ServiceNameEnum.NBI) - if not port: port = get_service_port_grpc(ServiceNameEnum.NBI) - self.endpoint = '{:s}:{:s}'.format(str(host), str(port)) - LOGGER.debug('Creating channel to {:s}...'.format(str(self.endpoint))) - self.channel = None - self.stub = None - self.connect() - LOGGER.debug('Channel created') - - def connect(self): - self.channel = grpc.insecure_channel(self.endpoint) - self.stub = NbiServiceStub(self.channel) - - def close(self): - if self.channel is not None: self.channel.close() - self.channel = None - self.stub = None - - @RETRY_DECORATOR - def CheckCredentials(self, request : TeraFlowController) -> AuthenticationResult: - LOGGER.debug('CheckCredentials request: {:s}'.format(grpc_message_to_json_string(request))) - response = self.stub.CheckCredentials(request) - LOGGER.debug('CheckCredentials result: {:s}'.format(grpc_message_to_json_string(response))) - return response - - @RETRY_DECORATOR - def GetConnectivityServiceStatus(self, request : ServiceId) -> ServiceStatus: - LOGGER.debug('GetConnectivityServiceStatus request: {:s}'.format(grpc_message_to_json_string(request))) - response = self.stub.GetConnectivityServiceStatus(request) - LOGGER.debug('GetConnectivityServiceStatus result: {:s}'.format(grpc_message_to_json_string(response))) - return response - - @RETRY_DECORATOR - def CreateConnectivityService(self, request : Service) -> ServiceId: - LOGGER.debug('CreateConnectivityService request: {:s}'.format(grpc_message_to_json_string(request))) - response = self.stub.CreateConnectivityService(request) - LOGGER.debug('CreateConnectivityService result: {:s}'.format(grpc_message_to_json_string(response))) - return response - - @RETRY_DECORATOR - def EditConnectivityService(self, request : Service) -> ServiceId: - LOGGER.debug('EditConnectivityService request: {:s}'.format(grpc_message_to_json_string(request))) - response = self.stub.EditConnectivityService(request) - LOGGER.debug('EditConnectivityService result: {:s}'.format(grpc_message_to_json_string(response))) - return response - - @RETRY_DECORATOR - def DeleteConnectivityService(self, request : Service) -> Empty: - LOGGER.debug('DeleteConnectivityService request: {:s}'.format(grpc_message_to_json_string(request))) - response = self.stub.DeleteConnectivityService(request) - LOGGER.debug('DeleteConnectivityService result: {:s}'.format(grpc_message_to_json_string(response))) - return response - - @RETRY_DECORATOR - def GetAllActiveConnectivityServices(self, request : Empty) -> ServiceIdList: - LOGGER.debug('GetAllActiveConnectivityServices request: {:s}'.format(grpc_message_to_json_string(request))) - response = self.stub.GetAllActiveConnectivityServices(request) - LOGGER.debug('GetAllActiveConnectivityServices result: {:s}'.format(grpc_message_to_json_string(response))) - return response - - @RETRY_DECORATOR - def ClearAllConnectivityServices(self, request : Empty) -> Empty: - LOGGER.debug('ClearAllConnectivityServices request: {:s}'.format(grpc_message_to_json_string(request))) - response = self.stub.ClearAllConnectivityServices(request) - LOGGER.debug('ClearAllConnectivityServices result: {:s}'.format(grpc_message_to_json_string(response))) - return response diff --git a/src/nbi/requirements.in b/src/nbi/requirements.in index d56ee821b..431dbf2d2 100644 --- a/src/nbi/requirements.in +++ b/src/nbi/requirements.in @@ -14,10 +14,14 @@ deepdiff==6.7.* deepmerge==1.1.* +eventlet Flask==2.1.3 Flask-HTTPAuth==4.5.0 Flask-RESTful==0.3.9 +flask-socketio jsonschema==4.4.0 +gevent +gunicorn libyang==2.8.4 netaddr==0.9.0 pyang==2.6.0 @@ -25,4 +29,19 @@ git+https://github.com/robshakir/pyangbind.git pydantic==2.6.3 requests==2.27.1 werkzeug==2.3.7 -websockets==12.0 +#websockets==12.0 + +# from common_requirements; take required ones +#coverage==6.3 +#grpcio==1.47.* +#grpcio-health-checking==1.47.* +#grpcio-reflection==1.47.* +#grpcio-tools==1.47.* +#grpclib==0.4.4 +#prettytable==3.5.0 +#prometheus-client==0.13.0 +#protobuf==3.20.* +#pytest==6.2.5 +#pytest-benchmark==3.4.1 +#python-dateutil==2.8.2 +#pytest-depends==1.0.1 diff --git a/src/nbi/service/NbiApplication.py b/src/nbi/service/NbiApplication.py new file mode 100644 index 000000000..5c2c00eac --- /dev/null +++ b/src/nbi/service/NbiApplication.py @@ -0,0 +1,63 @@ +import logging, time +from typing import Any, Optional +from flask import Flask, request +from flask_restful import Api, Resource +from flask_socketio import Namespace, SocketIO + + +LOGGER = logging.getLogger(__name__) + +def log_request(response): + timestamp = time.strftime('[%Y-%b-%d %H:%M]') + LOGGER.info( + '%s %s %s %s %s', timestamp, request.remote_addr, request.method, + request.full_path, response.status + ) + return response + +class NbiApplication: + def __init__(self, base_url : Optional[str] = None) -> None: + if base_url is None: base_url = '' + self.base_url = base_url + + self.app = Flask(__name__) + self.app.after_request(log_request) + self.api = Api(self.app, prefix=base_url) + #websocket_path = '/'.join([base_url.rstrip('/'), 'websocket']) + self.sio = SocketIO(self.app, path=base_url, cors_allowed_origins="*") + + def add_rest_api_resource(self, resource_class : Resource, *urls, **kwargs) -> None: + self.api.add_resource(resource_class, *urls, **kwargs) + + def add_websocket_namespace(self, namespace_class : Namespace, namespace_url : str) -> None: + self.sio.on_namespace(namespace_class(namespace=namespace_url)) + + def websocket_emit_message( + self, event : str, *args : Any, namespace : str = "/", to : Optional[str] = None + ) -> None: + self.sio.emit(event, *args, namespace=namespace, to=to) + + def dump_configuration(self) -> None: + LOGGER.debug('Configured Resources:') + for resource in self.api.resources: + LOGGER.debug(' - {:s}'.format(str(resource))) + + LOGGER.debug('Configured Rules:') + for rule in self.app.url_map.iter_rules(): + LOGGER.debug(' - {:s}'.format(str(rule))) + + def run_standalone( + self, bind_address : Optional[str] = None, bind_port : Optional[int] = None + ) -> None: + # Run method used when started in a standalone mode, i.e., outside gunicorn or + # similar WSGI HTTP servers. Otherwise, use mechanism defined by the used + # WSGI HTTP server. + + #logging.getLogger('werkzeug').setLevel(logging.WARNING) + + endpoint = 'http://{:s}:{:s}'.format(str(bind_address), str(bind_port)) + if self.base_url is not None: + endpoint = '/'.join([endpoint.rstrip('/'), self.base_url]) + + LOGGER.info('Listening on {:s}...'.format(endpoint)) + self.sio.run(self.app, host=bind_address, port=bind_port) diff --git a/src/nbi/service/NbiService.py b/src/nbi/service/NbiService.py deleted file mode 100644 index fe7bf2e7b..000000000 --- a/src/nbi/service/NbiService.py +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -from common.Constants import ServiceNameEnum -from common.Settings import get_service_port_grpc -from common.proto.nbi_pb2_grpc import add_NbiServiceServicer_to_server -from common.tools.service.GenericGrpcService import GenericGrpcService -from nbi.service.NbiServiceServicerImpl import NbiServiceServicerImpl - -class NbiService(GenericGrpcService): - def __init__(self, cls_name: str = __name__) -> None: - port = get_service_port_grpc(ServiceNameEnum.NBI) - super().__init__(port, cls_name=cls_name) - self.nbi_servicer = NbiServiceServicerImpl() - - def install_servicers(self): - add_NbiServiceServicer_to_server(self.nbi_servicer, self.server) diff --git a/src/nbi/service/NbiServiceServicerImpl.py b/src/nbi/service/NbiServiceServicerImpl.py deleted file mode 100644 index 5719b67e4..000000000 --- a/src/nbi/service/NbiServiceServicerImpl.py +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 2022-2024 ETSI 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 grpc, logging -from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method -from common.proto.context_pb2 import ( - AuthenticationResult, Empty, Service, ServiceId, ServiceIdList, ServiceStatus, TeraFlowController) -from common.proto.nbi_pb2_grpc import NbiServiceServicer - -LOGGER = logging.getLogger(__name__) - -METRICS_POOL = MetricsPool('NBI', 'RPC') - -class NbiServiceServicerImpl(NbiServiceServicer): - def __init__(self): - LOGGER.info('Creating Servicer...') - LOGGER.info('Servicer Created') - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def CheckCredentials(self, request : TeraFlowController, context : grpc.ServicerContext) -> AuthenticationResult: - LOGGER.warning('NOT IMPLEMENTED') - return AuthenticationResult() - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def GetConnectivityServiceStatus(self, request : ServiceId, context : grpc.ServicerContext) -> ServiceStatus: - LOGGER.warning('NOT IMPLEMENTED') - return ServiceStatus() - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def CreateConnectivityService(self, request : Service, context : grpc.ServicerContext) -> ServiceId: - LOGGER.warning('NOT IMPLEMENTED') - return ServiceId() - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def EditConnectivityService(self, request : Service, context : grpc.ServicerContext) -> ServiceId: - LOGGER.warning('NOT IMPLEMENTED') - return ServiceId() - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def DeleteConnectivityService(self, request : Service, context : grpc.ServicerContext) -> Empty: - LOGGER.warning('NOT IMPLEMENTED') - return Empty() - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def GetAllActiveConnectivityServices(self, request : Empty, context : grpc.ServicerContext) -> ServiceIdList: - LOGGER.warning('NOT IMPLEMENTED') - return ServiceIdList() - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def ClearAllConnectivityServices(self, request : Empty, context : grpc.ServicerContext) -> Empty: - LOGGER.warning('NOT IMPLEMENTED') - return Empty() diff --git a/src/nbi/service/__main__.py b/src/nbi/service/app.py similarity index 53% rename from src/nbi/service/__main__.py rename to src/nbi/service/app.py index 1d470f4ea..023f1500b 100644 --- a/src/nbi/service/__main__.py +++ b/src/nbi/service/app.py @@ -12,16 +12,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging, signal, sys, threading +import logging +from typing import Optional from prometheus_client import start_http_server from common.Constants import ServiceNameEnum from common.Settings import ( ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, - get_env_var_name, get_log_level, get_metrics_port, + get_env_var_name, get_http_bind_address, get_log_level, + get_metrics_port, get_service_baseurl_http, get_service_port_http, wait_for_environment_variables ) -from .NbiService import NbiService -from .rest_server.RestServer import RestServer +from .NbiApplication import NbiApplication from .rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api from .rest_server.nbi_plugins.ietf_hardware import register_ietf_hardware from .rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn @@ -32,22 +33,34 @@ from .rest_server.nbi_plugins.ietf_acl import register_ietf_acl from .rest_server.nbi_plugins.qkd_app import register_qkd_app from .rest_server.nbi_plugins.tfs_api import register_tfs_api from .rest_server.nbi_plugins import register_restconf -from .context_subscription import register_context_subscription - -terminate = threading.Event() -LOGGER = None - -def signal_handler(signal, frame): # pylint: disable=redefined-outer-name, unused-argument - LOGGER.warning('Terminate signal received') - terminate.set() - -def main(): - global LOGGER # pylint: disable=global-statement - - log_level = get_log_level() - logging.basicConfig(level=log_level) - LOGGER = logging.getLogger(__name__) - +from .websocket_namespaces.hearthbeat import register_heartbeat + + +LOG_LEVEL = get_log_level() +logging.basicConfig(level=LOG_LEVEL) +LOGGER = logging.getLogger(__name__) + +BIND_ADDRESS = get_http_bind_address() +BIND_PORT = get_service_port_http(ServiceNameEnum.NBI) +BASE_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' + +REGISTER_METHODS = [ + register_etsi_bwm_api, + register_ietf_hardware, + register_ietf_l2vpn, + register_ietf_l3vpn, + register_ietf_network, + register_ietf_nss, + register_ietf_acl, + register_qkd_app, + register_tfs_api, + register_restconf, + register_heartbeat, +] + +def configure_nbi( + base_url : Optional[str] = None +) -> NbiApplication: wait_for_environment_variables([ get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), @@ -57,52 +70,25 @@ def main(): get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), ]) - signal.signal(signal.SIGINT, signal_handler) - signal.signal(signal.SIGTERM, signal_handler) - LOGGER.info('Starting...') # Start metrics server metrics_port = get_metrics_port() start_http_server(metrics_port) - # Starting NBI service - grpc_service = NbiService() - grpc_service.start() - - rest_server = RestServer() - register_etsi_bwm_api(rest_server) - register_ietf_hardware(rest_server) - register_ietf_l2vpn(rest_server) # Registering L2VPN entrypoint - register_ietf_l3vpn(rest_server) # Registering L3VPN entrypoint - register_ietf_network(rest_server) - register_ietf_nss(rest_server) # Registering NSS entrypoint - register_ietf_acl(rest_server) - register_qkd_app(rest_server) - register_tfs_api(rest_server) - register_restconf(rest_server) - rest_server.start() - - register_context_subscription() - - LOGGER.debug('Configured Resources:') - for resource in rest_server.api.resources: - LOGGER.debug(' - {:s}'.format(str(resource))) - - LOGGER.debug('Configured Rules:') - for rule in rest_server.app.url_map.iter_rules(): - LOGGER.debug(' - {:s}'.format(str(rule))) + nbi_app = NbiApplication(base_url=base_url) - # Wait for Ctrl+C or termination signal - while not terminate.wait(timeout=1.0): pass + for register_method in REGISTER_METHODS: + register_method(nbi_app) - LOGGER.info('Terminating...') - grpc_service.stop() - rest_server.shutdown() - rest_server.join() + nbi_app.dump_configuration() - LOGGER.info('Bye') - return 0 + return nbi_app if __name__ == '__main__': - sys.exit(main()) + # Only used to run it locally during development stage; + # otherwise, app is directly launched by gunicorn. + _nbi_app = configure_nbi(base_url=BASE_URL) + _nbi_app.run_standalone( + bind_address=BIND_ADDRESS, bind_port=BIND_PORT + ) diff --git a/src/nbi/client/__init__.py b/src/nbi/service/websocket_namespaces/__init__.py similarity index 100% rename from src/nbi/client/__init__.py rename to src/nbi/service/websocket_namespaces/__init__.py diff --git a/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py b/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py new file mode 100644 index 000000000..b9b8b0be2 --- /dev/null +++ b/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py @@ -0,0 +1,41 @@ +import logging, threading, time +from flask import request +from flask_socketio import Namespace, join_room, leave_room +from nbi.service.NbiApplication import NbiApplication + +LOGGER = logging.getLogger(__name__) + +NAMESPACE_NAME = 'heartbeat' +NAMESPACE_URL = '/heartbeat' + +# WebSocket Heartbeat Namespace for debugging purposes +class DebugHeartbeatHandler(Namespace): + def on_connect(self): + LOGGER.debug('Client {:s} connected'.format(str(request.sid))) + join_room(NAMESPACE_NAME) + + def on_disconnect(self, reason): + LOGGER.debug('Client {:s} disconnected: reason={:s}'.format( + str(request.sid), str(reason) + )) + leave_room(NAMESPACE_NAME) + +class DebugHeartbeatThread(threading.Thread): + INTERVAL = 1 # second + + def __init__(self, nbi_app : NbiApplication): + super().__init__(daemon=True) + self.nbi_app = nbi_app + + def run(self): + interval = DebugHeartbeatThread.INTERVAL + start_time = time.time() + while True: + time.sleep(interval) + uptime = time.time() - start_time + self.nbi_app.websocket_emit_message( + 'uptime', {'uptime_seconds': uptime}, + namespace=NAMESPACE_URL, to=NAMESPACE_NAME + ) + +NAMESPACE_DESCRIPTOR = (NAMESPACE_NAME, DebugHeartbeatHandler, NAMESPACE_URL) diff --git a/src/nbi/service/rest_server/RestServer.py b/src/nbi/service/websocket_namespaces/hearthbeat/__init__.py similarity index 56% rename from src/nbi/service/rest_server/RestServer.py rename to src/nbi/service/websocket_namespaces/hearthbeat/__init__.py index 521de2735..435a425b4 100644 --- a/src/nbi/service/rest_server/RestServer.py +++ b/src/nbi/service/websocket_namespaces/hearthbeat/__init__.py @@ -12,12 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from common.Constants import ServiceNameEnum -from common.Settings import get_service_baseurl_http, get_service_port_http -from common.tools.service.GenericRestServer import GenericRestServer -class RestServer(GenericRestServer): - def __init__(self, cls_name: str = __name__) -> None: - bind_port = get_service_port_http(ServiceNameEnum.NBI) - base_url = get_service_baseurl_http(ServiceNameEnum.NBI) - super().__init__(bind_port, base_url, cls_name=cls_name) +from nbi.service.NbiApplication import NbiApplication +from .HeartbeatNamespace import NAMESPACE_DESCRIPTOR + +def register_heartbeat(nbi_app : NbiApplication): + _, namespace_class, namespace_url = NAMESPACE_DESCRIPTOR + nbi_app.add_websocket_namespace(namespace_class, namespace_url) diff --git a/src/webui/service/__init__.py b/src/webui/service/__init__.py index f64ecca3b..d33e2118e 100644 --- a/src/webui/service/__init__.py +++ b/src/webui/service/__init__.py @@ -137,6 +137,6 @@ def create_app(use_config=None, web_app_root=None): 'is_deployed_slice' : is_deployed_slice, }) - if web_app_root is not None: + if web_app_root is not None and len(web_app_root) > 0: app.wsgi_app = SetSubAppMiddleware(app.wsgi_app, web_app_root) return app -- GitLab From 9e2b1dc75c46eada7f637d543b9c4463a3913f55 Mon Sep 17 00:00:00 2001 From: Lluis Gifre Renom <lluis.gifre@cttc.es> Date: Fri, 31 Jan 2025 08:28:01 +0000 Subject: [PATCH 035/213] Reactivate specific tests to validate NBI changes --- .gitlab-ci.yml | 2 +- src/tests/.gitlab-ci.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ce9084631..b3c19dbab 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,7 +23,7 @@ stages: include: # #- local: '/manifests/.gitlab-ci.yml' # - local: '/src/monitoring/.gitlab-ci.yml' -# - local: '/src/nbi/.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' diff --git a/src/tests/.gitlab-ci.yml b/src/tests/.gitlab-ci.yml index ec8ab77d9..41b855416 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -14,11 +14,11 @@ # 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/nfvsdn22/.gitlab-ci.yml' # #- local: '/src/tests/ofc23/.gitlab-ci.yml' # - local: '/src/tests/ofc24/.gitlab-ci.yml' -# - local: '/src/tests/eucnc24/.gitlab-ci.yml' + - local: '/src/tests/eucnc24/.gitlab-ci.yml' # - local: '/src/tests/ecoc24/.gitlab-ci.yml' -- GitLab From 5c617273862aef232a909c2225a4543309138486 Mon Sep 17 00:00:00 2001 From: Lluis Gifre Renom <lluis.gifre@cttc.es> Date: Fri, 31 Jan 2025 13:22:24 +0000 Subject: [PATCH 036/213] NBI component: - Re-added installation of common requirements - Updated specific requirements --- src/nbi/Dockerfile | 7 +++++++ src/nbi/requirements.in | 15 --------------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/src/nbi/Dockerfile b/src/nbi/Dockerfile index 5f5aef914..5cddaf117 100644 --- a/src/nbi/Dockerfile +++ b/src/nbi/Dockerfile @@ -42,6 +42,13 @@ RUN python3 -m pip install --upgrade pip RUN python3 -m pip install --upgrade setuptools wheel RUN python3 -m pip install --upgrade pip-tools +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components +WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt + # Add common files into working directory WORKDIR /var/teraflow/common COPY src/common/. ./ diff --git a/src/nbi/requirements.in b/src/nbi/requirements.in index 431dbf2d2..fc617a5cc 100644 --- a/src/nbi/requirements.in +++ b/src/nbi/requirements.in @@ -30,18 +30,3 @@ pydantic==2.6.3 requests==2.27.1 werkzeug==2.3.7 #websockets==12.0 - -# from common_requirements; take required ones -#coverage==6.3 -#grpcio==1.47.* -#grpcio-health-checking==1.47.* -#grpcio-reflection==1.47.* -#grpcio-tools==1.47.* -#grpclib==0.4.4 -#prettytable==3.5.0 -#prometheus-client==0.13.0 -#protobuf==3.20.* -#pytest==6.2.5 -#pytest-benchmark==3.4.1 -#python-dateutil==2.8.2 -#pytest-depends==1.0.1 -- GitLab From 177ec6aed1f574705faa1e96ab3c8b1a49d862ab Mon Sep 17 00:00:00 2001 From: Lluis Gifre Renom <lluis.gifre@cttc.es> Date: Fri, 31 Jan 2025 13:24:46 +0000 Subject: [PATCH 037/213] NBI component: - Added missing headers --- src/nbi/service/NbiApplication.py | 15 +++++++++++++++ .../hearthbeat/HeartbeatNamespace.py | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/nbi/service/NbiApplication.py b/src/nbi/service/NbiApplication.py index 5c2c00eac..16e699810 100644 --- a/src/nbi/service/NbiApplication.py +++ b/src/nbi/service/NbiApplication.py @@ -1,3 +1,18 @@ +# Copyright 2022-2024 ETSI 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 logging, time from typing import Any, Optional from flask import Flask, request diff --git a/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py b/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py index b9b8b0be2..06a9569c7 100644 --- a/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py +++ b/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py @@ -1,3 +1,18 @@ +# Copyright 2022-2024 ETSI 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 logging, threading, time from flask import request from flask_socketio import Namespace, join_room, leave_room -- GitLab From c0836ec59b95c8cffd2c0b9733207e0e288e0392 Mon Sep 17 00:00:00 2001 From: Lluis Gifre Renom <lluis.gifre@cttc.es> Date: Fri, 31 Jan 2025 13:51:47 +0000 Subject: [PATCH 038/213] NBI component: - Added missing requirement --- src/nbi/requirements.in | 1 + 1 file changed, 1 insertion(+) diff --git a/src/nbi/requirements.in b/src/nbi/requirements.in index fc617a5cc..02b5f39e7 100644 --- a/src/nbi/requirements.in +++ b/src/nbi/requirements.in @@ -21,6 +21,7 @@ Flask-RESTful==0.3.9 flask-socketio jsonschema==4.4.0 gevent +gevent-websocket gunicorn libyang==2.8.4 netaddr==0.9.0 -- GitLab From 1af896e77d7cb377d88158bec7b181746a0006d7 Mon Sep 17 00:00:00 2001 From: Lluis Gifre Renom <lluis.gifre@cttc.es> Date: Fri, 31 Jan 2025 15:54:21 +0000 Subject: [PATCH 039/213] NBI comopnent: - Add well-known/host-meta resource --- src/nbi/service/restapi_resources/__init__.py | 14 +++++++++++++ .../well_known_meta/Resources.py | 20 ++++++++++++++++++ .../well_known_meta/__init__.py | 21 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 src/nbi/service/restapi_resources/__init__.py create mode 100644 src/nbi/service/restapi_resources/well_known_meta/Resources.py create mode 100644 src/nbi/service/restapi_resources/well_known_meta/__init__.py diff --git a/src/nbi/service/restapi_resources/__init__.py b/src/nbi/service/restapi_resources/__init__.py new file mode 100644 index 000000000..53d5157f7 --- /dev/null +++ b/src/nbi/service/restapi_resources/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/nbi/service/restapi_resources/well_known_meta/Resources.py b/src/nbi/service/restapi_resources/well_known_meta/Resources.py new file mode 100644 index 000000000..8eab56f6b --- /dev/null +++ b/src/nbi/service/restapi_resources/well_known_meta/Resources.py @@ -0,0 +1,20 @@ +# RESTCONF .well-known endpoint (RFC 8040) +class WellKnownHostMeta(Resource): + def get(self): + response = { + "restconf": { + "capabilities": [ + "urn:ietf:params:restconf:capability:defaults:1.0", + "urn:ietf:params:restconf:capability:depth:1.0", + "urn:ietf:params:restconf:capability:with-defaults:1.0" + ], + "media-types": [ + "application/yang-data+json", + "application/yang-data+xml" + ] + } + } + return jsonify(response) + +# Register the RESTCONF .well-known endpoint +api.add_resource(WellKnownHostMeta, "/.well-known/host-meta") \ No newline at end of file diff --git a/src/nbi/service/restapi_resources/well_known_meta/__init__.py b/src/nbi/service/restapi_resources/well_known_meta/__init__.py new file mode 100644 index 000000000..d93bbd1ef --- /dev/null +++ b/src/nbi/service/restapi_resources/well_known_meta/__init__.py @@ -0,0 +1,21 @@ +# Copyright 2022-2024 ETSI 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. + + +from nbi.service.NbiApplication import NbiApplication +from .WellKnownResource import RESOURCE_DESCRIPTOR + +def register_well_known(nbi_app : NbiApplication): + endpoint_name, resource_class, resource_url = RESOURCE_DESCRIPTOR + nbi_app.add_rest_api_resource(resource_class, resource_url, endpoint=endpoint_name) -- GitLab From 1f20c6f81be02ece263b6ee0ce082903640cfcf6 Mon Sep 17 00:00:00 2001 From: Lluis Gifre Renom <lluis.gifre@cttc.es> Date: Fri, 31 Jan 2025 15:56:55 +0000 Subject: [PATCH 040/213] NBI component: - fixed requirement versions --- src/nbi/requirements.in | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/nbi/requirements.in b/src/nbi/requirements.in index 02b5f39e7..8a4d1a1b9 100644 --- a/src/nbi/requirements.in +++ b/src/nbi/requirements.in @@ -14,15 +14,16 @@ deepdiff==6.7.* deepmerge==1.1.* -eventlet +eventlet==0.39.0 Flask==2.1.3 Flask-HTTPAuth==4.5.0 Flask-RESTful==0.3.9 -flask-socketio +flask-socketio==5.5.1 jsonschema==4.4.0 -gevent -gevent-websocket -gunicorn +gevent==24.11.1 +gevent-websocket==0.10.1 +greenlet==3.1.1 +gunicorn==23.0.0 libyang==2.8.4 netaddr==0.9.0 pyang==2.6.0 -- GitLab From ac416063a5939201608ac660ec6594ea2c2451a2 Mon Sep 17 00:00:00 2001 From: Lluis Gifre Renom <lluis.gifre@cttc.es> Date: Fri, 31 Jan 2025 15:58:15 +0000 Subject: [PATCH 041/213] NBI component: - temporarily disabled resources --- src/nbi/service/app.py | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/nbi/service/app.py b/src/nbi/service/app.py index 023f1500b..e20a83691 100644 --- a/src/nbi/service/app.py +++ b/src/nbi/service/app.py @@ -23,16 +23,16 @@ from common.Settings import ( wait_for_environment_variables ) from .NbiApplication import NbiApplication -from .rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api -from .rest_server.nbi_plugins.ietf_hardware import register_ietf_hardware -from .rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn -from .rest_server.nbi_plugins.ietf_l3vpn import register_ietf_l3vpn -from .rest_server.nbi_plugins.ietf_network import register_ietf_network -from .rest_server.nbi_plugins.ietf_network_slice import register_ietf_nss -from .rest_server.nbi_plugins.ietf_acl import register_ietf_acl -from .rest_server.nbi_plugins.qkd_app import register_qkd_app -from .rest_server.nbi_plugins.tfs_api import register_tfs_api -from .rest_server.nbi_plugins import register_restconf +#from .rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api +#from .rest_server.nbi_plugins.ietf_hardware import register_ietf_hardware +#from .rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn +#from .rest_server.nbi_plugins.ietf_l3vpn import register_ietf_l3vpn +#from .rest_server.nbi_plugins.ietf_network import register_ietf_network +#from .rest_server.nbi_plugins.ietf_network_slice import register_ietf_nss +#from .rest_server.nbi_plugins.ietf_acl import register_ietf_acl +#from .rest_server.nbi_plugins.qkd_app import register_qkd_app +#from .rest_server.nbi_plugins.tfs_api import register_tfs_api +#from .rest_server.nbi_plugins import register_restconf from .websocket_namespaces.hearthbeat import register_heartbeat @@ -45,16 +45,16 @@ BIND_PORT = get_service_port_http(ServiceNameEnum.NBI) BASE_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' REGISTER_METHODS = [ - register_etsi_bwm_api, - register_ietf_hardware, - register_ietf_l2vpn, - register_ietf_l3vpn, - register_ietf_network, - register_ietf_nss, - register_ietf_acl, - register_qkd_app, - register_tfs_api, - register_restconf, + #register_etsi_bwm_api, + #register_ietf_hardware, + #register_ietf_l2vpn, + #register_ietf_l3vpn, + #register_ietf_network, + #register_ietf_nss, + #register_ietf_acl, + #register_qkd_app, + #register_tfs_api, + #register_restconf, register_heartbeat, ] -- GitLab From 686b4086579ceea71d1d5af1e8a2b3a6cf85ad99 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 31 Jan 2025 19:19:55 +0000 Subject: [PATCH 042/213] NBI component: - Corrected initalization script --- src/nbi/service/app.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/nbi/service/app.py b/src/nbi/service/app.py index e20a83691..b37a90a3c 100644 --- a/src/nbi/service/app.py +++ b/src/nbi/service/app.py @@ -85,10 +85,11 @@ def configure_nbi( return nbi_app +nbi_app = configure_nbi(base_url=BASE_URL) + if __name__ == '__main__': # Only used to run it locally during development stage; # otherwise, app is directly launched by gunicorn. - _nbi_app = configure_nbi(base_url=BASE_URL) _nbi_app.run_standalone( bind_address=BIND_ADDRESS, bind_port=BIND_PORT ) -- GitLab From ebfe46cf16bab1f32d5fedd116b6df3aa7edc911 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 3 Feb 2025 07:46:40 +0000 Subject: [PATCH 043/213] NBI component: - Deactivated metrics as no endpoint uses them and they cause "address already in use" when launching multiple `gunicorn` workers. --- manifests/nbiservice.yaml | 16 +++++++++++----- src/nbi/service/app.py | 24 +++++++++++++++++++----- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/manifests/nbiservice.yaml b/manifests/nbiservice.yaml index 108195d37..7725cb501 100644 --- a/manifests/nbiservice.yaml +++ b/manifests/nbiservice.yaml @@ -33,7 +33,10 @@ spec: imagePullPolicy: Always ports: - containerPort: 8080 - - containerPort: 9192 + # Metrics disabled for now. No NBI endpoint uses it and + # causes "address already in use" when deploying multiple + # gunicorn workers. + #- containerPort: 9192 env: - name: LOG_LEVEL value: "INFO" @@ -78,7 +81,10 @@ spec: protocol: TCP port: 8080 targetPort: 8080 - - name: metrics - protocol: TCP - port: 9192 - targetPort: 9192 + # Metrics disabled for now. No NBI endpoint uses it and + # causes "address already in use" when deploying multiple + # gunicorn workers. + #- name: metrics + # protocol: TCP + # port: 9192 + # targetPort: 9192 diff --git a/src/nbi/service/app.py b/src/nbi/service/app.py index b37a90a3c..f45b87b2c 100644 --- a/src/nbi/service/app.py +++ b/src/nbi/service/app.py @@ -14,12 +14,23 @@ import logging from typing import Optional -from prometheus_client import start_http_server + +# NOTE: Metrics disabled for now. No NBI endpoint uses it and +# causes "address already in use" when deploying multiple +# gunicorn workers. +#from prometheus_client import start_http_server + from common.Constants import ServiceNameEnum from common.Settings import ( ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, get_http_bind_address, get_log_level, - get_metrics_port, get_service_baseurl_http, get_service_port_http, + + # NOTE: Metrics disabled for now. No NBI endpoint uses it and + # causes "address already in use" when deploying multiple + # gunicorn workers. + #get_metrics_port, + + get_service_baseurl_http, get_service_port_http, wait_for_environment_variables ) from .NbiApplication import NbiApplication @@ -73,8 +84,11 @@ def configure_nbi( LOGGER.info('Starting...') # Start metrics server - metrics_port = get_metrics_port() - start_http_server(metrics_port) + # NOTE: Metrics disabled for now. No NBI endpoint uses it and + # causes "address already in use" when deploying multiple + # gunicorn workers. + #metrics_port = get_metrics_port() + #start_http_server(metrics_port) nbi_app = NbiApplication(base_url=base_url) @@ -85,7 +99,7 @@ def configure_nbi( return nbi_app -nbi_app = configure_nbi(base_url=BASE_URL) +_nbi_app = configure_nbi(base_url=BASE_URL) if __name__ == '__main__': # Only used to run it locally during development stage; -- GitLab From 9c366d8b01240c4e2cbf996d75d5e5f1fcbb3039 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 3 Feb 2025 07:58:06 +0000 Subject: [PATCH 044/213] NBI component: - Renamed symbol `_nbi_app` to `nbi_app` --- src/nbi/service/app.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/nbi/service/app.py b/src/nbi/service/app.py index f45b87b2c..db696efd6 100644 --- a/src/nbi/service/app.py +++ b/src/nbi/service/app.py @@ -90,20 +90,20 @@ def configure_nbi( #metrics_port = get_metrics_port() #start_http_server(metrics_port) - nbi_app = NbiApplication(base_url=base_url) + _nbi_app = NbiApplication(base_url=base_url) for register_method in REGISTER_METHODS: - register_method(nbi_app) + register_method(_nbi_app) - nbi_app.dump_configuration() + _nbi_app.dump_configuration() - return nbi_app + return _nbi_app -_nbi_app = configure_nbi(base_url=BASE_URL) +nbi_app = configure_nbi(base_url=BASE_URL) if __name__ == '__main__': # Only used to run it locally during development stage; # otherwise, app is directly launched by gunicorn. - _nbi_app.run_standalone( + nbi_app.run_standalone( bind_address=BIND_ADDRESS, bind_port=BIND_PORT ) -- GitLab From 3cbdaf3d67d20985d0c238942e93bfa3f2cd4e47 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 3 Feb 2025 08:20:36 +0000 Subject: [PATCH 045/213] NBI component: - Corrected gunicorn-consumed symbol - Extended dump_configuration() to dump configured websocket namespaces - Added missing environment variables in unitary test - Minor code polishing --- src/nbi/.gitlab-ci.yml | 8 +++++++- src/nbi/Dockerfile | 2 +- src/nbi/service/NbiApplication.py | 31 +++++++++++++++++++------------ src/nbi/service/app.py | 2 ++ 4 files changed, 29 insertions(+), 14 deletions(-) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index d97fab701..0bcf058fb 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -62,7 +62,13 @@ unit_test nbi: fi script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - - docker run --name $IMAGE_NAME -d -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG + - > + docker run --name $IMAGE_NAME -d -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" + --network=teraflowbridge + --env LOG_LEVEL=DEBUG + --env FLASK_ENV=development + --env IETF_NETWORK_RENDERER=LIBYANG + $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG - sleep 5 - docker ps -a - docker logs $IMAGE_NAME diff --git a/src/nbi/Dockerfile b/src/nbi/Dockerfile index 5cddaf117..bd6ce77c7 100644 --- a/src/nbi/Dockerfile +++ b/src/nbi/Dockerfile @@ -90,4 +90,4 @@ COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ # Start the service #ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "eventlet", "-b", "0.0.0.0:8080", "nbi.service:nbi_app"] -ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "-b", "0.0.0.0:8080", "nbi.service.app:nbi_app"] +ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "-b", "0.0.0.0:8080", "nbi.service.app:app"] diff --git a/src/nbi/service/NbiApplication.py b/src/nbi/service/NbiApplication.py index 16e699810..9d17b8831 100644 --- a/src/nbi/service/NbiApplication.py +++ b/src/nbi/service/NbiApplication.py @@ -35,32 +35,39 @@ class NbiApplication: if base_url is None: base_url = '' self.base_url = base_url - self.app = Flask(__name__) - self.app.after_request(log_request) - self.api = Api(self.app, prefix=base_url) + self._app = Flask(__name__) + self._app.after_request(log_request) + self._api = Api(self._app, prefix=base_url) #websocket_path = '/'.join([base_url.rstrip('/'), 'websocket']) - self.sio = SocketIO(self.app, path=base_url, cors_allowed_origins="*") + self._sio = SocketIO(self._app, path=base_url, cors_allowed_origins="*") def add_rest_api_resource(self, resource_class : Resource, *urls, **kwargs) -> None: - self.api.add_resource(resource_class, *urls, **kwargs) + self._api.add_resource(resource_class, *urls, **kwargs) def add_websocket_namespace(self, namespace_class : Namespace, namespace_url : str) -> None: - self.sio.on_namespace(namespace_class(namespace=namespace_url)) + self._sio.on_namespace(namespace_class(namespace=namespace_url)) def websocket_emit_message( self, event : str, *args : Any, namespace : str = "/", to : Optional[str] = None ) -> None: - self.sio.emit(event, *args, namespace=namespace, to=to) + self._sio.emit(event, *args, namespace=namespace, to=to) + + def get_flask_app(self) -> Flask: + return self._app def dump_configuration(self) -> None: - LOGGER.debug('Configured Resources:') - for resource in self.api.resources: + LOGGER.debug('Configured REST-API Resources:') + for resource in self._api.resources: LOGGER.debug(' - {:s}'.format(str(resource))) - LOGGER.debug('Configured Rules:') - for rule in self.app.url_map.iter_rules(): + LOGGER.debug('Configured Flask Rules:') + for rule in self._app.url_map.iter_rules(): LOGGER.debug(' - {:s}'.format(str(rule))) + LOGGER.debug('Configured WebSocket Namespaces:') + for namespace in self._sio.server.handlers.keys(): + LOGGER.debug(' - {:s}'.format(str(namespace))) + def run_standalone( self, bind_address : Optional[str] = None, bind_port : Optional[int] = None ) -> None: @@ -75,4 +82,4 @@ class NbiApplication: endpoint = '/'.join([endpoint.rstrip('/'), self.base_url]) LOGGER.info('Listening on {:s}...'.format(endpoint)) - self.sio.run(self.app, host=bind_address, port=bind_port) + self._sio.run(self._app, host=bind_address, port=bind_port) diff --git a/src/nbi/service/app.py b/src/nbi/service/app.py index db696efd6..320e7b344 100644 --- a/src/nbi/service/app.py +++ b/src/nbi/service/app.py @@ -107,3 +107,5 @@ if __name__ == '__main__': nbi_app.run_standalone( bind_address=BIND_ADDRESS, bind_port=BIND_PORT ) +else: + app = nbi_app.get_flask_app() -- GitLab From 4c4d91e133ef97df12cec048a8daa358c74e75ce Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 3 Feb 2025 18:38:27 +0000 Subject: [PATCH 046/213] NBI component: - Added new test resources and namespaces - Added standalone test --- run_test_nbi.sh | 20 ++++ src/nbi/Dockerfile | 4 +- src/nbi/mytest/pytest_code.py | 105 ++++++++++++++++++ src/nbi/mytest/requirements.in | 20 ++++ src/nbi/requirements.in | 6 +- src/nbi/service/NbiApplication.py | 46 +++++++- .../rest_server/nbi_plugins/__init__.py | 20 ++-- .../health_probes/Resources.py | 15 +++ .../health_probes/__init__.py | 21 ++++ .../hearthbeat/HeartbeatNamespace.py | 10 +- .../hearthbeat/__init__.py | 5 +- .../hearthbeat/example_code.txt | 33 ++++++ src/nbi/tests/PrepareTestScenario.py | 27 ++++- 13 files changed, 299 insertions(+), 33 deletions(-) create mode 100755 run_test_nbi.sh create mode 100644 src/nbi/mytest/pytest_code.py create mode 100644 src/nbi/mytest/requirements.in create mode 100644 src/nbi/service/restapi_resources/health_probes/Resources.py create mode 100644 src/nbi/service/restapi_resources/health_probes/__init__.py create mode 100644 src/nbi/service/websocket_namespaces/hearthbeat/example_code.txt diff --git a/run_test_nbi.sh b/run_test_nbi.sh new file mode 100755 index 000000000..b34f4c956 --- /dev/null +++ b/run_test_nbi.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + +export PYTHON_PATH=./src +export LOG_LEVEL=DEBUG +export FLASK_ENV=development + +python -m pytest --log-level=DEBUG -o log_cli=true --verbose src/nbi/mytest/pytest_code.py diff --git a/src/nbi/Dockerfile b/src/nbi/Dockerfile index bd6ce77c7..c56dff12b 100644 --- a/src/nbi/Dockerfile +++ b/src/nbi/Dockerfile @@ -89,5 +89,5 @@ RUN mkdir -p /var/teraflow/tests/tools COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ # Start the service -#ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "eventlet", "-b", "0.0.0.0:8080", "nbi.service:nbi_app"] -ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "-b", "0.0.0.0:8080", "nbi.service.app:app"] +ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "eventlet", "-b", "0.0.0.0:8080", "nbi.service.app:app"] +#ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "-b", "0.0.0.0:8080", "nbi.service.app:app"] diff --git a/src/nbi/mytest/pytest_code.py b/src/nbi/mytest/pytest_code.py new file mode 100644 index 000000000..be0376b88 --- /dev/null +++ b/src/nbi/mytest/pytest_code.py @@ -0,0 +1,105 @@ +# Copyright 2022-2024 ETSI 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 eventlet, eventlet.wsgi, json, logging, os, pytest, requests, threading, time +import websockets.sync.client # Import synchronous WebSocket client +from nbi.service.NbiApplication import NbiApplication +from nbi.service.rest_server.nbi_plugins import register_restconf +from nbi.service.restapi_resources.health_probes import register_health_probes +from nbi.service.websocket_namespaces.hearthbeat import register_heartbeat + + + +logging.basicConfig(level=logging.DEBUG) +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +LOCAL_HOST = '127.0.0.1' +NBI_SERVICE_PORT = 18080 +NBI_SERVICE_PREFIX_URL = '' +NBI_SERVICE_BASE_URL = '{:s}:{:d}{:s}'.format(LOCAL_HOST, NBI_SERVICE_PORT, NBI_SERVICE_PREFIX_URL) + +class ServerThread(threading.Thread): + def __init__(self): + super().__init__(daemon=True) + + self.nbi_app = NbiApplication(base_url=NBI_SERVICE_PREFIX_URL) + register_health_probes(self.nbi_app) + register_heartbeat (self.nbi_app) + register_restconf (self.nbi_app) + self.nbi_app.dump_configuration() + + def run(self): + try: + #eventlet.wsgi.server( + # eventlet.listen((LOCAL_HOST, NBI_SERVICE_PORT)), + # self.nbi_app.get_flask_app(), + # debug=True, log_output=True + #) + #thread = eventlet.spawn( + # self.nbi_app._sio.run, self.nbi_app.get_flask_app(), + # host=LOCAL_HOST, port=NBI_SERVICE_PORT, + # debug=True, use_reloader=False + #) + #thread.wait() + self.nbi_app._sio.run( + self.nbi_app.get_flask_app(), + host=LOCAL_HOST, port=NBI_SERVICE_PORT, + debug=True, use_reloader=False + ) + except: + LOGGER.exception('unhandled') + +@pytest.fixture(scope='session') +def nbi_application() -> NbiApplication: + thread = ServerThread() + thread.start() + time.sleep(1) + yield thread.nbi_app + thread.join(timeout=1) + +def test_restapi_get_healthz( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name, unused-argument +) -> None: + request_url = 'http://' + NBI_SERVICE_BASE_URL + '/healthz' + LOGGER.warning('Request: GET {:s}'.format(str(request_url))) + reply = requests.request('get', request_url, timeout=10, allow_redirects=True) + LOGGER.warning('Reply: {:s}'.format(str(reply.text))) + assert reply.status_code == requests.codes['OK'], 'Reply failed with status code {:d}'.format(reply.status_code) + if reply.content and len(reply.content) > 0: return reply.json() + +def test_websocket_get_heartbeat( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name, unused-argument +) -> None: + nbi_application.dump_configuration() + request_url = 'ws://' + NBI_SERVICE_BASE_URL + '/heartbeat' + LOGGER.warning('Request: WS {:s}'.format(str(request_url))) + + heartbeat_count = 0 + with websockets.sync.client.connect(request_url) as ws: + while heartbeat_count < 5: + message = ws.recv() + LOGGER.warning('Received message: {:s}'.format(str(message))) + + data = json.loads(message) + + # Validate uptime response + assert "uptime_seconds" in data, "Missing 'uptime_seconds' in response" + assert isinstance(data["uptime_seconds"], (int, float)), "'uptime_seconds' is not a number" + + heartbeat_count += 1 + LOGGER.warning('--> Heartbeat #{:d}: {:s}'.format(heartbeat_count, str(data))) + + LOGGER.warning('Test completed') + raise Exception() diff --git a/src/nbi/mytest/requirements.in b/src/nbi/mytest/requirements.in new file mode 100644 index 000000000..6a27a260f --- /dev/null +++ b/src/nbi/mytest/requirements.in @@ -0,0 +1,20 @@ +# Copyright 2022-2024 ETSI 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. + +eventlet==0.39.0 +Flask==2.1.3 +Flask-HTTPAuth==4.5.0 +Flask-RESTful==0.3.9 +flask-socketio==5.5.1 +gunicorn==23.0.0 diff --git a/src/nbi/requirements.in b/src/nbi/requirements.in index 8a4d1a1b9..401a6de30 100644 --- a/src/nbi/requirements.in +++ b/src/nbi/requirements.in @@ -20,9 +20,9 @@ Flask-HTTPAuth==4.5.0 Flask-RESTful==0.3.9 flask-socketio==5.5.1 jsonschema==4.4.0 -gevent==24.11.1 -gevent-websocket==0.10.1 -greenlet==3.1.1 +#gevent==24.11.1 +#gevent-websocket==0.10.1 +#greenlet==3.1.1 gunicorn==23.0.0 libyang==2.8.4 netaddr==0.9.0 diff --git a/src/nbi/service/NbiApplication.py b/src/nbi/service/NbiApplication.py index 9d17b8831..17d0507ec 100644 --- a/src/nbi/service/NbiApplication.py +++ b/src/nbi/service/NbiApplication.py @@ -36,16 +36,28 @@ class NbiApplication: self.base_url = base_url self._app = Flask(__name__) + self._app.config['SECRET_KEY'] = 'secret!' self._app.after_request(log_request) self._api = Api(self._app, prefix=base_url) #websocket_path = '/'.join([base_url.rstrip('/'), 'websocket']) - self._sio = SocketIO(self._app, path=base_url, cors_allowed_origins="*") + #self._sio = SocketIO(self._app, path=base_url, cors_allowed_origins="*", logger=True, engineio_logger=True) + self._sio = SocketIO(self._app, cors_allowed_origins="*", logger=True, engineio_logger=True) + + @self._sio.on_error_default # handles all namespaces without an explicit error handler + def default_error_handler(e): + LOGGER.error('[default_error_handler] e={:s}'.format(str(e))) def add_rest_api_resource(self, resource_class : Resource, *urls, **kwargs) -> None: self._api.add_resource(resource_class, *urls, **kwargs) def add_websocket_namespace(self, namespace_class : Namespace, namespace_url : str) -> None: - self._sio.on_namespace(namespace_class(namespace=namespace_url)) + LOGGER.warning('[add_websocket_namespace] (before) self._sio.server={:s}'.format(str(self._sio.server))) + LOGGER.warning('[add_websocket_namespace] (before) self._sio.server.namespace_handlers={:s}'.format(str(self._sio.server.namespace_handlers))) + LOGGER.warning('[add_websocket_namespace] (before) self._sio.namespace_handlers={:s}'.format(str(self._sio.namespace_handlers))) + self._sio.on_namespace(namespace_class(namespace_url)) + LOGGER.warning('[add_websocket_namespace] (after) self._sio.server={:s}'.format(str(self._sio.server))) + LOGGER.warning('[add_websocket_namespace] (after) self._sio.server.namespace_handlers={:s}'.format(str(self._sio.server.namespace_handlers))) + LOGGER.warning('[add_websocket_namespace] (after) self._sio.namespace_handlers={:s}'.format(str(self._sio.namespace_handlers))) def websocket_emit_message( self, event : str, *args : Any, namespace : str = "/", to : Optional[str] = None @@ -66,10 +78,14 @@ class NbiApplication: LOGGER.debug('Configured WebSocket Namespaces:') for namespace in self._sio.server.handlers.keys(): - LOGGER.debug(' - {:s}'.format(str(namespace))) + LOGGER.debug(' (server) - {:s}'.format(str(namespace))) + + for namespace in self._sio.namespace_handlers: + LOGGER.debug(' (ns_hdls) - {:s}'.format(str(namespace))) def run_standalone( - self, bind_address : Optional[str] = None, bind_port : Optional[int] = None + self, bind_address : Optional[str] = None, bind_port : Optional[int] = None, + debug : bool = False, use_reloader : bool = False ) -> None: # Run method used when started in a standalone mode, i.e., outside gunicorn or # similar WSGI HTTP servers. Otherwise, use mechanism defined by the used @@ -82,4 +98,24 @@ class NbiApplication: endpoint = '/'.join([endpoint.rstrip('/'), self.base_url]) LOGGER.info('Listening on {:s}...'.format(endpoint)) - self._sio.run(self._app, host=bind_address, port=bind_port) + self._sio.run( + self._app, host=bind_address, port=bind_port, + debug=debug, use_reloader=use_reloader + ) + + def start_test_thread( + self, bind_address : Optional[str] = None, bind_port : Optional[int] = None, + debug : bool = False, use_reloader : bool = False + ) -> None: + # NOTE: To be used for testing purposes with pytest + # Stop the thread through nbi_app.stop_test_thread() + self._thread = self._sio.start_background_task( + self._sio.run, self._app, host=bind_address, port=bind_port, + debug=debug, use_reloader=use_reloader + ) + + def stop_test_thread(self): + # NOTE: To be used for testing purposes with pytest + # Start the thread through nbi_app.start_test_thread(...) + if self._thread is None: return + self._thread.join() diff --git a/src/nbi/service/rest_server/nbi_plugins/__init__.py b/src/nbi/service/rest_server/nbi_plugins/__init__.py index 9b5d7920d..c5fce5bd3 100644 --- a/src/nbi/service/rest_server/nbi_plugins/__init__.py +++ b/src/nbi/service/rest_server/nbi_plugins/__init__.py @@ -14,25 +14,21 @@ from flask.json import jsonify from flask_restful import Resource - -from nbi.service.rest_server.RestServer import RestServer - -from .tools.HttpStatusCodes import HTTP_CREATED +from nbi.service.NbiApplication import NbiApplication +from .tools.HttpStatusCodes import HTTP_CREATED, HTTP_OK URL_PREFIX = "/restconf/data" - class BaseServer(Resource): def post(self): response = jsonify({}) response.status_code = HTTP_CREATED return response + def get(self): + response = jsonify({}) + response.status_code = HTTP_OK + return response -def _add_resource(rest_server: RestServer, resource: Resource, *urls, **kwargs): - urls = [(URL_PREFIX + url) for url in urls] - rest_server.add_resource(resource, *urls, **kwargs) - - -def register_restconf(rest_server: RestServer): - _add_resource(rest_server, BaseServer, "") +def register_restconf(nbi_app : NbiApplication): + nbi_app.add_rest_api_resource(BaseServer, URL_PREFIX) diff --git a/src/nbi/service/restapi_resources/health_probes/Resources.py b/src/nbi/service/restapi_resources/health_probes/Resources.py new file mode 100644 index 000000000..27c00d6bc --- /dev/null +++ b/src/nbi/service/restapi_resources/health_probes/Resources.py @@ -0,0 +1,15 @@ +import time +from flask_restful import Resource + +START_TIME = time.time() + +class HealthProbe(Resource): + def get(self): + uptime = time.time() - START_TIME + return {'status': 'ready', 'uptime': uptime}, 200 + #return {'status': 'not ready'}, 503 + +RESOURCE_DESCRIPTORS = [ + # endpoint_name, resource_class, resource_url + ('sys.probe.healthz', HealthProbe, '/healthz'), +] diff --git a/src/nbi/service/restapi_resources/health_probes/__init__.py b/src/nbi/service/restapi_resources/health_probes/__init__.py new file mode 100644 index 000000000..c1251e769 --- /dev/null +++ b/src/nbi/service/restapi_resources/health_probes/__init__.py @@ -0,0 +1,21 @@ +# Copyright 2022-2024 ETSI 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. + + +from nbi.service.NbiApplication import NbiApplication +from .Resources import RESOURCE_DESCRIPTORS + +def register_health_probes(nbi_app : NbiApplication): + for endpoint_name, resource_class, resource_url in RESOURCE_DESCRIPTORS: + nbi_app.add_rest_api_resource(resource_class, resource_url, endpoint=endpoint_name) diff --git a/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py b/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py index 06a9569c7..21cf43a6f 100644 --- a/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py +++ b/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py @@ -24,7 +24,7 @@ NAMESPACE_NAME = 'heartbeat' NAMESPACE_URL = '/heartbeat' # WebSocket Heartbeat Namespace for debugging purposes -class DebugHeartbeatHandler(Namespace): +class HeartbeatHandler(Namespace): def on_connect(self): LOGGER.debug('Client {:s} connected'.format(str(request.sid))) join_room(NAMESPACE_NAME) @@ -35,22 +35,24 @@ class DebugHeartbeatHandler(Namespace): )) leave_room(NAMESPACE_NAME) -class DebugHeartbeatThread(threading.Thread): +class HeartbeatThread(threading.Thread): INTERVAL = 1 # second def __init__(self, nbi_app : NbiApplication): super().__init__(daemon=True) self.nbi_app = nbi_app + self.nbi_app.heartbeat_thread = self def run(self): - interval = DebugHeartbeatThread.INTERVAL + interval = HeartbeatThread.INTERVAL start_time = time.time() while True: time.sleep(interval) uptime = time.time() - start_time + LOGGER.warning('emitting...') self.nbi_app.websocket_emit_message( 'uptime', {'uptime_seconds': uptime}, namespace=NAMESPACE_URL, to=NAMESPACE_NAME ) -NAMESPACE_DESCRIPTOR = (NAMESPACE_NAME, DebugHeartbeatHandler, NAMESPACE_URL) +NAMESPACE_DESCRIPTOR = (NAMESPACE_NAME, HeartbeatHandler, NAMESPACE_URL) diff --git a/src/nbi/service/websocket_namespaces/hearthbeat/__init__.py b/src/nbi/service/websocket_namespaces/hearthbeat/__init__.py index 435a425b4..842023ba1 100644 --- a/src/nbi/service/websocket_namespaces/hearthbeat/__init__.py +++ b/src/nbi/service/websocket_namespaces/hearthbeat/__init__.py @@ -14,8 +14,11 @@ from nbi.service.NbiApplication import NbiApplication -from .HeartbeatNamespace import NAMESPACE_DESCRIPTOR +from .HeartbeatNamespace import NAMESPACE_DESCRIPTOR, HeartbeatThread def register_heartbeat(nbi_app : NbiApplication): + heartbeat_thread = HeartbeatThread(nbi_app) + heartbeat_thread.start() + _, namespace_class, namespace_url = NAMESPACE_DESCRIPTOR nbi_app.add_websocket_namespace(namespace_class, namespace_url) diff --git a/src/nbi/service/websocket_namespaces/hearthbeat/example_code.txt b/src/nbi/service/websocket_namespaces/hearthbeat/example_code.txt new file mode 100644 index 000000000..2384841d3 --- /dev/null +++ b/src/nbi/service/websocket_namespaces/hearthbeat/example_code.txt @@ -0,0 +1,33 @@ +thread_event = Event() + +# ... + +@socketio.on('collectLiveData') +def collectLiveData(): + global thread + with thread_lock: + if thread is None: + thread_event.set() + thread = socketio.start_background_task(background_thread, thread_event) + +def background_thread(event): + """Example of how to send server generated events to clients.""" + global thread + count = 0 + try: + while event.is_set(): + socketio.sleep(1) + count += 1 + socketio.emit('my_response', {'count': count}) + finally: + event.clear() + thread = None + +@socketio.on("stopCollectingLiveData") +def stopCollectingLiveData(): + global thread + thread_event.clear() + with thread_lock: + if thread is not None: + thread.join() + thread = None \ No newline at end of file diff --git a/src/nbi/tests/PrepareTestScenario.py b/src/nbi/tests/PrepareTestScenario.py index a574f086b..c0c4d41c8 100644 --- a/src/nbi/tests/PrepareTestScenario.py +++ b/src/nbi/tests/PrepareTestScenario.py @@ -20,21 +20,26 @@ from common.Settings import ( get_env_var_name, get_service_baseurl_http, get_service_port_http ) from context.client.ContextClient import ContextClient -from nbi.service.rest_server.RestServer import RestServer +from nbi.service.NbiApplication import NbiApplication +from nbi.service.rest_server.nbi_plugins import register_restconf from nbi.service.rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api from nbi.service.rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn from nbi.service.rest_server.nbi_plugins.ietf_l3vpn import register_ietf_l3vpn from nbi.service.rest_server.nbi_plugins.ietf_network import register_ietf_network from nbi.service.rest_server.nbi_plugins.tfs_api import register_tfs_api +from nbi.service.websocket_namespaces.hearthbeat import register_heartbeat from nbi.tests.MockService_Dependencies import MockService_Dependencies from service.client.ServiceClient import ServiceClient from slice.client.SliceClient import SliceClient from tests.tools.mock_osm.MockOSM import MockOSM from .Constants import USERNAME, PASSWORD, WIM_MAPPING + LOCAL_HOST = '127.0.0.1' MOCKSERVICE_PORT = 10000 NBI_SERVICE_PORT = MOCKSERVICE_PORT + get_service_port_http(ServiceNameEnum.NBI) # avoid privileged ports +NBI_SERVICE_BASE_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' + os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) @@ -48,12 +53,22 @@ def mock_service(): @pytest.fixture(scope='session') def nbi_service_rest(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument + _nbi_app = NbiApplication(base_url=NBI_SERVICE_BASE_URL) + register_etsi_bwm_api (_nbi_app) + #register_ietf_hardware(_nbi_app) + register_ietf_l2vpn (_nbi_app) + register_ietf_l3vpn (_nbi_app) + register_ietf_network (_nbi_app) + #register_ietf_nss (_nbi_app) + #register_ietf_acl (_nbi_app) + #register_qkd_app (_nbi_app) + register_tfs_api (_nbi_app) + register_restconf (_nbi_app) + register_heartbeat (_nbi_app) + _nbi_app.dump_configuration() + + _rest_server = RestServer() - register_etsi_bwm_api(_rest_server) - register_ietf_l2vpn(_rest_server) - register_ietf_l3vpn(_rest_server) - register_ietf_network(_rest_server) - register_tfs_api(_rest_server) _rest_server.start() time.sleep(1) # bring time for the server to start yield _rest_server -- GitLab From e3fc9f2c8a77dd0755f4ced5a0f8b539b6899a12 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 5 Feb 2025 10:17:10 +0000 Subject: [PATCH 047/213] NBI component: - Stabilized support for SocketIO-based websockets next to REST-API endpoints on same server and port - Added REST-based probe and SocketIO-based heartbeat - Migrated all NBI plugins to new framework - Updated existing unitary tests --- src/nbi/mytest/pytest_code.py | 105 ---------------- .../tools/__init__.py => run_gunicorn.sh} | 3 + run_test_nbi.sh => src/nbi/run_test.sh | 5 +- src/nbi/service/NbiApplication.py | 83 ++++-------- .../tools => _tools}/Authentication.py | 0 .../tools => _tools}/HttpStatusCodes.py | 0 .../nbi_plugins/tools => _tools}/Validator.py | 0 .../{rest_server => _tools}/__init__.py | 0 src/nbi/service/app.py | 118 +++++++----------- .../nbi_plugins => }/etsi_bwm/Resources.py | 0 .../nbi_plugins => }/etsi_bwm/Tools.py | 0 src/nbi/service/etsi_bwm/__init__.py | 30 +++++ .../etsi_bwm/tests_etsi_bwm.txt | 0 .../Constants.py} | 9 ++ .../service/health_probes/HeartbeatThread.py | 40 ++++++ src/nbi/service/health_probes/Namespaces.py | 37 ++++++ .../health_probes/Resources.py} | 16 ++- .../health_probes/__init__.py | 7 +- .../nbi_plugins => }/ietf_acl/Acl.py | 2 +- .../nbi_plugins => }/ietf_acl/Acls.py | 2 +- .../ietf_acl/YangValidator.py | 0 src/nbi/service/ietf_acl/__init__.py | 31 +++++ .../ietf_acl/ietf_acl_parser.py | 0 .../yang/iana-if-type@2014-05-08.yang | 0 .../ietf-access-control-list@2019-03-04.yang | 0 .../yang/ietf-ethertypes@2019-03-04.yang | 0 .../yang/ietf-inet-types@2013-07-15.yang | 0 .../yang/ietf-interfaces@2018-02-20.yang | 0 .../yang/ietf-packet-fields@2019-03-04.yang | 0 .../yang/ietf-yang-types@2013-07-15.yang | 0 .../ietf_hardware/Hardware.py | 4 +- .../ietf_hardware/HardwareMultipleDevices.py | 4 +- .../ietf_hardware/YangHandler.py | 0 src/nbi/service/ietf_hardware/__init__.py | 29 +++++ .../yang/iana-hardware@2018-03-13.yang | 0 .../yang/ietf-hardware@2018-03-13.yang | 0 .../yang/ietf-inet-types@2013-07-15.yang | 0 ...network-hardware-inventory@2023-03-09.yang | 0 .../yang/ietf-yang-types@2013-07-15.yang | 0 .../nbi_plugins => }/ietf_l2vpn/Constants.py | 0 .../ietf_l2vpn/L2VPN_Service.py | 6 +- .../ietf_l2vpn/L2VPN_Services.py | 6 +- .../ietf_l2vpn/L2VPN_SiteNetworkAccesses.py | 6 +- .../nbi_plugins => }/ietf_l2vpn/__init__.py | 29 +++-- .../ietf_l2vpn/schemas/Common.py | 0 .../ietf_l2vpn/schemas/__init__.py | 0 .../ietf_l2vpn/schemas/site_network_access.py | 0 .../ietf_l2vpn/schemas/vpn_service.py | 0 .../nbi_plugins => }/ietf_l3vpn/Handlers.py | 0 .../ietf_l3vpn/L3VPN_Service.py | 4 +- .../ietf_l3vpn/L3VPN_Services.py | 4 +- .../ietf_l3vpn/L3VPN_SiteNetworkAccesses.py | 4 +- .../ietf_l3vpn/YangValidator.py | 0 .../nbi_plugins => }/ietf_l3vpn/__init__.py | 29 +++-- .../yang/ietf-inet-types@2013-07-15.yang | 0 .../yang/ietf-l3vpn-svc@2018-01-19.yang | 0 .../yang/ietf-netconf-acm@2018-02-14.yang | 0 .../yang/ietf-yang-types@2013-07-15.yang | 0 .../ietf_l3vpn/yang/ietf_l3vpn_tree.txt | 0 .../ietf_network/ComposeLink.py | 0 .../ietf_network/ComposeNetwork.py | 0 .../ietf_network/ComposeNode.py | 0 .../ietf_network/ComposeTermPoint.py | 0 .../ietf_network/ManualFixes.py | 0 .../ietf_network/NameMapping.py | 0 .../ietf_network/NetworkTypeEnum.py | 0 .../nbi_plugins => }/ietf_network/Networks.py | 4 +- .../nbi_plugins => }/ietf_network/README.md | 0 .../ietf_network/YangHandler.py | 0 .../nbi_plugins => }/ietf_network/__init__.py | 12 +- .../ietf_network/_docs/test_commands.txt | 2 +- .../ietf_network/bindings/__init__.py | 0 .../bindings/networks/__init__.py | 0 .../bindings/networks/network/__init__.py | 0 .../networks/network/link/__init__.py | 0 .../network/link/destination/__init__.py | 0 .../networks/network/link/source/__init__.py | 0 .../network/link/supporting_link/__init__.py | 0 .../networks/network/link/te/__init__.py | 0 .../network/link/te/bundled_links/__init__.py | 0 .../te/bundled_links/bundled_link/__init__.py | 0 .../link/te/component_links/__init__.py | 0 .../component_link/__init__.py | 0 .../te/information_source_entry/__init__.py | 0 .../information_source_state/__init__.py | 0 .../topology/__init__.py | 0 .../__init__.py | 0 .../max_lsp_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../max_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../max_resv_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../te_nsrlgs/__init__.py | 0 .../te_srlgs/__init__.py | 0 .../unreserved_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../te/information_source_state/__init__.py | 0 .../topology/__init__.py | 0 .../network/link/te/recovery/__init__.py | 0 .../network/link/te/statistics/__init__.py | 0 .../link/te/te_link_attributes/__init__.py | 0 .../te_link_attributes/client_svc/__init__.py | 0 .../external_domain/__init__.py | 0 .../__init__.py | 0 .../max_lsp_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../max_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../max_resv_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../te_link_attributes/otn_link/__init__.py | 0 .../te_link_attributes/te_nsrlgs/__init__.py | 0 .../te_link_attributes/te_srlgs/__init__.py | 0 .../te_link_attributes/underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../unreserved_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../network/link/te/underlay/__init__.py | 0 .../network/network_types/__init__.py | 0 .../network_types/te_topology/__init__.py | 0 .../networks/network/node/__init__.py | 0 .../network/node/supporting_node/__init__.py | 0 .../networks/network/node/te/__init__.py | 0 .../network/node/te/geolocation/__init__.py | 0 .../te/information_source_entry/__init__.py | 0 .../connectivity_matrices/__init__.py | 0 .../connectivity_matrix/__init__.py | 0 .../connectivity_matrix/from_/__init__.py | 0 .../from_/label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../optimizations/__init__.py | 0 .../objective_function/__init__.py | 0 .../optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../srlg/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../optimizations/tiebreakers/__init__.py | 0 .../tiebreakers/tiebreaker/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../path_route_object/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../connectivity_matrix/to/__init__.py | 0 .../to/label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../connectivity_matrix/underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../optimizations/__init__.py | 0 .../objective_function/__init__.py | 0 .../optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../srlg/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../optimizations/tiebreakers/__init__.py | 0 .../tiebreakers/tiebreaker/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../path_route_object/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../information_source_state/__init__.py | 0 .../topology/__init__.py | 0 .../underlay_topology/__init__.py | 0 .../te/information_source_state/__init__.py | 0 .../topology/__init__.py | 0 .../network/node/te/statistics/__init__.py | 0 .../connectivity_matrix_entry/__init__.py | 0 .../node/te/statistics/node/__init__.py | 0 .../node/te/te_node_attributes/__init__.py | 0 .../connectivity_matrices/__init__.py | 0 .../connectivity_matrix/__init__.py | 0 .../connectivity_matrix/from_/__init__.py | 0 .../from_/label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../optimizations/__init__.py | 0 .../objective_function/__init__.py | 0 .../optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../srlg/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../optimizations/tiebreakers/__init__.py | 0 .../tiebreakers/tiebreaker/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../path_route_object/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../connectivity_matrix/to/__init__.py | 0 .../to/label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../connectivity_matrix/underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../optimizations/__init__.py | 0 .../objective_function/__init__.py | 0 .../optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../srlg/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../optimizations/tiebreakers/__init__.py | 0 .../tiebreakers/tiebreaker/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../path_route_object/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../underlay_topology/__init__.py | 0 .../te/tunnel_termination_point/__init__.py | 0 .../client_layer_adaptation/__init__.py | 0 .../switching_capability/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../geolocation/__init__.py | 0 .../local_link_connectivities/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../local_link_connectivity/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../optimizations/__init__.py | 0 .../objective_function/__init__.py | 0 .../optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../srlg/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../optimizations/tiebreakers/__init__.py | 0 .../tiebreakers/tiebreaker/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../path_route_object/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../optimizations/__init__.py | 0 .../objective_function/__init__.py | 0 .../optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../srlg/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../optimizations/tiebreakers/__init__.py | 0 .../tiebreakers/tiebreaker/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../as_number_hop/__init__.py | 0 .../path_route_object/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../statistics/__init__.py | 0 .../local_link_connectivity/__init__.py | 0 .../tunnel_termination_point/__init__.py | 0 .../__init__.py | 0 .../node/termination_point/__init__.py | 0 .../termination_point/eth_link_tp/__init__.py | 0 .../egress_bandwidth_profile/__init__.py | 0 .../ingress_bandwidth_profile/__init__.py | 0 .../__init__.py | 0 .../termination_point/eth_svc/__init__.py | 0 .../supported_classification/__init__.py | 0 .../vlan_classification/__init__.py | 0 .../vlan_classification/outer_tag/__init__.py | 0 .../second_tag/__init__.py | 0 .../supported_vlan_operations/__init__.py | 0 .../vlan_pop/__init__.py | 0 .../vlan_push/__init__.py | 0 .../vlan_push/outer_tag/__init__.py | 0 .../vlan_push/second_tag/__init__.py | 0 .../supporting_termination_point/__init__.py | 0 .../node/termination_point/te/__init__.py | 0 .../te/client_svc/__init__.py | 0 .../te/geolocation/__init__.py | 0 .../__init__.py | 0 .../max_lsp_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../termination_point/te/otn_ltp/__init__.py | 0 .../network/supporting_network/__init__.py | 0 .../bindings/networks/network/te/__init__.py | 0 .../network/te/geolocation/__init__.py | 0 .../networks/network/te/nsrlg/__init__.py | 0 .../te_topology_identifier/__init__.py | 0 .../bindings/networks/te/__init__.py | 0 .../networks/te/templates/__init__.py | 0 .../te/templates/link_template/__init__.py | 0 .../te_link_attributes/__init__.py | 0 .../external_domain/__init__.py | 0 .../__init__.py | 0 .../max_lsp_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../ethernet_label_range/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/otn/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../label_start/te_label/otn/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/otn/__init__.py | 0 .../otn_label_range/__init__.py | 0 .../max_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../max_resv_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../te_link_attributes/te_nsrlgs/__init__.py | 0 .../te_link_attributes/te_srlgs/__init__.py | 0 .../te_link_attributes/underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/as_number_hop/__init__.py | 0 .../path_element/label_hop/__init__.py | 0 .../label_hop/te_label/__init__.py | 0 .../label_hop/te_label/otn/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../unreserved_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/otn/__init__.py | 0 .../te_bandwidth/otn/odulist/__init__.py | 0 .../te/templates/node_template/__init__.py | 0 .../te_node_attributes/__init__.py | 0 .../underlay_topology/__init__.py | 0 .../ietf_network/build-yang-bindings.sh | 2 +- .../yang/iana-routing-types@2017-12-04.yang | 0 .../yang/ietf-eth-te-topology@2023-09-28.yang | 0 .../ietf-eth-tran-service@2023-10-23.yang | 0 .../yang/ietf-eth-tran-types@2023-10-23.yang | 0 .../yang/ietf-inet-types@2013-07-15.yang | 0 .../ietf-l3-unicast-topology@2018-02-26.yang | 0 .../yang/ietf-layer1-types@2022-10-14.yang | 0 .../ietf-network-topology@2018-02-26.yang | 0 .../yang/ietf-network@2018-02-26.yang | 0 .../yang/ietf-otn-topology@2023-07-06.yang | 0 .../yang/ietf-routing-types@2017-12-04.yang | 0 .../yang/ietf-te-packet-types@2020-06-10.yang | 0 .../yang/ietf-te-topology@2020-08-06.yang | 0 .../yang/ietf-te-types@2020-06-10.yang | 0 .../ietf-trans-client-service@2023-10-23.yang | 0 ...etf-trans-client-svc-types@2023-10-23.yang | 0 .../yang/ietf-yang-types@2013-07-15.yang | 0 .../ietf_network_slice/NSS_Service.py | 4 +- .../NSS_Service_Match_Criteria.py | 4 +- .../NSS_Service_Match_Criterion.py | 4 +- .../ietf_network_slice/NSS_Services.py | 2 +- .../NSS_Services_Connection_Group.py | 4 +- .../NSS_Services_Connection_Groups.py | 4 +- .../ietf_network_slice/NSS_Services_SDP.py | 2 +- .../ietf_network_slice/NSS_Services_SDPs.py | 2 +- .../ietf_network_slice/YangValidator.py | 0 .../ietf_network_slice/__init__.py | 55 ++++---- .../ietf_network_slice/bindings/__init__.py | 0 .../bindings/nacm/__init__.py | 0 .../bindings/nacm/groups/__init__.py | 0 .../bindings/nacm/groups/group/__init__.py | 0 .../bindings/nacm/rule_list/__init__.py | 0 .../bindings/nacm/rule_list/rule/__init__.py | 0 .../nacm/rule_list/rule/rule_type/__init__.py | 0 .../rule/rule_type/data_node/__init__.py | 0 .../rule/rule_type/notification/__init__.py | 0 .../rule_type/protocol_operation/__init__.py | 0 .../network_slice_services/__init__.py | 0 .../slice_service/__init__.py | 0 .../connection_groups/__init__.py | 0 .../connection_group/__init__.py | 0 .../connection_group_monitoring/__init__.py | 0 .../connectivity_construct/__init__.py | 0 .../__init__.py | 0 .../connectivity_construct_type/__init__.py | 0 .../a2a/__init__.py | 0 .../a2a/a2a_sdp/__init__.py | 0 .../a2a/a2a_sdp/slo_sle_policy/__init__.py | 0 .../a2a_sdp/slo_sle_policy/custom/__init__.py | 0 .../custom/service_slo_sle_policy/__init__.py | 0 .../metric_bounds/__init__.py | 0 .../metric_bounds/metric_bound/__init__.py | 0 .../steering_constraints/__init__.py | 0 .../path_constraints/__init__.py | 0 .../service_function/__init__.py | 0 .../slo_sle_policy/standard/__init__.py | 0 .../p2mp/__init__.py | 0 .../p2p/__init__.py | 0 .../slo_sle_policy/__init__.py | 0 .../slo_sle_policy/custom/__init__.py | 0 .../custom/service_slo_sle_policy/__init__.py | 0 .../metric_bounds/__init__.py | 0 .../metric_bounds/metric_bound/__init__.py | 0 .../steering_constraints/__init__.py | 0 .../path_constraints/__init__.py | 0 .../service_function/__init__.py | 0 .../slo_sle_policy/standard/__init__.py | 0 .../slo_sle_policy/__init__.py | 0 .../slo_sle_policy/custom/__init__.py | 0 .../custom/service_slo_sle_policy/__init__.py | 0 .../metric_bounds/__init__.py | 0 .../metric_bounds/metric_bound/__init__.py | 0 .../steering_constraints/__init__.py | 0 .../path_constraints/__init__.py | 0 .../service_function/__init__.py | 0 .../slo_sle_policy/standard/__init__.py | 0 .../slice_service/sdps/__init__.py | 0 .../slice_service/sdps/sdp/__init__.py | 0 .../sdps/sdp/attachment_circuits/__init__.py | 0 .../attachment_circuit/__init__.py | 0 .../attachment_circuit/ac_tags/__init__.py | 0 .../ac_tags/ac_tag_opaque/__init__.py | 0 .../ac_tags/ac_tags/__init__.py | 0 .../incoming_qos_policy/__init__.py | 0 .../rate_limits/__init__.py | 0 .../outgoing_qos_policy/__init__.py | 0 .../rate_limits/__init__.py | 0 .../sdp_peering/__init__.py | 0 .../sdp_peering/opaque/__init__.py | 0 .../sdp_peering/protocol/__init__.py | 0 .../protocol/attribute/__init__.py | 0 .../sdps/sdp/incoming_qos_policy/__init__.py | 0 .../rate_limits/__init__.py | 0 .../sdps/sdp/location/__init__.py | 0 .../sdps/sdp/outgoing_qos_policy/__init__.py | 0 .../rate_limits/__init__.py | 0 .../sdps/sdp/sdp_monitoring/__init__.py | 0 .../sdps/sdp/sdp_peering/__init__.py | 0 .../sdps/sdp/sdp_peering/opaque/__init__.py | 0 .../sdps/sdp/sdp_peering/protocol/__init__.py | 0 .../protocol/attribute/__init__.py | 0 .../sdp/service_match_criteria/__init__.py | 0 .../match_criterion/__init__.py | 0 .../slice_service/sdps/sdp/status/__init__.py | 0 .../sdps/sdp/status/admin_status/__init__.py | 0 .../sdps/sdp/status/oper_status/__init__.py | 0 .../slice_service/service_tags/__init__.py | 0 .../service_tags/tag_opaque/__init__.py | 0 .../service_tags/tag_type/__init__.py | 0 .../slice_service/slo_sle_policy/__init__.py | 0 .../slo_sle_policy/custom/__init__.py | 0 .../custom/service_slo_sle_policy/__init__.py | 0 .../metric_bounds/__init__.py | 0 .../metric_bounds/metric_bound/__init__.py | 0 .../steering_constraints/__init__.py | 0 .../path_constraints/__init__.py | 0 .../service_function/__init__.py | 0 .../slo_sle_policy/standard/__init__.py | 0 .../slice_service/status/__init__.py | 0 .../status/admin_status/__init__.py | 0 .../status/oper_status/__init__.py | 0 .../te_topology_identifier/__init__.py | 0 .../slo_sle_templates/__init__.py | 0 .../slo_sle_template/__init__.py | 0 .../service_slo_sle_policy/__init__.py | 0 .../metric_bounds/__init__.py | 0 .../metric_bounds/metric_bound/__init__.py | 0 .../steering_constraints/__init__.py | 0 .../path_constraints/__init__.py | 0 .../service_function/__init__.py | 0 .../bindings/networks/__init__.py | 0 .../bindings/networks/network/__init__.py | 0 .../networks/network/link/__init__.py | 0 .../network/link/destination/__init__.py | 0 .../networks/network/link/source/__init__.py | 0 .../network/link/supporting_link/__init__.py | 0 .../networks/network/link/te/__init__.py | 0 .../link/te/bundle_stack_level/__init__.py | 0 .../te/bundle_stack_level/bundle/__init__.py | 0 .../bundle/bundled_links/__init__.py | 0 .../bundled_links/bundled_link/__init__.py | 0 .../bundle_stack_level/component/__init__.py | 0 .../component/component_links/__init__.py | 0 .../component_link/__init__.py | 0 .../te/information_source_entry/__init__.py | 0 .../information_source_state/__init__.py | 0 .../topology/__init__.py | 0 .../__init__.py | 0 .../max_lsp_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../max_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../max_resv_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../te_nsrlgs/__init__.py | 0 .../te_srlgs/__init__.py | 0 .../unreserved_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../te/information_source_state/__init__.py | 0 .../topology/__init__.py | 0 .../network/link/te/recovery/__init__.py | 0 .../network/link/te/statistics/__init__.py | 0 .../link/te/te_link_attributes/__init__.py | 0 .../external_domain/__init__.py | 0 .../__init__.py | 0 .../max_lsp_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../max_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../max_resv_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../te_link_attributes/te_nsrlgs/__init__.py | 0 .../te_link_attributes/te_srlgs/__init__.py | 0 .../te_link_attributes/underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../backup_path/path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../unreserved_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../network/link/te/underlay/__init__.py | 0 .../network/network_types/__init__.py | 0 .../network_types/te_topology/__init__.py | 0 .../networks/network/node/__init__.py | 0 .../network/node/supporting_node/__init__.py | 0 .../networks/network/node/te/__init__.py | 0 .../network/node/te/geolocation/__init__.py | 0 .../te/information_source_entry/__init__.py | 0 .../connectivity_matrices/__init__.py | 0 .../connectivity_matrix/__init__.py | 0 .../connectivity_matrix/from/__init__.py | 0 .../from/label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../optimizations/__init__.py | 0 .../optimizations/algorithm/__init__.py | 0 .../algorithm/metric/__init__.py | 0 .../metric/optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/srlg/__init__.py | 0 .../type/srlg/srlg/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../algorithm/metric/tiebreakers/__init__.py | 0 .../metric/tiebreakers/tiebreaker/__init__.py | 0 .../algorithm/objective_function/__init__.py | 0 .../objective_function/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../path_route_object/type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_route_object/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../connectivity_matrix/to/__init__.py | 0 .../to/label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../connectivity_matrix/underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../backup_path/path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../optimizations/__init__.py | 0 .../optimizations/algorithm/__init__.py | 0 .../algorithm/metric/__init__.py | 0 .../metric/optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/srlg/__init__.py | 0 .../type/srlg/srlg/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../algorithm/metric/tiebreakers/__init__.py | 0 .../metric/tiebreakers/tiebreaker/__init__.py | 0 .../algorithm/objective_function/__init__.py | 0 .../objective_function/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../path_route_object/type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_route_object/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../backup_path/path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../information_source_state/__init__.py | 0 .../topology/__init__.py | 0 .../underlay_topology/__init__.py | 0 .../te/information_source_state/__init__.py | 0 .../topology/__init__.py | 0 .../network/node/te/statistics/__init__.py | 0 .../connectivity_matrix_entry/__init__.py | 0 .../node/te/statistics/node/__init__.py | 0 .../node/te/te_node_attributes/__init__.py | 0 .../connectivity_matrices/__init__.py | 0 .../connectivity_matrix/__init__.py | 0 .../connectivity_matrix/from/__init__.py | 0 .../from/label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../optimizations/__init__.py | 0 .../optimizations/algorithm/__init__.py | 0 .../algorithm/metric/__init__.py | 0 .../metric/optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/srlg/__init__.py | 0 .../type/srlg/srlg/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../algorithm/metric/tiebreakers/__init__.py | 0 .../metric/tiebreakers/tiebreaker/__init__.py | 0 .../algorithm/objective_function/__init__.py | 0 .../objective_function/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../path_route_object/type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_route_object/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../connectivity_matrix/to/__init__.py | 0 .../to/label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../connectivity_matrix/underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../backup_path/path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../optimizations/__init__.py | 0 .../optimizations/algorithm/__init__.py | 0 .../algorithm/metric/__init__.py | 0 .../metric/optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/srlg/__init__.py | 0 .../type/srlg/srlg/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../algorithm/metric/tiebreakers/__init__.py | 0 .../metric/tiebreakers/tiebreaker/__init__.py | 0 .../algorithm/objective_function/__init__.py | 0 .../objective_function/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../path_route_object/type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_route_object/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../backup_path/path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../underlay_topology/__init__.py | 0 .../te/tunnel_termination_point/__init__.py | 0 .../client_layer_adaptation/__init__.py | 0 .../switching_capability/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../geolocation/__init__.py | 0 .../local_link_connectivities/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../local_link_connectivity/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../optimizations/__init__.py | 0 .../optimizations/algorithm/__init__.py | 0 .../algorithm/metric/__init__.py | 0 .../metric/optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/srlg/__init__.py | 0 .../type/srlg/srlg/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../algorithm/metric/tiebreakers/__init__.py | 0 .../metric/tiebreakers/tiebreaker/__init__.py | 0 .../algorithm/objective_function/__init__.py | 0 .../objective_function/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../path_route_object/type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_route_object/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../backup_path/path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../optimizations/__init__.py | 0 .../optimizations/algorithm/__init__.py | 0 .../algorithm/metric/__init__.py | 0 .../metric/optimization_metric/__init__.py | 0 .../__init__.py | 0 .../route_object_exclude_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/srlg/__init__.py | 0 .../type/srlg/srlg/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../__init__.py | 0 .../route_object_include_object/__init__.py | 0 .../type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../algorithm/metric/tiebreakers/__init__.py | 0 .../metric/tiebreakers/tiebreaker/__init__.py | 0 .../algorithm/objective_function/__init__.py | 0 .../objective_function/__init__.py | 0 .../path_constraints/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_metric_bounds/__init__.py | 0 .../path_metric_bound/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../path_constraints/te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../path_properties/__init__.py | 0 .../path_affinities_values/__init__.py | 0 .../path_affinities_value/__init__.py | 0 .../path_affinity_names/__init__.py | 0 .../path_affinity_name/__init__.py | 0 .../affinity_name/__init__.py | 0 .../path_properties/path_metric/__init__.py | 0 .../path_route_objects/__init__.py | 0 .../path_route_object/__init__.py | 0 .../path_route_object/type/__init__.py | 0 .../type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_route_object/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../path_srlgs_lists/__init__.py | 0 .../path_srlgs_list/__init__.py | 0 .../path_srlgs_names/__init__.py | 0 .../path_srlgs_name/__init__.py | 0 .../underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../backup_path/path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../statistics/__init__.py | 0 .../local_link_connectivity/__init__.py | 0 .../tunnel_termination_point/__init__.py | 0 .../__init__.py | 0 .../node/termination_point/__init__.py | 0 .../supporting_termination_point/__init__.py | 0 .../node/termination_point/te/__init__.py | 0 .../te/geolocation/__init__.py | 0 .../__init__.py | 0 .../max_lsp_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../network/supporting_network/__init__.py | 0 .../bindings/networks/network/te/__init__.py | 0 .../network/te/geolocation/__init__.py | 0 .../networks/network/te/nsrlg/__init__.py | 0 .../te_topology_identifier/__init__.py | 0 .../bindings/networks/te/__init__.py | 0 .../networks/te/templates/__init__.py | 0 .../te/templates/link_template/__init__.py | 0 .../te_link_attributes/__init__.py | 0 .../external_domain/__init__.py | 0 .../__init__.py | 0 .../max_lsp_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../label_restrictions/__init__.py | 0 .../label_restriction/__init__.py | 0 .../label_restriction/label_end/__init__.py | 0 .../label_end/te_label/__init__.py | 0 .../label_end/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_start/__init__.py | 0 .../label_start/te_label/__init__.py | 0 .../te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../label_restriction/label_step/__init__.py | 0 .../label_step/technology/__init__.py | 0 .../label_step/technology/generic/__init__.py | 0 .../max_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../max_resv_link_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../te_link_attributes/te_nsrlgs/__init__.py | 0 .../te_link_attributes/te_srlgs/__init__.py | 0 .../te_link_attributes/underlay/__init__.py | 0 .../underlay/backup_path/__init__.py | 0 .../backup_path/path_element/__init__.py | 0 .../backup_path/path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../underlay/primary_path/__init__.py | 0 .../primary_path/path_element/__init__.py | 0 .../path_element/type/__init__.py | 0 .../path_element/type/as_number/__init__.py | 0 .../type/as_number/as_number_hop/__init__.py | 0 .../path_element/type/label/__init__.py | 0 .../type/label/label_hop/__init__.py | 0 .../type/label/label_hop/te_label/__init__.py | 0 .../label_hop/te_label/technology/__init__.py | 0 .../te_label/technology/generic/__init__.py | 0 .../type/numbered_link_hop/__init__.py | 0 .../numbered_link_hop/__init__.py | 0 .../type/numbered_node_hop/__init__.py | 0 .../numbered_node_hop/__init__.py | 0 .../type/unnumbered_link_hop/__init__.py | 0 .../unnumbered_link_hop/__init__.py | 0 .../tunnel_termination_points/__init__.py | 0 .../underlay/tunnels/__init__.py | 0 .../underlay/tunnels/tunnel/__init__.py | 0 .../unreserved_bandwidth/__init__.py | 0 .../te_bandwidth/__init__.py | 0 .../te_bandwidth/technology/__init__.py | 0 .../technology/generic/__init__.py | 0 .../te/templates/node_template/__init__.py | 0 .../te_node_attributes/__init__.py | 0 .../underlay_topology/__init__.py | 0 .../ietf_network_slice/ietf_slice_handler.py | 0 .../ietf_network_slice/ofc23_batch_slices.py | 0 .../yang/ietf-ac-common@2023-11-13.yang | 0 .../yang/ietf-ac-svc@2024-08-06.yang | 0 .../yang/ietf-ethertypes@2019-03-04.yang | 0 .../yang/ietf-geo-location@2022-02-11.yang | 0 .../yang/ietf-inet-types@2024-10-21.yang | 0 .../yang/ietf-key-chain@2017-06-15.yang | 0 .../yang/ietf-netconf-acm@2018-02-14.yang | 0 .../yang/ietf-network-slice-service.txt | 0 ...ietf-network-slice-service@2024-08-28.yang | 0 .../yang/ietf-network-slice@2022-03-04.yang | 0 .../ietf-network-topology@2018-02-26.yang | 0 .../yang/ietf-network@2018-02-26.yang | 0 .../yang/ietf-packet-fields@2019-03-04.yang | 0 .../yang/ietf-routing-types@2017-12-04.yang | 0 .../yang/ietf-te-packet-types@2024-10-30.yang | 0 .../yang/ietf-te-types@2024-10-30.yang | 0 .../yang/ietf-vpn-common@2021-09-10.yang | 0 .../nbi_plugins => }/qkd_app/Resources.py | 0 .../hearthbeat => qkd_app}/__init__.py | 20 +-- .../nbi_plugins/etsi_bwm/__init__.py | 29 ----- .../nbi_plugins/ietf_acl/__init__.py | 38 ------ .../nbi_plugins/ietf_hardware/__init__.py | 24 ---- .../nbi_plugins/qkd_app/__init__.py | 29 ----- .../health_probes/Resources.py | 15 --- .../well_known_meta/Resources.py | 20 --- .../Resources.py} | 15 +-- .../__init__.py | 5 + .../nbi_plugins => }/tfs_api/Resources.py | 0 .../nbi_plugins => }/tfs_api/Tools.py | 0 .../nbi_plugins => }/tfs_api/__init__.py | 14 ++- .../hearthbeat/HeartbeatNamespace.py | 58 --------- .../hearthbeat/example_code.txt | 33 ----- src/nbi/service/well_known_meta/Resources.py | 35 ++++++ .../well_known_meta/__init__.py | 7 +- src/nbi/tests/Constants.py | 79 ++---------- src/nbi/tests/HeartbeatClientNamespace.py | 45 +++++++ src/nbi/tests/MockService_Dependencies.py | 2 +- src/nbi/tests/MockWebServer.py | 58 +++++++++ src/nbi/tests/OSM_Constants.py | 83 ++++++++++++ src/nbi/tests/PrepareTestScenario.py | 73 +++++------ src/nbi/tests/test__nbi_core.py | 61 +++++++++ src/nbi/tests/test_etsi_bwm.py | 53 ++++++-- src/nbi/tests/test_ietf_l2vpn.py | 11 +- src/nbi/tests/test_ietf_l3vpn.py | 49 +++++--- src/nbi/tests/test_ietf_network.py | 16 ++- src/nbi/tests/test_slice.py | 2 +- src/nbi/tests/test_slice_2.py | 12 +- src/nbi/tests/test_tfs_api.py | 107 ++++++++++++---- 2143 files changed, 905 insertions(+), 802 deletions(-) delete mode 100644 src/nbi/mytest/pytest_code.py rename src/nbi/{service/rest_server/nbi_plugins/tools/__init__.py => run_gunicorn.sh} (82%) mode change 100644 => 100755 rename run_test_nbi.sh => src/nbi/run_test.sh (82%) rename src/nbi/service/{rest_server/nbi_plugins/tools => _tools}/Authentication.py (100%) rename src/nbi/service/{rest_server/nbi_plugins/tools => _tools}/HttpStatusCodes.py (100%) rename src/nbi/service/{rest_server/nbi_plugins/tools => _tools}/Validator.py (100%) rename src/nbi/service/{rest_server => _tools}/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/etsi_bwm/Resources.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/etsi_bwm/Tools.py (100%) create mode 100644 src/nbi/service/etsi_bwm/__init__.py rename src/nbi/service/{rest_server/nbi_plugins => }/etsi_bwm/tests_etsi_bwm.txt (100%) rename src/nbi/service/{websocket_namespaces/__init__.py => health_probes/Constants.py} (82%) create mode 100644 src/nbi/service/health_probes/HeartbeatThread.py create mode 100644 src/nbi/service/health_probes/Namespaces.py rename src/nbi/{mytest/requirements.in => service/health_probes/Resources.py} (69%) rename src/nbi/service/{restapi_resources => }/health_probes/__init__.py (75%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/Acl.py (97%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/Acls.py (98%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/YangValidator.py (100%) create mode 100644 src/nbi/service/ietf_acl/__init__.py rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/ietf_acl_parser.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/yang/iana-if-type@2014-05-08.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/yang/ietf-access-control-list@2019-03-04.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/yang/ietf-ethertypes@2019-03-04.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/yang/ietf-inet-types@2013-07-15.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/yang/ietf-interfaces@2018-02-20.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/yang/ietf-packet-fields@2019-03-04.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_acl/yang/ietf-yang-types@2013-07-15.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_hardware/Hardware.py (94%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_hardware/HardwareMultipleDevices.py (93%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_hardware/YangHandler.py (100%) create mode 100644 src/nbi/service/ietf_hardware/__init__.py rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_hardware/yang/iana-hardware@2018-03-13.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_hardware/yang/ietf-hardware@2018-03-13.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_hardware/yang/ietf-inet-types@2013-07-15.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_hardware/yang/ietf-network-hardware-inventory@2023-03-09.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_hardware/yang/ietf-yang-types@2013-07-15.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l2vpn/Constants.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l2vpn/L2VPN_Service.py (95%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l2vpn/L2VPN_Services.py (90%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py (96%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l2vpn/__init__.py (56%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l2vpn/schemas/Common.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l2vpn/schemas/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l2vpn/schemas/site_network_access.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l2vpn/schemas/vpn_service.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/Handlers.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/L3VPN_Service.py (95%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/L3VPN_Services.py (94%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/L3VPN_SiteNetworkAccesses.py (92%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/YangValidator.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/__init__.py (57%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/yang/ietf-inet-types@2013-07-15.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/yang/ietf-l3vpn-svc@2018-01-19.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/yang/ietf-netconf-acm@2018-02-14.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/yang/ietf-yang-types@2013-07-15.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_l3vpn/yang/ietf_l3vpn_tree.txt (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/ComposeLink.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/ComposeNetwork.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/ComposeNode.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/ComposeTermPoint.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/ManualFixes.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/NameMapping.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/NetworkTypeEnum.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/Networks.py (96%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/README.md (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/YangHandler.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/__init__.py (79%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/_docs/test_commands.txt (92%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/destination/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/source/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/supporting_link/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/bundled_links/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/bundled_links/bundled_link/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/component_links/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/component_links/component_link/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/information_source_state/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/information_source_state/topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/te_nsrlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/te_srlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_state/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/information_source_state/topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/recovery/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/statistics/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/client_svc/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/external_domain/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/otn_link/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/te_nsrlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/te_srlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/link/te/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/network_types/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/network_types/te_topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/supporting_node/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/geolocation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/information_source_state/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/information_source_state/topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_entry/underlay_topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_state/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/information_source_state/topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/statistics/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/statistics/connectivity_matrix_entry/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/statistics/node/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/te_node_attributes/underlay_topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/geolocation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/local_link_connectivity/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/tunnel_termination_point/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/supporting_tunnel_termination_point/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/egress_bandwidth_profile/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/ingress_bandwidth_profile/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/ingress_egress_bandwidth_profile/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_svc/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/outer_tag/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/second_tag/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_pop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/outer_tag/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/second_tag/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/supporting_termination_point/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/te/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/te/client_svc/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/te/geolocation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/node/termination_point/te/otn_ltp/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/supporting_network/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/te/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/te/geolocation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/te/nsrlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/network/te_topology_identifier/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/external_domain/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/ethernet_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/otn_label_range/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/te_nsrlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/te_srlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/node_template/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/node_template/te_node_attributes/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/bindings/networks/te/templates/node_template/te_node_attributes/underlay_topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/build-yang-bindings.sh (96%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/iana-routing-types@2017-12-04.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-eth-te-topology@2023-09-28.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-eth-tran-service@2023-10-23.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-eth-tran-types@2023-10-23.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-inet-types@2013-07-15.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-l3-unicast-topology@2018-02-26.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-layer1-types@2022-10-14.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-network-topology@2018-02-26.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-network@2018-02-26.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-otn-topology@2023-07-06.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-routing-types@2017-12-04.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-te-topology@2020-08-06.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-te-types@2020-06-10.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-trans-client-service@2023-10-23.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-trans-client-svc-types@2023-10-23.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network/yang/ietf-yang-types@2013-07-15.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/NSS_Service.py (97%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/NSS_Service_Match_Criteria.py (95%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/NSS_Service_Match_Criterion.py (93%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/NSS_Services.py (96%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/NSS_Services_Connection_Group.py (95%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/NSS_Services_Connection_Groups.py (93%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/NSS_Services_SDP.py (96%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/NSS_Services_SDPs.py (96%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/YangValidator.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/__init__.py (51%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/nacm/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/nacm/groups/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/nacm/groups/group/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/nacm/rule_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/nacm/rule_list/rule/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/data_node/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/notification/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/protocol_operation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connection_group_monitoring/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_monitoring/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/standard/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/p2mp/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/p2p/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/standard/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/standard/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/ac_tag_opaque/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/ac_tags/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/incoming_qos_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/incoming_qos_policy/rate_limits/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/outgoing_qos_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/outgoing_qos_policy/rate_limits/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/opaque/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/protocol/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/protocol/attribute/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/incoming_qos_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/incoming_qos_policy/rate_limits/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/location/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/outgoing_qos_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/outgoing_qos_policy/rate_limits/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_monitoring/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/opaque/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/protocol/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/protocol/attribute/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/service_match_criteria/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/service_match_criteria/match_criterion/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/admin_status/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/oper_status/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/tag_opaque/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/tag_type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/standard/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/status/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/status/admin_status/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/status/oper_status/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slice_service/te_topology_identifier/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/service_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/destination/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/source/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/supporting_link/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/bundled_links/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/bundled_links/bundled_link/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/component_links/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/component_links/component_link/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/information_source_state/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/information_source_state/topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/te_nsrlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/te_srlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_state/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/information_source_state/topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/recovery/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/statistics/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/external_domain/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/te_nsrlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/te_srlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/link/te/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/network_types/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/network_types/te_topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/supporting_node/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/geolocation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/objective_function/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/information_source_state/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/information_source_state/topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/underlay_topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_state/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/information_source_state/topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/statistics/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/statistics/connectivity_matrix_entry/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/statistics/node/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/objective_function/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/underlay_topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/geolocation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/objective_function/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/tiebreakers/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/objective_function/objective_function/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/path_metric_bound/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/path_affinities_value/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_metric/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/path_srlgs_name/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/local_link_connectivity/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/tunnel_termination_point/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/supporting_tunnel_termination_point/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/termination_point/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/termination_point/supporting_termination_point/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/termination_point/te/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/termination_point/te/geolocation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/supporting_network/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/te/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/te/geolocation/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/te/nsrlg/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/network/te_topology_identifier/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/external_domain/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/te_nsrlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/te_srlgs/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/as_number/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnel_termination_points/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/tunnel/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/node_template/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/node_template/te_node_attributes/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/bindings/networks/te/templates/node_template/te_node_attributes/underlay_topology/__init__.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/ietf_slice_handler.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/ofc23_batch_slices.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-ac-common@2023-11-13.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-ac-svc@2024-08-06.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-ethertypes@2019-03-04.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-geo-location@2022-02-11.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-inet-types@2024-10-21.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-key-chain@2017-06-15.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-netconf-acm@2018-02-14.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-network-slice-service.txt (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-network-slice-service@2024-08-28.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-network-slice@2022-03-04.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-network-topology@2018-02-26.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-network@2018-02-26.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-packet-fields@2019-03-04.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-routing-types@2017-12-04.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-te-packet-types@2024-10-30.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-te-types@2024-10-30.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/ietf_network_slice/yang/ietf-vpn-common@2021-09-10.yang (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/qkd_app/Resources.py (100%) rename src/nbi/service/{websocket_namespaces/hearthbeat => qkd_app}/__init__.py (64%) delete mode 100644 src/nbi/service/rest_server/nbi_plugins/etsi_bwm/__init__.py delete mode 100644 src/nbi/service/rest_server/nbi_plugins/ietf_acl/__init__.py delete mode 100644 src/nbi/service/rest_server/nbi_plugins/ietf_hardware/__init__.py delete mode 100644 src/nbi/service/rest_server/nbi_plugins/qkd_app/__init__.py delete mode 100644 src/nbi/service/restapi_resources/health_probes/Resources.py delete mode 100644 src/nbi/service/restapi_resources/well_known_meta/Resources.py rename src/nbi/service/{rest_server/nbi_plugins/__init__.py => restconf_root/Resources.py} (67%) rename src/nbi/service/{restapi_resources => restconf_root}/__init__.py (75%) rename src/nbi/service/{rest_server/nbi_plugins => }/tfs_api/Resources.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/tfs_api/Tools.py (100%) rename src/nbi/service/{rest_server/nbi_plugins => }/tfs_api/__init__.py (90%) delete mode 100644 src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py delete mode 100644 src/nbi/service/websocket_namespaces/hearthbeat/example_code.txt create mode 100644 src/nbi/service/well_known_meta/Resources.py rename src/nbi/service/{restapi_resources => }/well_known_meta/__init__.py (71%) create mode 100644 src/nbi/tests/HeartbeatClientNamespace.py create mode 100644 src/nbi/tests/MockWebServer.py create mode 100644 src/nbi/tests/OSM_Constants.py create mode 100644 src/nbi/tests/test__nbi_core.py diff --git a/src/nbi/mytest/pytest_code.py b/src/nbi/mytest/pytest_code.py deleted file mode 100644 index be0376b88..000000000 --- a/src/nbi/mytest/pytest_code.py +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 2022-2024 ETSI 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 eventlet, eventlet.wsgi, json, logging, os, pytest, requests, threading, time -import websockets.sync.client # Import synchronous WebSocket client -from nbi.service.NbiApplication import NbiApplication -from nbi.service.rest_server.nbi_plugins import register_restconf -from nbi.service.restapi_resources.health_probes import register_health_probes -from nbi.service.websocket_namespaces.hearthbeat import register_heartbeat - - - -logging.basicConfig(level=logging.DEBUG) -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -LOCAL_HOST = '127.0.0.1' -NBI_SERVICE_PORT = 18080 -NBI_SERVICE_PREFIX_URL = '' -NBI_SERVICE_BASE_URL = '{:s}:{:d}{:s}'.format(LOCAL_HOST, NBI_SERVICE_PORT, NBI_SERVICE_PREFIX_URL) - -class ServerThread(threading.Thread): - def __init__(self): - super().__init__(daemon=True) - - self.nbi_app = NbiApplication(base_url=NBI_SERVICE_PREFIX_URL) - register_health_probes(self.nbi_app) - register_heartbeat (self.nbi_app) - register_restconf (self.nbi_app) - self.nbi_app.dump_configuration() - - def run(self): - try: - #eventlet.wsgi.server( - # eventlet.listen((LOCAL_HOST, NBI_SERVICE_PORT)), - # self.nbi_app.get_flask_app(), - # debug=True, log_output=True - #) - #thread = eventlet.spawn( - # self.nbi_app._sio.run, self.nbi_app.get_flask_app(), - # host=LOCAL_HOST, port=NBI_SERVICE_PORT, - # debug=True, use_reloader=False - #) - #thread.wait() - self.nbi_app._sio.run( - self.nbi_app.get_flask_app(), - host=LOCAL_HOST, port=NBI_SERVICE_PORT, - debug=True, use_reloader=False - ) - except: - LOGGER.exception('unhandled') - -@pytest.fixture(scope='session') -def nbi_application() -> NbiApplication: - thread = ServerThread() - thread.start() - time.sleep(1) - yield thread.nbi_app - thread.join(timeout=1) - -def test_restapi_get_healthz( - nbi_application : NbiApplication # pylint: disable=redefined-outer-name, unused-argument -) -> None: - request_url = 'http://' + NBI_SERVICE_BASE_URL + '/healthz' - LOGGER.warning('Request: GET {:s}'.format(str(request_url))) - reply = requests.request('get', request_url, timeout=10, allow_redirects=True) - LOGGER.warning('Reply: {:s}'.format(str(reply.text))) - assert reply.status_code == requests.codes['OK'], 'Reply failed with status code {:d}'.format(reply.status_code) - if reply.content and len(reply.content) > 0: return reply.json() - -def test_websocket_get_heartbeat( - nbi_application : NbiApplication # pylint: disable=redefined-outer-name, unused-argument -) -> None: - nbi_application.dump_configuration() - request_url = 'ws://' + NBI_SERVICE_BASE_URL + '/heartbeat' - LOGGER.warning('Request: WS {:s}'.format(str(request_url))) - - heartbeat_count = 0 - with websockets.sync.client.connect(request_url) as ws: - while heartbeat_count < 5: - message = ws.recv() - LOGGER.warning('Received message: {:s}'.format(str(message))) - - data = json.loads(message) - - # Validate uptime response - assert "uptime_seconds" in data, "Missing 'uptime_seconds' in response" - assert isinstance(data["uptime_seconds"], (int, float)), "'uptime_seconds' is not a number" - - heartbeat_count += 1 - LOGGER.warning('--> Heartbeat #{:d}: {:s}'.format(heartbeat_count, str(data))) - - LOGGER.warning('Test completed') - raise Exception() diff --git a/src/nbi/service/rest_server/nbi_plugins/tools/__init__.py b/src/nbi/run_gunicorn.sh old mode 100644 new mode 100755 similarity index 82% rename from src/nbi/service/rest_server/nbi_plugins/tools/__init__.py rename to src/nbi/run_gunicorn.sh index 53d5157f7..220494ef4 --- a/src/nbi/service/rest_server/nbi_plugins/tools/__init__.py +++ b/src/nbi/run_gunicorn.sh @@ -1,3 +1,4 @@ +#!/bin/bash # Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -12,3 +13,5 @@ # See the License for the specific language governing permissions and # limitations under the License. +export FLASK_ENV=development +gunicorn -w 4 --worker-class eventlet -b 0.0.0.0:18080 --log-level DEBUG nbi.service.app:app diff --git a/run_test_nbi.sh b/src/nbi/run_test.sh similarity index 82% rename from run_test_nbi.sh rename to src/nbi/run_test.sh index b34f4c956..07beb9837 100755 --- a/run_test_nbi.sh +++ b/src/nbi/run_test.sh @@ -13,8 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -export PYTHON_PATH=./src -export LOG_LEVEL=DEBUG export FLASK_ENV=development -python -m pytest --log-level=DEBUG -o log_cli=true --verbose src/nbi/mytest/pytest_code.py +# Add live logs with: -o log_cli=true +python -m pytest --log-level=DEBUG --verbose nbi/tests/test_nbi.py diff --git a/src/nbi/service/NbiApplication.py b/src/nbi/service/NbiApplication.py index 17d0507ec..ef2659415 100644 --- a/src/nbi/service/NbiApplication.py +++ b/src/nbi/service/NbiApplication.py @@ -14,7 +14,7 @@ import logging, time -from typing import Any, Optional +from typing import Any, List, Optional, Tuple from flask import Flask, request from flask_restful import Api, Resource from flask_socketio import Namespace, SocketIO @@ -39,28 +39,25 @@ class NbiApplication: self._app.config['SECRET_KEY'] = 'secret!' self._app.after_request(log_request) self._api = Api(self._app, prefix=base_url) - #websocket_path = '/'.join([base_url.rstrip('/'), 'websocket']) - #self._sio = SocketIO(self._app, path=base_url, cors_allowed_origins="*", logger=True, engineio_logger=True) - self._sio = SocketIO(self._app, cors_allowed_origins="*", logger=True, engineio_logger=True) - - @self._sio.on_error_default # handles all namespaces without an explicit error handler - def default_error_handler(e): - LOGGER.error('[default_error_handler] e={:s}'.format(str(e))) + #socketio_path = '/'.join([base_url.rstrip('/'), 'socket.io']) + self._sio = SocketIO( + self._app, cors_allowed_origins='*', async_mode='eventlet', + #path=socketio_path, + logger=True, engineio_logger=True + ) def add_rest_api_resource(self, resource_class : Resource, *urls, **kwargs) -> None: self._api.add_resource(resource_class, *urls, **kwargs) - def add_websocket_namespace(self, namespace_class : Namespace, namespace_url : str) -> None: - LOGGER.warning('[add_websocket_namespace] (before) self._sio.server={:s}'.format(str(self._sio.server))) - LOGGER.warning('[add_websocket_namespace] (before) self._sio.server.namespace_handlers={:s}'.format(str(self._sio.server.namespace_handlers))) - LOGGER.warning('[add_websocket_namespace] (before) self._sio.namespace_handlers={:s}'.format(str(self._sio.namespace_handlers))) - self._sio.on_namespace(namespace_class(namespace_url)) - LOGGER.warning('[add_websocket_namespace] (after) self._sio.server={:s}'.format(str(self._sio.server))) - LOGGER.warning('[add_websocket_namespace] (after) self._sio.server.namespace_handlers={:s}'.format(str(self._sio.server.namespace_handlers))) - LOGGER.warning('[add_websocket_namespace] (after) self._sio.namespace_handlers={:s}'.format(str(self._sio.namespace_handlers))) + def add_rest_api_resources(self, resources : List[Tuple[Resource, str, str]]) -> None: + for endpoint_name, resource_class, resource_url in resources: + self.add_rest_api_resource(resource_class, resource_url, endpoint=endpoint_name) + + def add_websocket_namespace(self, namespace : Namespace) -> None: + self._sio.on_namespace(namespace) def websocket_emit_message( - self, event : str, *args : Any, namespace : str = "/", to : Optional[str] = None + self, event : str, *args : Any, namespace : str = '/', to : Optional[str] = None ) -> None: self._sio.emit(event, *args, namespace=namespace, to=to) @@ -76,46 +73,14 @@ class NbiApplication: for rule in self._app.url_map.iter_rules(): LOGGER.debug(' - {:s}'.format(str(rule))) - LOGGER.debug('Configured WebSocket Namespaces:') - for namespace in self._sio.server.handlers.keys(): - LOGGER.debug(' (server) - {:s}'.format(str(namespace))) - + # TODO: find a way to report configured namespaces, for some reason, + # those data structures become emptied when SocketIO server starts. + LOGGER.debug('Configured SocketIO/WebSocket Namespaces:') + LOGGER.debug(' WARNING: Might report an empty list of namespaces even when') + LOGGER.debug(' they are properly configured. To be fixed.') + for handler in self._sio.handlers: + LOGGER.debug(' - {:s}'.format(str(handler))) for namespace in self._sio.namespace_handlers: - LOGGER.debug(' (ns_hdls) - {:s}'.format(str(namespace))) - - def run_standalone( - self, bind_address : Optional[str] = None, bind_port : Optional[int] = None, - debug : bool = False, use_reloader : bool = False - ) -> None: - # Run method used when started in a standalone mode, i.e., outside gunicorn or - # similar WSGI HTTP servers. Otherwise, use mechanism defined by the used - # WSGI HTTP server. - - #logging.getLogger('werkzeug').setLevel(logging.WARNING) - - endpoint = 'http://{:s}:{:s}'.format(str(bind_address), str(bind_port)) - if self.base_url is not None: - endpoint = '/'.join([endpoint.rstrip('/'), self.base_url]) - - LOGGER.info('Listening on {:s}...'.format(endpoint)) - self._sio.run( - self._app, host=bind_address, port=bind_port, - debug=debug, use_reloader=use_reloader - ) - - def start_test_thread( - self, bind_address : Optional[str] = None, bind_port : Optional[int] = None, - debug : bool = False, use_reloader : bool = False - ) -> None: - # NOTE: To be used for testing purposes with pytest - # Stop the thread through nbi_app.stop_test_thread() - self._thread = self._sio.start_background_task( - self._sio.run, self._app, host=bind_address, port=bind_port, - debug=debug, use_reloader=use_reloader - ) - - def stop_test_thread(self): - # NOTE: To be used for testing purposes with pytest - # Start the thread through nbi_app.start_test_thread(...) - if self._thread is None: return - self._thread.join() + LOGGER.debug(' - {:s}'.format(str(namespace))) + for namespace in self._sio.server.handlers: + LOGGER.debug(' - {:s}'.format(str(namespace))) diff --git a/src/nbi/service/rest_server/nbi_plugins/tools/Authentication.py b/src/nbi/service/_tools/Authentication.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/tools/Authentication.py rename to src/nbi/service/_tools/Authentication.py diff --git a/src/nbi/service/rest_server/nbi_plugins/tools/HttpStatusCodes.py b/src/nbi/service/_tools/HttpStatusCodes.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/tools/HttpStatusCodes.py rename to src/nbi/service/_tools/HttpStatusCodes.py diff --git a/src/nbi/service/rest_server/nbi_plugins/tools/Validator.py b/src/nbi/service/_tools/Validator.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/tools/Validator.py rename to src/nbi/service/_tools/Validator.py diff --git a/src/nbi/service/rest_server/__init__.py b/src/nbi/service/_tools/__init__.py similarity index 100% rename from src/nbi/service/rest_server/__init__.py rename to src/nbi/service/_tools/__init__.py diff --git a/src/nbi/service/app.py b/src/nbi/service/app.py index 320e7b344..c615584b5 100644 --- a/src/nbi/service/app.py +++ b/src/nbi/service/app.py @@ -12,100 +12,74 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging -from typing import Optional -# NOTE: Metrics disabled for now. No NBI endpoint uses it and -# causes "address already in use" when deploying multiple -# gunicorn workers. -#from prometheus_client import start_http_server +# Enable eventlet for async networking +# NOTE: monkey_patch needs to be executed before importing any other module. +import eventlet +eventlet.monkey_patch() +#pylint: disable=wrong-import-position +import logging from common.Constants import ServiceNameEnum from common.Settings import ( ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, get_http_bind_address, get_log_level, - - # NOTE: Metrics disabled for now. No NBI endpoint uses it and - # causes "address already in use" when deploying multiple - # gunicorn workers. - #get_metrics_port, - get_service_baseurl_http, get_service_port_http, wait_for_environment_variables ) from .NbiApplication import NbiApplication -#from .rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api -#from .rest_server.nbi_plugins.ietf_hardware import register_ietf_hardware -#from .rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn -#from .rest_server.nbi_plugins.ietf_l3vpn import register_ietf_l3vpn -#from .rest_server.nbi_plugins.ietf_network import register_ietf_network -#from .rest_server.nbi_plugins.ietf_network_slice import register_ietf_nss -#from .rest_server.nbi_plugins.ietf_acl import register_ietf_acl -#from .rest_server.nbi_plugins.qkd_app import register_qkd_app -#from .rest_server.nbi_plugins.tfs_api import register_tfs_api -#from .rest_server.nbi_plugins import register_restconf -from .websocket_namespaces.hearthbeat import register_heartbeat +from .etsi_bwm import register_etsi_bwm_api +from .health_probes import register_health_probes +from .ietf_acl import register_ietf_acl +from .ietf_hardware import register_ietf_hardware +from .ietf_l2vpn import register_ietf_l2vpn +from .ietf_l3vpn import register_ietf_l3vpn +from .ietf_network import register_ietf_network +from .ietf_network_slice import register_ietf_nss +from .qkd_app import register_qkd_app +from .restconf_root import register_restconf_root +from .tfs_api import register_tfs_api +from .well_known_meta import register_well_known LOG_LEVEL = get_log_level() logging.basicConfig(level=LOG_LEVEL) LOGGER = logging.getLogger(__name__) +wait_for_environment_variables([ + get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), +]) + BIND_ADDRESS = get_http_bind_address() BIND_PORT = get_service_port_http(ServiceNameEnum.NBI) BASE_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' -REGISTER_METHODS = [ - #register_etsi_bwm_api, - #register_ietf_hardware, - #register_ietf_l2vpn, - #register_ietf_l3vpn, - #register_ietf_network, - #register_ietf_nss, - #register_ietf_acl, - #register_qkd_app, - #register_tfs_api, - #register_restconf, - register_heartbeat, -] - -def configure_nbi( - base_url : Optional[str] = None -) -> NbiApplication: - wait_for_environment_variables([ - get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), - get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), - get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_HOST ), - get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), - get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST ), - get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), - ]) - - LOGGER.info('Starting...') - - # Start metrics server - # NOTE: Metrics disabled for now. No NBI endpoint uses it and - # causes "address already in use" when deploying multiple - # gunicorn workers. - #metrics_port = get_metrics_port() - #start_http_server(metrics_port) - - _nbi_app = NbiApplication(base_url=base_url) - - for register_method in REGISTER_METHODS: - register_method(_nbi_app) - - _nbi_app.dump_configuration() - - return _nbi_app - -nbi_app = configure_nbi(base_url=BASE_URL) +nbi_app = NbiApplication(base_url=BASE_URL) +register_health_probes(nbi_app) +register_restconf_root(nbi_app) +register_well_known (nbi_app) +register_tfs_api (nbi_app) +register_etsi_bwm_api (nbi_app) +register_ietf_hardware(nbi_app) +register_ietf_l2vpn (nbi_app) +register_ietf_l3vpn (nbi_app) +register_ietf_network (nbi_app) +register_ietf_nss (nbi_app) +register_ietf_acl (nbi_app) +register_qkd_app (nbi_app) + +nbi_app.dump_configuration() +app = nbi_app.get_flask_app() if __name__ == '__main__': # Only used to run it locally during development stage; # otherwise, app is directly launched by gunicorn. - nbi_app.run_standalone( - bind_address=BIND_ADDRESS, bind_port=BIND_PORT + nbi_app._sio.run( + app, host=BIND_ADDRESS, port=BIND_PORT, + debug=True, use_reloader=False ) -else: - app = nbi_app.get_flask_app() diff --git a/src/nbi/service/rest_server/nbi_plugins/etsi_bwm/Resources.py b/src/nbi/service/etsi_bwm/Resources.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/etsi_bwm/Resources.py rename to src/nbi/service/etsi_bwm/Resources.py diff --git a/src/nbi/service/rest_server/nbi_plugins/etsi_bwm/Tools.py b/src/nbi/service/etsi_bwm/Tools.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/etsi_bwm/Tools.py rename to src/nbi/service/etsi_bwm/Tools.py diff --git a/src/nbi/service/etsi_bwm/__init__.py b/src/nbi/service/etsi_bwm/__init__.py new file mode 100644 index 000000000..0dbe80bf0 --- /dev/null +++ b/src/nbi/service/etsi_bwm/__init__.py @@ -0,0 +1,30 @@ +# Copyright 2022-2024 ETSI 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. + +from nbi.service.NbiApplication import NbiApplication +from .Resources import BwInfo, BwInfoId + +URL_PREFIX = '/restconf/bwm/v1' + +def register_etsi_bwm_api(nbi_app : NbiApplication): + nbi_app.add_rest_api_resource( + BwInfo, + URL_PREFIX + '/bw_allocations', + endpoint='etsi_bwm.bw_info' + ) + nbi_app.add_rest_api_resource( + BwInfoId, + URL_PREFIX + '/bw_allocations/<path:allocationId>', + endpoint='etsi_bwm.bw_info_id' + ) diff --git a/src/nbi/service/rest_server/nbi_plugins/etsi_bwm/tests_etsi_bwm.txt b/src/nbi/service/etsi_bwm/tests_etsi_bwm.txt similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/etsi_bwm/tests_etsi_bwm.txt rename to src/nbi/service/etsi_bwm/tests_etsi_bwm.txt diff --git a/src/nbi/service/websocket_namespaces/__init__.py b/src/nbi/service/health_probes/Constants.py similarity index 82% rename from src/nbi/service/websocket_namespaces/__init__.py rename to src/nbi/service/health_probes/Constants.py index 53d5157f7..f61e2bce5 100644 --- a/src/nbi/service/websocket_namespaces/__init__.py +++ b/src/nbi/service/health_probes/Constants.py @@ -12,3 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. + +import time + +SIO_NAMESPACE = '/heartbeat' +SIO_ROOM = 'heartbeat' + +START_TIME = time.time() + +HEARTHBEAT_INTERVAL = 1 # second diff --git a/src/nbi/service/health_probes/HeartbeatThread.py b/src/nbi/service/health_probes/HeartbeatThread.py new file mode 100644 index 000000000..0b7158a09 --- /dev/null +++ b/src/nbi/service/health_probes/HeartbeatThread.py @@ -0,0 +1,40 @@ +# Copyright 2022-2024 ETSI 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 logging, socketio, threading, time +from .Constants import HEARTHBEAT_INTERVAL, SIO_NAMESPACE, SIO_ROOM, START_TIME + +LOGGER = logging.getLogger(__name__) + +class HeartbeatThread(threading.Thread): + def __init__(self, namespace : socketio.Namespace): + super().__init__(daemon=True) + self._namespace = namespace + + def run(self): + try: + while True: + time.sleep(HEARTHBEAT_INTERVAL) + uptime = time.time() - START_TIME + LOGGER.info('[HeartbeatThread::run] emitting...') + + server : socketio.Server = self._namespace.server + if server is None: continue + + data = {'uptime_seconds': uptime} + server.emit('uptime', data, namespace=SIO_NAMESPACE, to=SIO_ROOM) + + LOGGER.info('[HeartbeatThread::run] emitted') + except: # pylint: disable=bare-except + LOGGER.exception('[HeartbeatThread::run] thread failed') diff --git a/src/nbi/service/health_probes/Namespaces.py b/src/nbi/service/health_probes/Namespaces.py new file mode 100644 index 000000000..9fba4ba71 --- /dev/null +++ b/src/nbi/service/health_probes/Namespaces.py @@ -0,0 +1,37 @@ +# Copyright 2022-2024 ETSI 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 logging +from flask import request +from flask_socketio import Namespace, join_room, leave_room +from .Constants import SIO_NAMESPACE, SIO_ROOM +from .HeartbeatThread import HeartbeatThread + +LOGGER = logging.getLogger(__name__) + +class HeartbeatServerNamespace(Namespace): + def __init__(self): + super().__init__(namespace=SIO_NAMESPACE) + self._thread = HeartbeatThread(self) + self._thread.start() + + def on_connect(self, auth): + MSG = '[HeartbeatServerNamespace::on_connect] Client connect: sid={:s}, auth={:s}' + LOGGER.info(MSG.format(str(request.sid), str(auth))) + join_room(SIO_ROOM, namespace=SIO_NAMESPACE) + + def on_disconnect(self, reason): + MSG = '[HeartbeatServerNamespace::on_disconnect] Client disconnect: sid={:s}, reason={:s}' + LOGGER.info(MSG.format(str(request.sid), str(reason))) + leave_room(SIO_ROOM, namespace=SIO_NAMESPACE) diff --git a/src/nbi/mytest/requirements.in b/src/nbi/service/health_probes/Resources.py similarity index 69% rename from src/nbi/mytest/requirements.in rename to src/nbi/service/health_probes/Resources.py index 6a27a260f..0e597b149 100644 --- a/src/nbi/mytest/requirements.in +++ b/src/nbi/service/health_probes/Resources.py @@ -12,9 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -eventlet==0.39.0 -Flask==2.1.3 -Flask-HTTPAuth==4.5.0 -Flask-RESTful==0.3.9 -flask-socketio==5.5.1 -gunicorn==23.0.0 + +import time +from flask_restful import Resource +from .Constants import START_TIME + +class HealthProbe(Resource): + def get(self): + uptime = time.time() - START_TIME + return {'status': 'ready', 'uptime': uptime}, 200 + #return {'status': 'not ready'}, 503 diff --git a/src/nbi/service/restapi_resources/health_probes/__init__.py b/src/nbi/service/health_probes/__init__.py similarity index 75% rename from src/nbi/service/restapi_resources/health_probes/__init__.py rename to src/nbi/service/health_probes/__init__.py index c1251e769..a2cb53e5b 100644 --- a/src/nbi/service/restapi_resources/health_probes/__init__.py +++ b/src/nbi/service/health_probes/__init__.py @@ -14,8 +14,9 @@ from nbi.service.NbiApplication import NbiApplication -from .Resources import RESOURCE_DESCRIPTORS +from .Namespaces import HeartbeatServerNamespace +from .Resources import HealthProbe def register_health_probes(nbi_app : NbiApplication): - for endpoint_name, resource_class, resource_url in RESOURCE_DESCRIPTORS: - nbi_app.add_rest_api_resource(resource_class, resource_url, endpoint=endpoint_name) + nbi_app.add_rest_api_resource(HealthProbe, '/healthz', endpoint='sys.probe.healthz') + nbi_app.add_websocket_namespace(HeartbeatServerNamespace()) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/Acl.py b/src/nbi/service/ietf_acl/Acl.py similarity index 97% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/Acl.py rename to src/nbi/service/ietf_acl/Acl.py index c0cbbcff7..f259e36f6 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/Acl.py +++ b/src/nbi/service/ietf_acl/Acl.py @@ -19,7 +19,7 @@ from common.proto.context_pb2 import ConfigActionEnum, ConfigRule from common.tools.context_queries.Device import get_device from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from nbi.service.rest_server.nbi_plugins.tools.Authentication import HTTP_AUTH +from nbi.service._tools.Authentication import HTTP_AUTH from .ietf_acl_parser import ietf_acl_from_config_rule_resource_value LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/Acls.py b/src/nbi/service/ietf_acl/Acls.py similarity index 98% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/Acls.py rename to src/nbi/service/ietf_acl/Acls.py index 816aba138..e26a047d2 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/Acls.py +++ b/src/nbi/service/ietf_acl/Acls.py @@ -22,7 +22,7 @@ from common.tools.context_queries.Device import get_device from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from nbi.service.rest_server.nbi_plugins.tools.Authentication import HTTP_AUTH +from nbi.service._tools.Authentication import HTTP_AUTH from .ietf_acl_parser import AclDirectionEnum, config_rule_from_ietf_acl from .YangValidator import YangValidator diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/YangValidator.py b/src/nbi/service/ietf_acl/YangValidator.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/YangValidator.py rename to src/nbi/service/ietf_acl/YangValidator.py diff --git a/src/nbi/service/ietf_acl/__init__.py b/src/nbi/service/ietf_acl/__init__.py new file mode 100644 index 000000000..11bb2194a --- /dev/null +++ b/src/nbi/service/ietf_acl/__init__.py @@ -0,0 +1,31 @@ +# Copyright 2022-2024 ETSI 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. + + +from nbi.service.NbiApplication import NbiApplication +from .Acl import Acl +from .Acls import Acls + +URL_PREFIX = '/restconf/data' + +def register_ietf_acl(nbi_app : NbiApplication): + nbi_app.add_rest_api_resource( + Acls, + URL_PREFIX + '/device=<path:device_uuid>/ietf-access-control-list:acls', + ) + nbi_app.add_rest_api_resource( + Acl, + URL_PREFIX + '/device=<path:device_uuid>/ietf-access-control-list:acl=<path:acl_name>', + URL_PREFIX + '/device=<path:device_uuid>/ietf-access-control-list:acl=<path:acl_name>/', + ) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/ietf_acl_parser.py b/src/nbi/service/ietf_acl/ietf_acl_parser.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/ietf_acl_parser.py rename to src/nbi/service/ietf_acl/ietf_acl_parser.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/iana-if-type@2014-05-08.yang b/src/nbi/service/ietf_acl/yang/iana-if-type@2014-05-08.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/iana-if-type@2014-05-08.yang rename to src/nbi/service/ietf_acl/yang/iana-if-type@2014-05-08.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-access-control-list@2019-03-04.yang b/src/nbi/service/ietf_acl/yang/ietf-access-control-list@2019-03-04.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-access-control-list@2019-03-04.yang rename to src/nbi/service/ietf_acl/yang/ietf-access-control-list@2019-03-04.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-ethertypes@2019-03-04.yang b/src/nbi/service/ietf_acl/yang/ietf-ethertypes@2019-03-04.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-ethertypes@2019-03-04.yang rename to src/nbi/service/ietf_acl/yang/ietf-ethertypes@2019-03-04.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-inet-types@2013-07-15.yang b/src/nbi/service/ietf_acl/yang/ietf-inet-types@2013-07-15.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-inet-types@2013-07-15.yang rename to src/nbi/service/ietf_acl/yang/ietf-inet-types@2013-07-15.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-interfaces@2018-02-20.yang b/src/nbi/service/ietf_acl/yang/ietf-interfaces@2018-02-20.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-interfaces@2018-02-20.yang rename to src/nbi/service/ietf_acl/yang/ietf-interfaces@2018-02-20.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-packet-fields@2019-03-04.yang b/src/nbi/service/ietf_acl/yang/ietf-packet-fields@2019-03-04.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-packet-fields@2019-03-04.yang rename to src/nbi/service/ietf_acl/yang/ietf-packet-fields@2019-03-04.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-yang-types@2013-07-15.yang b/src/nbi/service/ietf_acl/yang/ietf-yang-types@2013-07-15.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_acl/yang/ietf-yang-types@2013-07-15.yang rename to src/nbi/service/ietf_acl/yang/ietf-yang-types@2013-07-15.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/Hardware.py b/src/nbi/service/ietf_hardware/Hardware.py similarity index 94% rename from src/nbi/service/rest_server/nbi_plugins/ietf_hardware/Hardware.py rename to src/nbi/service/ietf_hardware/Hardware.py index bce1d6d14..4a1f5cc66 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/Hardware.py +++ b/src/nbi/service/ietf_hardware/Hardware.py @@ -18,8 +18,8 @@ from flask.json import jsonify from flask_restful import Resource from common.tools.context_queries.Device import get_device from context.client.ContextClient import ContextClient -from ..tools.Authentication import HTTP_AUTH -from ..tools.HttpStatusCodes import HTTP_OK, HTTP_SERVERERROR +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import HTTP_OK, HTTP_SERVERERROR from .YangHandler import YangHandler LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/HardwareMultipleDevices.py b/src/nbi/service/ietf_hardware/HardwareMultipleDevices.py similarity index 93% rename from src/nbi/service/rest_server/nbi_plugins/ietf_hardware/HardwareMultipleDevices.py rename to src/nbi/service/ietf_hardware/HardwareMultipleDevices.py index 2ac0bf40e..f2f16f8ec 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/HardwareMultipleDevices.py +++ b/src/nbi/service/ietf_hardware/HardwareMultipleDevices.py @@ -18,8 +18,8 @@ from flask.json import jsonify from flask_restful import Resource from common.proto.context_pb2 import Empty from context.client.ContextClient import ContextClient -from ..tools.Authentication import HTTP_AUTH -from ..tools.HttpStatusCodes import HTTP_OK, HTTP_SERVERERROR +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import HTTP_OK, HTTP_SERVERERROR from .YangHandler import YangHandler LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/YangHandler.py b/src/nbi/service/ietf_hardware/YangHandler.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_hardware/YangHandler.py rename to src/nbi/service/ietf_hardware/YangHandler.py diff --git a/src/nbi/service/ietf_hardware/__init__.py b/src/nbi/service/ietf_hardware/__init__.py new file mode 100644 index 000000000..2a097a538 --- /dev/null +++ b/src/nbi/service/ietf_hardware/__init__.py @@ -0,0 +1,29 @@ +# Copyright 2022-2024 ETSI 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. + +from nbi.service.NbiApplication import NbiApplication +from .Hardware import Hardware +from .HardwareMultipleDevices import HardwareMultipleDevices + +URL_PREFIX = '/restconf/data' + +def register_ietf_hardware(nbi_app : NbiApplication): + nbi_app.add_rest_api_resource( + Hardware, + URL_PREFIX + '/device=<path:device_uuid>/ietf-network-hardware-inventory:network-hardware-inventory' + ) + nbi_app.add_rest_api_resource( + HardwareMultipleDevices, + URL_PREFIX + '/ietf-network-hardware-inventory:network-hardware-inventory' + ) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/yang/iana-hardware@2018-03-13.yang b/src/nbi/service/ietf_hardware/yang/iana-hardware@2018-03-13.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_hardware/yang/iana-hardware@2018-03-13.yang rename to src/nbi/service/ietf_hardware/yang/iana-hardware@2018-03-13.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/yang/ietf-hardware@2018-03-13.yang b/src/nbi/service/ietf_hardware/yang/ietf-hardware@2018-03-13.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_hardware/yang/ietf-hardware@2018-03-13.yang rename to src/nbi/service/ietf_hardware/yang/ietf-hardware@2018-03-13.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/yang/ietf-inet-types@2013-07-15.yang b/src/nbi/service/ietf_hardware/yang/ietf-inet-types@2013-07-15.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_hardware/yang/ietf-inet-types@2013-07-15.yang rename to src/nbi/service/ietf_hardware/yang/ietf-inet-types@2013-07-15.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/yang/ietf-network-hardware-inventory@2023-03-09.yang b/src/nbi/service/ietf_hardware/yang/ietf-network-hardware-inventory@2023-03-09.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_hardware/yang/ietf-network-hardware-inventory@2023-03-09.yang rename to src/nbi/service/ietf_hardware/yang/ietf-network-hardware-inventory@2023-03-09.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/yang/ietf-yang-types@2013-07-15.yang b/src/nbi/service/ietf_hardware/yang/ietf-yang-types@2013-07-15.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_hardware/yang/ietf-yang-types@2013-07-15.yang rename to src/nbi/service/ietf_hardware/yang/ietf-yang-types@2013-07-15.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/Constants.py b/src/nbi/service/ietf_l2vpn/Constants.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/Constants.py rename to src/nbi/service/ietf_l2vpn/Constants.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Service.py b/src/nbi/service/ietf_l2vpn/L2VPN_Service.py similarity index 95% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Service.py rename to src/nbi/service/ietf_l2vpn/L2VPN_Service.py index 288ed2d10..a7d52babe 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Service.py +++ b/src/nbi/service/ietf_l2vpn/L2VPN_Service.py @@ -20,8 +20,10 @@ from common.proto.context_pb2 import SliceStatusEnum from common.tools.context_queries.Slice import get_slice_by_uuid from context.client.ContextClient import ContextClient from slice.client.SliceClient import SliceClient -from ..tools.Authentication import HTTP_AUTH -from ..tools.HttpStatusCodes import HTTP_GATEWAYTIMEOUT, HTTP_NOCONTENT, HTTP_OK, HTTP_SERVERERROR +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import ( + HTTP_GATEWAYTIMEOUT, HTTP_NOCONTENT, HTTP_OK, HTTP_SERVERERROR +) LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py b/src/nbi/service/ietf_l2vpn/L2VPN_Services.py similarity index 90% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py rename to src/nbi/service/ietf_l2vpn/L2VPN_Services.py index c728b4073..9be45582c 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_Services.py +++ b/src/nbi/service/ietf_l2vpn/L2VPN_Services.py @@ -21,10 +21,10 @@ from werkzeug.exceptions import UnsupportedMediaType from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import SliceStatusEnum, Slice from slice.client.SliceClient import SliceClient +from nbi.service._tools.HttpStatusCodes import HTTP_CREATED, HTTP_SERVERERROR +from nbi.service._tools.Validator import validate_message +from nbi.service._tools.Authentication import HTTP_AUTH from .schemas.vpn_service import SCHEMA_VPN_SERVICE -from nbi.service.rest_server.nbi_plugins.tools.HttpStatusCodes import HTTP_CREATED, HTTP_SERVERERROR -from nbi.service.rest_server.nbi_plugins.tools.Validator import validate_message -from nbi.service.rest_server.nbi_plugins.tools.Authentication import HTTP_AUTH LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py b/src/nbi/service/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py similarity index 96% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py rename to src/nbi/service/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py index 2ae776c20..8397e45f6 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py +++ b/src/nbi/service/ietf_l2vpn/L2VPN_SiteNetworkAccesses.py @@ -29,10 +29,10 @@ from common.tools.grpc.EndPointIds import update_endpoint_ids from common.tools.grpc.Tools import grpc_message_to_json_string from context.client.ContextClient import ContextClient from slice.client.SliceClient import SliceClient +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import HTTP_NOCONTENT, HTTP_SERVERERROR +from nbi.service._tools.Validator import validate_message from .schemas.site_network_access import SCHEMA_SITE_NETWORK_ACCESS -from nbi.service.rest_server.nbi_plugins.tools.Authentication import HTTP_AUTH -from nbi.service.rest_server.nbi_plugins.tools.HttpStatusCodes import HTTP_NOCONTENT, HTTP_SERVERERROR -from nbi.service.rest_server.nbi_plugins.tools.Validator import validate_message from .Constants import BEARER_MAPPINGS, DEFAULT_ADDRESS_FAMILIES, DEFAULT_BGP_AS, DEFAULT_BGP_ROUTE_TARGET, DEFAULT_MTU LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/__init__.py b/src/nbi/service/ietf_l2vpn/__init__.py similarity index 56% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/__init__.py rename to src/nbi/service/ietf_l2vpn/__init__.py index a391040d9..e57984235 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/__init__.py +++ b/src/nbi/service/ietf_l2vpn/__init__.py @@ -15,22 +15,25 @@ # RFC 8466 - L2VPN Service Model (L2SM) # Ref: https://datatracker.ietf.org/doc/html/rfc8466 -from flask_restful import Resource -from nbi.service.rest_server.RestServer import RestServer +from nbi.service.NbiApplication import NbiApplication from .L2VPN_Services import L2VPN_Services from .L2VPN_Service import L2VPN_Service from .L2VPN_SiteNetworkAccesses import L2VPN_SiteNetworkAccesses URL_PREFIX = '/restconf/data/ietf-l2vpn-svc:l2vpn-svc' -def _add_resource(rest_server : RestServer, resource : Resource, *urls, **kwargs): - urls = [(URL_PREFIX + url) for url in urls] - rest_server.add_resource(resource, *urls, **kwargs) - -def register_ietf_l2vpn(rest_server : RestServer): - _add_resource(rest_server, L2VPN_Services, - '/vpn-services') - _add_resource(rest_server, L2VPN_Service, - '/vpn-services/vpn-service=<vpn_id>', '/vpn-services/vpn-service=<vpn_id>/') - _add_resource(rest_server, L2VPN_SiteNetworkAccesses, - '/sites/site=<site_id>/site-network-accesses', '/sites/site=<site_id>/site-network-accesses/') +def register_ietf_l2vpn(nbi_app : NbiApplication): + nbi_app.add_rest_api_resource( + L2VPN_Services, + URL_PREFIX + '/vpn-services' + ) + nbi_app.add_rest_api_resource( + L2VPN_Service, + URL_PREFIX + '/vpn-services/vpn-service=<vpn_id>', + URL_PREFIX + '/vpn-services/vpn-service=<vpn_id>/' + ) + nbi_app.add_rest_api_resource( + L2VPN_SiteNetworkAccesses, + URL_PREFIX + '/sites/site=<site_id>/site-network-accesses', + URL_PREFIX + '/sites/site=<site_id>/site-network-accesses/' + ) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/schemas/Common.py b/src/nbi/service/ietf_l2vpn/schemas/Common.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/schemas/Common.py rename to src/nbi/service/ietf_l2vpn/schemas/Common.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/schemas/__init__.py b/src/nbi/service/ietf_l2vpn/schemas/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/schemas/__init__.py rename to src/nbi/service/ietf_l2vpn/schemas/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/schemas/site_network_access.py b/src/nbi/service/ietf_l2vpn/schemas/site_network_access.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/schemas/site_network_access.py rename to src/nbi/service/ietf_l2vpn/schemas/site_network_access.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/schemas/vpn_service.py b/src/nbi/service/ietf_l2vpn/schemas/vpn_service.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l2vpn/schemas/vpn_service.py rename to src/nbi/service/ietf_l2vpn/schemas/vpn_service.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/Handlers.py b/src/nbi/service/ietf_l3vpn/Handlers.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/Handlers.py rename to src/nbi/service/ietf_l3vpn/Handlers.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Service.py b/src/nbi/service/ietf_l3vpn/L3VPN_Service.py similarity index 95% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Service.py rename to src/nbi/service/ietf_l3vpn/L3VPN_Service.py index bf3f8aabc..8d5c536b6 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Service.py +++ b/src/nbi/service/ietf_l3vpn/L3VPN_Service.py @@ -20,8 +20,8 @@ from common.proto.context_pb2 import ServiceStatusEnum from common.tools.context_queries.Service import get_service_by_uuid from context.client.ContextClient import ContextClient from service.client.ServiceClient import ServiceClient -from ..tools.Authentication import HTTP_AUTH -from ..tools.HttpStatusCodes import HTTP_GATEWAYTIMEOUT, HTTP_NOCONTENT, HTTP_OK, HTTP_SERVERERROR +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import HTTP_GATEWAYTIMEOUT, HTTP_NOCONTENT, HTTP_OK, HTTP_SERVERERROR LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Services.py b/src/nbi/service/ietf_l3vpn/L3VPN_Services.py similarity index 94% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Services.py rename to src/nbi/service/ietf_l3vpn/L3VPN_Services.py index 47f6d5726..f647316c7 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_Services.py +++ b/src/nbi/service/ietf_l3vpn/L3VPN_Services.py @@ -18,8 +18,8 @@ from flask import request from flask.json import jsonify from flask_restful import Resource from werkzeug.exceptions import UnsupportedMediaType -from nbi.service.rest_server.nbi_plugins.tools.HttpStatusCodes import HTTP_CREATED, HTTP_SERVERERROR -from nbi.service.rest_server.nbi_plugins.tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import HTTP_CREATED, HTTP_SERVERERROR +from nbi.service._tools.Authentication import HTTP_AUTH from .Handlers import process_site, process_vpn_service from .YangValidator import YangValidator diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_SiteNetworkAccesses.py b/src/nbi/service/ietf_l3vpn/L3VPN_SiteNetworkAccesses.py similarity index 92% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_SiteNetworkAccesses.py rename to src/nbi/service/ietf_l3vpn/L3VPN_SiteNetworkAccesses.py index 338c7d631..7d528b149 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/L3VPN_SiteNetworkAccesses.py +++ b/src/nbi/service/ietf_l3vpn/L3VPN_SiteNetworkAccesses.py @@ -19,8 +19,8 @@ from flask.json import jsonify from flask.wrappers import Response from flask_restful import Resource from werkzeug.exceptions import UnsupportedMediaType -from nbi.service.rest_server.nbi_plugins.tools.Authentication import HTTP_AUTH -from nbi.service.rest_server.nbi_plugins.tools.HttpStatusCodes import HTTP_CREATED, HTTP_SERVERERROR +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import HTTP_CREATED, HTTP_SERVERERROR from .Handlers import process_site_network_access from .YangValidator import YangValidator diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/YangValidator.py b/src/nbi/service/ietf_l3vpn/YangValidator.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/YangValidator.py rename to src/nbi/service/ietf_l3vpn/YangValidator.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/__init__.py b/src/nbi/service/ietf_l3vpn/__init__.py similarity index 57% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/__init__.py rename to src/nbi/service/ietf_l3vpn/__init__.py index 7d18c6929..184bee5e5 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/__init__.py +++ b/src/nbi/service/ietf_l3vpn/__init__.py @@ -15,27 +15,26 @@ # RFC 8299 - YANG Data Model for L3VPN Service Delivery # Ref: https://datatracker.ietf.org/doc/rfc8299 -from flask_restful import Resource -from nbi.service.rest_server.RestServer import RestServer + +from nbi.service.NbiApplication import NbiApplication from .L3VPN_Services import L3VPN_Services from .L3VPN_Service import L3VPN_Service from .L3VPN_SiteNetworkAccesses import L3VPN_SiteNetworkAccesses URL_PREFIX = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc' -def _add_resource(rest_server : RestServer, resource : Resource, *urls, **kwargs): - urls = [(URL_PREFIX + url) for url in urls] - rest_server.add_resource(resource, *urls, **kwargs) - -def register_ietf_l3vpn(rest_server : RestServer): - _add_resource(rest_server, L3VPN_Services, - '/vpn-services', +def register_ietf_l3vpn(nbi_app : NbiApplication): + nbi_app.add_rest_api_resource( + L3VPN_Services, + URL_PREFIX + '/vpn-services', ) - _add_resource(rest_server, L3VPN_Service, - '/vpn-services/vpn-service=<vpn_id>', - '/vpn-services/vpn-service=<vpn_id>/', + nbi_app.add_rest_api_resource( + L3VPN_Service, + URL_PREFIX + '/vpn-services/vpn-service=<vpn_id>', + URL_PREFIX + '/vpn-services/vpn-service=<vpn_id>/', ) - _add_resource(rest_server, L3VPN_SiteNetworkAccesses, - '/sites/site=<site_id>/site-network-accesses', - '/sites/site=<site_id>/site-network-accesses/', + nbi_app.add_rest_api_resource( + L3VPN_SiteNetworkAccesses, + URL_PREFIX + '/sites/site=<site_id>/site-network-accesses', + URL_PREFIX + '/sites/site=<site_id>/site-network-accesses/', ) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/yang/ietf-inet-types@2013-07-15.yang b/src/nbi/service/ietf_l3vpn/yang/ietf-inet-types@2013-07-15.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/yang/ietf-inet-types@2013-07-15.yang rename to src/nbi/service/ietf_l3vpn/yang/ietf-inet-types@2013-07-15.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/yang/ietf-l3vpn-svc@2018-01-19.yang b/src/nbi/service/ietf_l3vpn/yang/ietf-l3vpn-svc@2018-01-19.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/yang/ietf-l3vpn-svc@2018-01-19.yang rename to src/nbi/service/ietf_l3vpn/yang/ietf-l3vpn-svc@2018-01-19.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/yang/ietf-netconf-acm@2018-02-14.yang b/src/nbi/service/ietf_l3vpn/yang/ietf-netconf-acm@2018-02-14.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/yang/ietf-netconf-acm@2018-02-14.yang rename to src/nbi/service/ietf_l3vpn/yang/ietf-netconf-acm@2018-02-14.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/yang/ietf-yang-types@2013-07-15.yang b/src/nbi/service/ietf_l3vpn/yang/ietf-yang-types@2013-07-15.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/yang/ietf-yang-types@2013-07-15.yang rename to src/nbi/service/ietf_l3vpn/yang/ietf-yang-types@2013-07-15.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/yang/ietf_l3vpn_tree.txt b/src/nbi/service/ietf_l3vpn/yang/ietf_l3vpn_tree.txt similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_l3vpn/yang/ietf_l3vpn_tree.txt rename to src/nbi/service/ietf_l3vpn/yang/ietf_l3vpn_tree.txt diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/ComposeLink.py b/src/nbi/service/ietf_network/ComposeLink.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/ComposeLink.py rename to src/nbi/service/ietf_network/ComposeLink.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/ComposeNetwork.py b/src/nbi/service/ietf_network/ComposeNetwork.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/ComposeNetwork.py rename to src/nbi/service/ietf_network/ComposeNetwork.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/ComposeNode.py b/src/nbi/service/ietf_network/ComposeNode.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/ComposeNode.py rename to src/nbi/service/ietf_network/ComposeNode.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/ComposeTermPoint.py b/src/nbi/service/ietf_network/ComposeTermPoint.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/ComposeTermPoint.py rename to src/nbi/service/ietf_network/ComposeTermPoint.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/ManualFixes.py b/src/nbi/service/ietf_network/ManualFixes.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/ManualFixes.py rename to src/nbi/service/ietf_network/ManualFixes.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/NameMapping.py b/src/nbi/service/ietf_network/NameMapping.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/NameMapping.py rename to src/nbi/service/ietf_network/NameMapping.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/NetworkTypeEnum.py b/src/nbi/service/ietf_network/NetworkTypeEnum.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/NetworkTypeEnum.py rename to src/nbi/service/ietf_network/NetworkTypeEnum.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/Networks.py b/src/nbi/service/ietf_network/Networks.py similarity index 96% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/Networks.py rename to src/nbi/service/ietf_network/Networks.py index e2ac05307..241cf5d9b 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network/Networks.py +++ b/src/nbi/service/ietf_network/Networks.py @@ -23,8 +23,8 @@ from common.proto.context_pb2 import ContextId, Empty from common.tools.context_queries.Topology import get_topology_details from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from nbi.service.rest_server.nbi_plugins.tools.Authentication import HTTP_AUTH -from nbi.service.rest_server.nbi_plugins.tools.HttpStatusCodes import HTTP_OK, HTTP_SERVERERROR +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import HTTP_OK, HTTP_SERVERERROR from .bindings import ietf_network from .ComposeNetwork import compose_network from .ManualFixes import manual_fixes diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/README.md b/src/nbi/service/ietf_network/README.md similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/README.md rename to src/nbi/service/ietf_network/README.md diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/YangHandler.py b/src/nbi/service/ietf_network/YangHandler.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/YangHandler.py rename to src/nbi/service/ietf_network/YangHandler.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/__init__.py b/src/nbi/service/ietf_network/__init__.py similarity index 79% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/__init__.py rename to src/nbi/service/ietf_network/__init__.py index 84f3a59ba..4d37d521f 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network/__init__.py +++ b/src/nbi/service/ietf_network/__init__.py @@ -30,15 +30,11 @@ # RFC draft-ietf-ccamp-client-signal-yang-10 - A YANG Data Model for Transport Network Client Signals # Ref: https://datatracker.ietf.org/doc/draft-ietf-ccamp-client-signal-yang/ -from flask_restful import Resource -from nbi.service.rest_server.RestServer import RestServer + +from nbi.service.NbiApplication import NbiApplication from .Networks import Networks URL_PREFIX = '/restconf/data/ietf-network:networks' -def _add_resource(rest_server : RestServer, resource : Resource, *urls, **kwargs): - urls = [(URL_PREFIX + url) for url in urls] - rest_server.add_resource(resource, *urls, **kwargs) - -def register_ietf_network(rest_server : RestServer): - _add_resource(rest_server, Networks, '/') +def register_ietf_network(nbi_app : NbiApplication): + nbi_app.add_rest_api_resource(Networks, URL_PREFIX + '/') diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/_docs/test_commands.txt b/src/nbi/service/ietf_network/_docs/test_commands.txt similarity index 92% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/_docs/test_commands.txt rename to src/nbi/service/ietf_network/_docs/test_commands.txt index 78b2dd246..4a813b52b 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network/_docs/test_commands.txt +++ b/src/nbi/service/ietf_network/_docs/test_commands.txt @@ -1,4 +1,4 @@ -cd ~/tfs-ctrl/src/nbi/service/rest_server/nbi_plugins/ietf_network +cd ~/tfs-ctrl/src/nbi/service/ietf_network python diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/__init__.py b/src/nbi/service/ietf_network/bindings/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/__init__.py rename to src/nbi/service/ietf_network/bindings/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/__init__.py b/src/nbi/service/ietf_network/bindings/networks/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/destination/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/destination/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/destination/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/destination/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/source/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/source/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/source/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/source/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/supporting_link/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/supporting_link/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/supporting_link/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/supporting_link/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/bundled_links/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/bundled_links/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/bundled_links/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/bundled_links/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/bundled_links/bundled_link/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/bundled_links/bundled_link/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/bundled_links/bundled_link/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/bundled_links/bundled_link/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/component_links/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/component_links/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/component_links/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/component_links/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/component_links/component_link/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/component_links/component_link/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/component_links/component_link/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/component_links/component_link/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/information_source_state/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/information_source_state/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/information_source_state/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/information_source_state/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/information_source_state/topology/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/information_source_state/topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/information_source_state/topology/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/information_source_state/topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/te_nsrlgs/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/te_nsrlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/te_nsrlgs/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/te_nsrlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/te_srlgs/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/te_srlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/te_srlgs/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/te_srlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_state/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_state/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_state/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_state/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_state/topology/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_state/topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/information_source_state/topology/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/information_source_state/topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/recovery/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/recovery/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/recovery/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/recovery/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/statistics/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/statistics/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/statistics/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/statistics/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/client_svc/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/client_svc/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/client_svc/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/client_svc/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/external_domain/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/external_domain/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/external_domain/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/external_domain/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/otn_link/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/otn_link/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/otn_link/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/otn_link/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/te_nsrlgs/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/te_nsrlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/te_nsrlgs/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/te_nsrlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/te_srlgs/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/te_srlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/te_srlgs/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/te_srlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/underlay/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/link/te/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/link/te/underlay/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/link/te/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/network_types/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/network_types/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/network_types/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/network_types/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/network_types/te_topology/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/network_types/te_topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/network_types/te_topology/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/network_types/te_topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/supporting_node/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/supporting_node/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/supporting_node/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/supporting_node/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/geolocation/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/geolocation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/geolocation/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/geolocation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/objective_function/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/objective_function/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/objective_function/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/objective_function/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/tiebreakers/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/tiebreakers/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/information_source_state/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/information_source_state/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/information_source_state/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/information_source_state/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/information_source_state/topology/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/information_source_state/topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/information_source_state/topology/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/information_source_state/topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/underlay_topology/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/underlay_topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_entry/underlay_topology/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_entry/underlay_topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_state/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_state/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_state/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_state/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_state/topology/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_state/topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/information_source_state/topology/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/information_source_state/topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/statistics/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/statistics/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/statistics/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/statistics/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/statistics/connectivity_matrix_entry/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/statistics/connectivity_matrix_entry/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/statistics/connectivity_matrix_entry/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/statistics/connectivity_matrix_entry/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/statistics/node/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/statistics/node/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/statistics/node/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/statistics/node/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from_/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/objective_function/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/objective_function/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/objective_function/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/objective_function/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/tiebreakers/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/tiebreakers/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/underlay_topology/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/underlay_topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/te_node_attributes/underlay_topology/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/te_node_attributes/underlay_topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/geolocation/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/geolocation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/geolocation/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/geolocation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/objective_function/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/objective_function/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/tiebreakers/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/tiebreakers/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/objective_function/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/objective_function/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/optimization_metric/explicit_route_include_objects/route_object_include_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/tiebreakers/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/tiebreakers/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/local_link_connectivity/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/local_link_connectivity/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/local_link_connectivity/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/local_link_connectivity/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/tunnel_termination_point/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/tunnel_termination_point/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/tunnel_termination_point/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/statistics/tunnel_termination_point/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/supporting_tunnel_termination_point/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/supporting_tunnel_termination_point/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/supporting_tunnel_termination_point/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/te/tunnel_termination_point/supporting_tunnel_termination_point/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/egress_bandwidth_profile/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/egress_bandwidth_profile/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/egress_bandwidth_profile/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/egress_bandwidth_profile/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/ingress_bandwidth_profile/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/ingress_bandwidth_profile/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/ingress_bandwidth_profile/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/ingress_bandwidth_profile/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/ingress_egress_bandwidth_profile/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/ingress_egress_bandwidth_profile/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/ingress_egress_bandwidth_profile/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_link_tp/ingress_egress_bandwidth_profile/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/outer_tag/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/outer_tag/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/outer_tag/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/outer_tag/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/second_tag/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/second_tag/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/second_tag/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_classification/vlan_classification/second_tag/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_pop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_pop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_pop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_pop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/outer_tag/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/outer_tag/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/outer_tag/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/outer_tag/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/second_tag/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/second_tag/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/second_tag/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/eth_svc/supported_vlan_operations/vlan_push/second_tag/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/supporting_termination_point/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/supporting_termination_point/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/supporting_termination_point/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/supporting_termination_point/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/client_svc/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/client_svc/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/client_svc/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/client_svc/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/geolocation/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/geolocation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/geolocation/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/geolocation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/otn_ltp/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/otn_ltp/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/node/termination_point/te/otn_ltp/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/node/termination_point/te/otn_ltp/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/supporting_network/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/supporting_network/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/supporting_network/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/supporting_network/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/te/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/te/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/te/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/te/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/te/geolocation/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/te/geolocation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/te/geolocation/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/te/geolocation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/te/nsrlg/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/te/nsrlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/te/nsrlg/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/te/nsrlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/te_topology_identifier/__init__.py b/src/nbi/service/ietf_network/bindings/networks/network/te_topology_identifier/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/network/te_topology_identifier/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/network/te_topology_identifier/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/external_domain/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/external_domain/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/external_domain/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/external_domain/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/ethernet_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/ethernet_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/ethernet_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/ethernet_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/otn_label_range/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/otn_label_range/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/otn_label_range/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/otn_label_range/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/te_nsrlgs/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/te_nsrlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/te_nsrlgs/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/te_nsrlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/te_srlgs/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/te_srlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/te_srlgs/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/te_srlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/as_number_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/as_number_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/label_hop/te_label/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/otn/odulist/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/node_template/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/node_template/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/node_template/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/node_template/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/node_template/te_node_attributes/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/node_template/te_node_attributes/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/node_template/te_node_attributes/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/node_template/te_node_attributes/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/node_template/te_node_attributes/underlay_topology/__init__.py b/src/nbi/service/ietf_network/bindings/networks/te/templates/node_template/te_node_attributes/underlay_topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/bindings/networks/te/templates/node_template/te_node_attributes/underlay_topology/__init__.py rename to src/nbi/service/ietf_network/bindings/networks/te/templates/node_template/te_node_attributes/underlay_topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/build-yang-bindings.sh b/src/nbi/service/ietf_network/build-yang-bindings.sh similarity index 96% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/build-yang-bindings.sh rename to src/nbi/service/ietf_network/build-yang-bindings.sh index 2775f80da..f37e2e32a 100755 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network/build-yang-bindings.sh +++ b/src/nbi/service/ietf_network/build-yang-bindings.sh @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -BASE_PATH=~/tfs-ctrl/src/nbi/service/rest_server/nbi_plugins/ietf_network +BASE_PATH=~/tfs-ctrl/src/nbi/service/ietf_network IETF_MODELS_PATH=${BASE_PATH}/yang cd ${BASE_PATH} diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/iana-routing-types@2017-12-04.yang b/src/nbi/service/ietf_network/yang/iana-routing-types@2017-12-04.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/iana-routing-types@2017-12-04.yang rename to src/nbi/service/ietf_network/yang/iana-routing-types@2017-12-04.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-eth-te-topology@2023-09-28.yang b/src/nbi/service/ietf_network/yang/ietf-eth-te-topology@2023-09-28.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-eth-te-topology@2023-09-28.yang rename to src/nbi/service/ietf_network/yang/ietf-eth-te-topology@2023-09-28.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-eth-tran-service@2023-10-23.yang b/src/nbi/service/ietf_network/yang/ietf-eth-tran-service@2023-10-23.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-eth-tran-service@2023-10-23.yang rename to src/nbi/service/ietf_network/yang/ietf-eth-tran-service@2023-10-23.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-eth-tran-types@2023-10-23.yang b/src/nbi/service/ietf_network/yang/ietf-eth-tran-types@2023-10-23.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-eth-tran-types@2023-10-23.yang rename to src/nbi/service/ietf_network/yang/ietf-eth-tran-types@2023-10-23.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-inet-types@2013-07-15.yang b/src/nbi/service/ietf_network/yang/ietf-inet-types@2013-07-15.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-inet-types@2013-07-15.yang rename to src/nbi/service/ietf_network/yang/ietf-inet-types@2013-07-15.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-l3-unicast-topology@2018-02-26.yang b/src/nbi/service/ietf_network/yang/ietf-l3-unicast-topology@2018-02-26.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-l3-unicast-topology@2018-02-26.yang rename to src/nbi/service/ietf_network/yang/ietf-l3-unicast-topology@2018-02-26.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-layer1-types@2022-10-14.yang b/src/nbi/service/ietf_network/yang/ietf-layer1-types@2022-10-14.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-layer1-types@2022-10-14.yang rename to src/nbi/service/ietf_network/yang/ietf-layer1-types@2022-10-14.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-network-topology@2018-02-26.yang b/src/nbi/service/ietf_network/yang/ietf-network-topology@2018-02-26.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-network-topology@2018-02-26.yang rename to src/nbi/service/ietf_network/yang/ietf-network-topology@2018-02-26.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-network@2018-02-26.yang b/src/nbi/service/ietf_network/yang/ietf-network@2018-02-26.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-network@2018-02-26.yang rename to src/nbi/service/ietf_network/yang/ietf-network@2018-02-26.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-otn-topology@2023-07-06.yang b/src/nbi/service/ietf_network/yang/ietf-otn-topology@2023-07-06.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-otn-topology@2023-07-06.yang rename to src/nbi/service/ietf_network/yang/ietf-otn-topology@2023-07-06.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-routing-types@2017-12-04.yang b/src/nbi/service/ietf_network/yang/ietf-routing-types@2017-12-04.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-routing-types@2017-12-04.yang rename to src/nbi/service/ietf_network/yang/ietf-routing-types@2017-12-04.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang b/src/nbi/service/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang rename to src/nbi/service/ietf_network/yang/ietf-te-packet-types@2020-06-10.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-te-topology@2020-08-06.yang b/src/nbi/service/ietf_network/yang/ietf-te-topology@2020-08-06.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-te-topology@2020-08-06.yang rename to src/nbi/service/ietf_network/yang/ietf-te-topology@2020-08-06.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-te-types@2020-06-10.yang b/src/nbi/service/ietf_network/yang/ietf-te-types@2020-06-10.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-te-types@2020-06-10.yang rename to src/nbi/service/ietf_network/yang/ietf-te-types@2020-06-10.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-trans-client-service@2023-10-23.yang b/src/nbi/service/ietf_network/yang/ietf-trans-client-service@2023-10-23.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-trans-client-service@2023-10-23.yang rename to src/nbi/service/ietf_network/yang/ietf-trans-client-service@2023-10-23.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-trans-client-svc-types@2023-10-23.yang b/src/nbi/service/ietf_network/yang/ietf-trans-client-svc-types@2023-10-23.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-trans-client-svc-types@2023-10-23.yang rename to src/nbi/service/ietf_network/yang/ietf-trans-client-svc-types@2023-10-23.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-yang-types@2013-07-15.yang b/src/nbi/service/ietf_network/yang/ietf-yang-types@2013-07-15.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network/yang/ietf-yang-types@2013-07-15.yang rename to src/nbi/service/ietf_network/yang/ietf-yang-types@2013-07-15.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Service.py b/src/nbi/service/ietf_network_slice/NSS_Service.py similarity index 97% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Service.py rename to src/nbi/service/ietf_network_slice/NSS_Service.py index 8f6dc8660..dd5ac271f 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Service.py +++ b/src/nbi/service/ietf_network_slice/NSS_Service.py @@ -23,8 +23,8 @@ from common.tools.grpc.Tools import grpc_message_to_json from context.client.ContextClient import ContextClient from slice.client.SliceClient import SliceClient -from ..tools.Authentication import HTTP_AUTH -from ..tools.HttpStatusCodes import ( +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import ( HTTP_GATEWAYTIMEOUT, HTTP_NOCONTENT, HTTP_OK, diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Service_Match_Criteria.py b/src/nbi/service/ietf_network_slice/NSS_Service_Match_Criteria.py similarity index 95% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Service_Match_Criteria.py rename to src/nbi/service/ietf_network_slice/NSS_Service_Match_Criteria.py index 3e1c9f73f..f24692af7 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Service_Match_Criteria.py +++ b/src/nbi/service/ietf_network_slice/NSS_Service_Match_Criteria.py @@ -22,8 +22,8 @@ from werkzeug.exceptions import UnsupportedMediaType from context.client.ContextClient import ContextClient from slice.client.SliceClient import SliceClient -from ..tools.Authentication import HTTP_AUTH -from ..tools.HttpStatusCodes import ( +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import ( HTTP_CREATED, ) from .ietf_slice_handler import IETFSliceHandler diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Service_Match_Criterion.py b/src/nbi/service/ietf_network_slice/NSS_Service_Match_Criterion.py similarity index 93% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Service_Match_Criterion.py rename to src/nbi/service/ietf_network_slice/NSS_Service_Match_Criterion.py index 8fb8adfd9..2641797a1 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Service_Match_Criterion.py +++ b/src/nbi/service/ietf_network_slice/NSS_Service_Match_Criterion.py @@ -18,8 +18,8 @@ from flask_restful import Resource from context.client.ContextClient import ContextClient -from ..tools.Authentication import HTTP_AUTH -from ..tools.HttpStatusCodes import ( +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import ( HTTP_CREATED, ) from .ietf_slice_handler import IETFSliceHandler diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services.py b/src/nbi/service/ietf_network_slice/NSS_Services.py similarity index 96% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services.py rename to src/nbi/service/ietf_network_slice/NSS_Services.py index 8398917a2..a3edc916d 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services.py +++ b/src/nbi/service/ietf_network_slice/NSS_Services.py @@ -22,7 +22,7 @@ from werkzeug.exceptions import UnsupportedMediaType from context.client.ContextClient import ContextClient from slice.client.SliceClient import SliceClient -from ..tools.HttpStatusCodes import HTTP_CREATED, HTTP_OK +from nbi.service._tools.HttpStatusCodes import HTTP_CREATED, HTTP_OK from .ietf_slice_handler import IETFSliceHandler LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_Connection_Group.py b/src/nbi/service/ietf_network_slice/NSS_Services_Connection_Group.py similarity index 95% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_Connection_Group.py rename to src/nbi/service/ietf_network_slice/NSS_Services_Connection_Group.py index 0309c6ac4..d1067e5a2 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_Connection_Group.py +++ b/src/nbi/service/ietf_network_slice/NSS_Services_Connection_Group.py @@ -22,8 +22,8 @@ from werkzeug.exceptions import UnsupportedMediaType from context.client.ContextClient import ContextClient from slice.client.SliceClient import SliceClient -from ..tools.Authentication import HTTP_AUTH -from ..tools.HttpStatusCodes import HTTP_CREATED +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import HTTP_CREATED from .ietf_slice_handler import IETFSliceHandler LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_Connection_Groups.py b/src/nbi/service/ietf_network_slice/NSS_Services_Connection_Groups.py similarity index 93% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_Connection_Groups.py rename to src/nbi/service/ietf_network_slice/NSS_Services_Connection_Groups.py index bee8349ef..7afcbe459 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_Connection_Groups.py +++ b/src/nbi/service/ietf_network_slice/NSS_Services_Connection_Groups.py @@ -21,8 +21,8 @@ from werkzeug.exceptions import UnsupportedMediaType from context.client.ContextClient import ContextClient -from ..tools.Authentication import HTTP_AUTH -from ..tools.HttpStatusCodes import HTTP_CREATED +from nbi.service._tools.Authentication import HTTP_AUTH +from nbi.service._tools.HttpStatusCodes import HTTP_CREATED from .ietf_slice_handler import IETFSliceHandler LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_SDP.py b/src/nbi/service/ietf_network_slice/NSS_Services_SDP.py similarity index 96% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_SDP.py rename to src/nbi/service/ietf_network_slice/NSS_Services_SDP.py index f1d04a858..6d66fba6a 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_SDP.py +++ b/src/nbi/service/ietf_network_slice/NSS_Services_SDP.py @@ -21,7 +21,7 @@ from werkzeug.exceptions import UnsupportedMediaType from context.client.ContextClient import ContextClient -from ..tools.HttpStatusCodes import HTTP_OK +from nbi.service._tools.HttpStatusCodes import HTTP_OK from .ietf_slice_handler import IETFSliceHandler LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_SDPs.py b/src/nbi/service/ietf_network_slice/NSS_Services_SDPs.py similarity index 96% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_SDPs.py rename to src/nbi/service/ietf_network_slice/NSS_Services_SDPs.py index 8a3fb8c42..58a789c12 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/NSS_Services_SDPs.py +++ b/src/nbi/service/ietf_network_slice/NSS_Services_SDPs.py @@ -21,7 +21,7 @@ from werkzeug.exceptions import UnsupportedMediaType from context.client.ContextClient import ContextClient -from ..tools.HttpStatusCodes import HTTP_CREATED +from nbi.service._tools.HttpStatusCodes import HTTP_CREATED from .ietf_slice_handler import IETFSliceHandler LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/YangValidator.py b/src/nbi/service/ietf_network_slice/YangValidator.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/YangValidator.py rename to src/nbi/service/ietf_network_slice/YangValidator.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/__init__.py b/src/nbi/service/ietf_network_slice/__init__.py similarity index 51% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/__init__.py rename to src/nbi/service/ietf_network_slice/__init__.py index db76b3b91..3df979e01 100644 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/__init__.py +++ b/src/nbi/service/ietf_network_slice/__init__.py @@ -15,10 +15,7 @@ # IETF draft-ietf-teas-ietf-network-slice-nbi-yang-02 - IETF Network Slice Service YANG Model # Ref: https://datatracker.ietf.org/doc/draft-ietf-teas-ietf-network-slice-nbi-yang/ -from flask_restful import Resource - -from nbi.service.rest_server.RestServer import RestServer - +from nbi.service.NbiApplication import NbiApplication from .NSS_Service import NSS_Service from .NSS_Service_Match_Criteria import NSS_Service_Match_Criteria from .NSS_Service_Match_Criterion import NSS_Service_Match_Criterion @@ -28,48 +25,38 @@ from .NSS_Services_Connection_Groups import NSS_Service_Connection_Groups from .NSS_Services_SDP import NSS_Service_SDP from .NSS_Services_SDPs import NSS_Service_SDPs -URL_PREFIX = "/restconf/data/ietf-network-slice-service" - +URL_PREFIX = '/restconf/data/ietf-network-slice-service:network-slice-services' -def _add_resource(rest_server: RestServer, resource: Resource, *urls, **kwargs): - urls = [(URL_PREFIX + url) for url in urls] - rest_server.add_resource(resource, *urls, **kwargs) - - -def register_ietf_nss(rest_server: RestServer): - _add_resource(rest_server, NSS_Services, ":network-slice-services") - _add_resource( - rest_server, +def register_ietf_nss(nbi_app: NbiApplication): + nbi_app.add_rest_api_resource( + NSS_Services, + URL_PREFIX + '/' + ) + nbi_app.add_rest_api_resource( NSS_Service, - ":network-slice-services/slice-service=<string:slice_id>", + URL_PREFIX + '/slice-service=<string:slice_id>', ) - _add_resource( - rest_server, + nbi_app.add_rest_api_resource( NSS_Service_SDPs, - ":network-slice-services/slice-service=<string:slice_id>/sdps", + URL_PREFIX + '/slice-service=<string:slice_id>/sdps', ) - _add_resource( - rest_server, + nbi_app.add_rest_api_resource( NSS_Service_SDP, - ":network-slice-services/slice-service=<string:slice_id>/sdps/sdp=<string:sdp_id>", + URL_PREFIX + '/slice-service=<string:slice_id>/sdps/sdp=<string:sdp_id>', ) - _add_resource( - rest_server, + nbi_app.add_rest_api_resource( NSS_Service_Connection_Groups, - ":network-slice-services/slice-service=<string:slice_id>/connection-groups", + URL_PREFIX + '/slice-service=<string:slice_id>/connection-groups', ) - _add_resource( - rest_server, + nbi_app.add_rest_api_resource( NSS_Service_Connection_Group, - ":network-slice-services/slice-service=<string:slice_id>/connection-groups/connection-group=<string:connection_group_id>", + URL_PREFIX + '/slice-service=<string:slice_id>/connection-groups/connection-group=<string:connection_group_id>', ) - _add_resource( - rest_server, + nbi_app.add_rest_api_resource( NSS_Service_Match_Criteria, - ":network-slice-services/slice-service=<string:slice_id>/sdps/sdp=<string:sdp_id>/service-match-criteria", + URL_PREFIX + '/slice-service=<string:slice_id>/sdps/sdp=<string:sdp_id>/service-match-criteria', ) - _add_resource( - rest_server, + nbi_app.add_rest_api_resource( NSS_Service_Match_Criterion, - ":network-slice-services/slice-service=<string:slice_id>/sdps/sdp=<string:sdp_id>/service-match-criteria/match-criterion=<string:match_criterion_id>", + URL_PREFIX + '/slice-service=<string:slice_id>/sdps/sdp=<string:sdp_id>/service-match-criteria/match-criterion=<string:match_criterion_id>', ) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/__init__.py b/src/nbi/service/ietf_network_slice/bindings/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/__init__.py b/src/nbi/service/ietf_network_slice/bindings/nacm/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/nacm/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/groups/__init__.py b/src/nbi/service/ietf_network_slice/bindings/nacm/groups/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/groups/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/nacm/groups/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/groups/group/__init__.py b/src/nbi/service/ietf_network_slice/bindings/nacm/groups/group/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/groups/group/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/nacm/groups/group/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/rule/__init__.py b/src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/rule/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/rule/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/rule/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/data_node/__init__.py b/src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/data_node/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/data_node/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/data_node/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/notification/__init__.py b/src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/notification/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/notification/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/notification/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/protocol_operation/__init__.py b/src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/protocol_operation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/protocol_operation/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/nacm/rule_list/rule/rule_type/protocol_operation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connection_group_monitoring/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connection_group_monitoring/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connection_group_monitoring/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connection_group_monitoring/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_monitoring/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_monitoring/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_monitoring/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_monitoring/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/standard/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/standard/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/standard/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/a2a/a2a_sdp/slo_sle_policy/standard/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/p2mp/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/p2mp/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/p2mp/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/p2mp/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/p2p/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/p2p/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/p2p/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/connectivity_construct_type/p2p/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/standard/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/standard/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/standard/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/connectivity_construct/slo_sle_policy/standard/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/standard/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/standard/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/standard/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/connection_groups/connection_group/slo_sle_policy/standard/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/ac_tag_opaque/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/ac_tag_opaque/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/ac_tag_opaque/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/ac_tag_opaque/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/ac_tags/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/ac_tags/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/ac_tags/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/ac_tags/ac_tags/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/incoming_qos_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/incoming_qos_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/incoming_qos_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/incoming_qos_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/incoming_qos_policy/rate_limits/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/incoming_qos_policy/rate_limits/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/incoming_qos_policy/rate_limits/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/incoming_qos_policy/rate_limits/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/outgoing_qos_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/outgoing_qos_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/outgoing_qos_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/outgoing_qos_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/outgoing_qos_policy/rate_limits/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/outgoing_qos_policy/rate_limits/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/outgoing_qos_policy/rate_limits/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/outgoing_qos_policy/rate_limits/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/opaque/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/opaque/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/opaque/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/opaque/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/protocol/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/protocol/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/protocol/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/protocol/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/protocol/attribute/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/protocol/attribute/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/protocol/attribute/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/attachment_circuits/attachment_circuit/sdp_peering/protocol/attribute/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/incoming_qos_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/incoming_qos_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/incoming_qos_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/incoming_qos_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/incoming_qos_policy/rate_limits/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/incoming_qos_policy/rate_limits/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/incoming_qos_policy/rate_limits/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/incoming_qos_policy/rate_limits/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/location/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/location/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/location/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/location/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/outgoing_qos_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/outgoing_qos_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/outgoing_qos_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/outgoing_qos_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/outgoing_qos_policy/rate_limits/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/outgoing_qos_policy/rate_limits/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/outgoing_qos_policy/rate_limits/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/outgoing_qos_policy/rate_limits/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_monitoring/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_monitoring/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_monitoring/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_monitoring/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/opaque/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/opaque/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/opaque/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/opaque/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/protocol/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/protocol/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/protocol/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/protocol/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/protocol/attribute/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/protocol/attribute/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/protocol/attribute/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/sdp_peering/protocol/attribute/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/service_match_criteria/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/service_match_criteria/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/service_match_criteria/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/service_match_criteria/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/service_match_criteria/match_criterion/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/service_match_criteria/match_criterion/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/service_match_criteria/match_criterion/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/service_match_criteria/match_criterion/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/admin_status/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/admin_status/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/admin_status/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/admin_status/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/oper_status/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/oper_status/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/oper_status/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/sdps/sdp/status/oper_status/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/tag_opaque/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/tag_opaque/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/tag_opaque/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/tag_opaque/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/tag_type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/tag_type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/tag_type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/service_tags/tag_type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/custom/service_slo_sle_policy/steering_constraints/service_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/standard/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/standard/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/standard/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/slo_sle_policy/standard/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/status/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/status/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/status/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/status/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/status/admin_status/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/status/admin_status/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/status/admin_status/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/status/admin_status/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/status/oper_status/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/status/oper_status/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/status/oper_status/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/status/oper_status/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/te_topology_identifier/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/te_topology_identifier/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slice_service/te_topology_identifier/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slice_service/te_topology_identifier/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/metric_bounds/metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/service_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/service_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/service_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/network_slice_services/slo_sle_templates/slo_sle_template/service_slo_sle_policy/steering_constraints/service_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/destination/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/destination/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/destination/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/destination/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/source/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/source/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/source/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/source/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/supporting_link/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/supporting_link/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/supporting_link/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/supporting_link/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/bundled_links/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/bundled_links/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/bundled_links/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/bundled_links/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/bundled_links/bundled_link/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/bundled_links/bundled_link/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/bundled_links/bundled_link/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/bundle/bundled_links/bundled_link/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/component_links/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/component_links/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/component_links/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/component_links/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/component_links/component_link/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/component_links/component_link/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/component_links/component_link/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/bundle_stack_level/component/component_links/component_link/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/information_source_state/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/information_source_state/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/information_source_state/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/information_source_state/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/information_source_state/topology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/information_source_state/topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/information_source_state/topology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/information_source_state/topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/te_nsrlgs/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/te_nsrlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/te_nsrlgs/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/te_nsrlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/te_srlgs/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/te_srlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/te_srlgs/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/te_srlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_entry/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_state/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_state/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_state/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_state/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_state/topology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_state/topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/information_source_state/topology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/information_source_state/topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/recovery/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/recovery/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/recovery/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/recovery/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/statistics/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/statistics/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/statistics/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/statistics/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/external_domain/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/external_domain/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/external_domain/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/external_domain/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/te_nsrlgs/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/te_nsrlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/te_nsrlgs/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/te_nsrlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/te_srlgs/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/te_srlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/te_srlgs/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/te_srlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/underlay/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/link/te/underlay/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/link/te/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/network_types/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/network_types/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/network_types/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/network_types/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/network_types/te_topology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/network_types/te_topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/network_types/te_topology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/network_types/te_topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/supporting_node/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/supporting_node/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/supporting_node/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/supporting_node/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/geolocation/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/geolocation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/geolocation/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/geolocation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/objective_function/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/objective_function/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/objective_function/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/optimizations/algorithm/objective_function/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_constraints/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/connectivity_matrices/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/information_source_state/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/information_source_state/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/information_source_state/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/information_source_state/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/information_source_state/topology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/information_source_state/topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/information_source_state/topology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/information_source_state/topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/underlay_topology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/underlay_topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/underlay_topology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_entry/underlay_topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_state/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_state/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_state/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_state/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_state/topology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_state/topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/information_source_state/topology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/information_source_state/topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/statistics/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/statistics/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/statistics/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/statistics/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/statistics/connectivity_matrix_entry/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/statistics/connectivity_matrix_entry/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/statistics/connectivity_matrix_entry/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/statistics/connectivity_matrix_entry/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/statistics/node/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/statistics/node/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/statistics/node/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/statistics/node/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/from/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/optimizations/algorithm/objective_function/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_constraints/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/to/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/connectivity_matrix/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/objective_function/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/objective_function/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/objective_function/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/optimizations/algorithm/objective_function/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_constraints/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/connectivity_matrices/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/underlay_topology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/underlay_topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/underlay_topology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/te_node_attributes/underlay_topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/client_layer_adaptation/switching_capability/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/geolocation/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/geolocation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/geolocation/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/geolocation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/tiebreakers/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/tiebreakers/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/objective_function/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/objective_function/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/objective_function/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/optimizations/algorithm/objective_function/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_constraints/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/local_link_connectivity/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/srlg/srlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_exclude_objects/route_object_exclude_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/optimization_metric/explicit_route_include_objects/route_object_include_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/tiebreakers/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/tiebreakers/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/tiebreakers/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/tiebreakers/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/metric/tiebreakers/tiebreaker/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/objective_function/objective_function/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/objective_function/objective_function/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/objective_function/objective_function/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/optimizations/algorithm/objective_function/objective_function/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/path_metric_bound/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/path_metric_bound/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/path_metric_bound/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_metric_bounds/path_metric_bound/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_constraints/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/path_affinities_value/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/path_affinities_value/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/path_affinities_value/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinities_values/path_affinities_value/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_affinity_names/path_affinity_name/affinity_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_metric/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_metric/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_metric/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_metric/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_route_objects/path_route_object/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_lists/path_srlgs_list/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/path_srlgs_name/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/path_srlgs_name/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/path_srlgs_name/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/path_properties/path_srlgs_names/path_srlgs_name/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/local_link_connectivities/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/local_link_connectivity/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/local_link_connectivity/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/local_link_connectivity/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/local_link_connectivity/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/tunnel_termination_point/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/tunnel_termination_point/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/tunnel_termination_point/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/statistics/tunnel_termination_point/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/supporting_tunnel_termination_point/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/supporting_tunnel_termination_point/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/supporting_tunnel_termination_point/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/te/tunnel_termination_point/supporting_tunnel_termination_point/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/supporting_termination_point/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/supporting_termination_point/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/supporting_termination_point/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/supporting_termination_point/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/geolocation/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/geolocation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/geolocation/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/geolocation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/node/termination_point/te/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/supporting_network/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/supporting_network/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/supporting_network/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/supporting_network/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/te/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/te/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/te/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/te/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/te/geolocation/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/te/geolocation/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/te/geolocation/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/te/geolocation/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/te/nsrlg/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/te/nsrlg/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/te/nsrlg/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/te/nsrlg/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/te_topology_identifier/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/network/te_topology_identifier/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/network/te_topology_identifier/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/network/te_topology_identifier/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/external_domain/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/external_domain/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/external_domain/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/external_domain/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/interface_switching_capability/max_lsp_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_end/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_start/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/label_restrictions/label_restriction/label_step/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_link_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/max_resv_link_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/te_nsrlgs/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/te_nsrlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/te_nsrlgs/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/te_nsrlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/te_srlgs/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/te_srlgs/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/te_srlgs/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/te_srlgs/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/backup_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/as_number/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/as_number/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/as_number/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/as_number/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/as_number/as_number_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/label/label_hop/te_label/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_link_hop/numbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/numbered_node_hop/numbered_node_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/primary_path/path_element/type/unnumbered_link_hop/unnumbered_link_hop/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnel_termination_points/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnel_termination_points/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnel_termination_points/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnel_termination_points/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/tunnel/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/tunnel/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/tunnel/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/underlay/tunnels/tunnel/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/link_template/te_link_attributes/unreserved_bandwidth/te_bandwidth/technology/generic/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/node_template/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/node_template/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/node_template/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/node_template/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/node_template/te_node_attributes/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/node_template/te_node_attributes/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/node_template/te_node_attributes/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/node_template/te_node_attributes/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/node_template/te_node_attributes/underlay_topology/__init__.py b/src/nbi/service/ietf_network_slice/bindings/networks/te/templates/node_template/te_node_attributes/underlay_topology/__init__.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/bindings/networks/te/templates/node_template/te_node_attributes/underlay_topology/__init__.py rename to src/nbi/service/ietf_network_slice/bindings/networks/te/templates/node_template/te_node_attributes/underlay_topology/__init__.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/ietf_slice_handler.py b/src/nbi/service/ietf_network_slice/ietf_slice_handler.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/ietf_slice_handler.py rename to src/nbi/service/ietf_network_slice/ietf_slice_handler.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/ofc23_batch_slices.py b/src/nbi/service/ietf_network_slice/ofc23_batch_slices.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/ofc23_batch_slices.py rename to src/nbi/service/ietf_network_slice/ofc23_batch_slices.py diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-ac-common@2023-11-13.yang b/src/nbi/service/ietf_network_slice/yang/ietf-ac-common@2023-11-13.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-ac-common@2023-11-13.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-ac-common@2023-11-13.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-ac-svc@2024-08-06.yang b/src/nbi/service/ietf_network_slice/yang/ietf-ac-svc@2024-08-06.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-ac-svc@2024-08-06.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-ac-svc@2024-08-06.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-ethertypes@2019-03-04.yang b/src/nbi/service/ietf_network_slice/yang/ietf-ethertypes@2019-03-04.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-ethertypes@2019-03-04.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-ethertypes@2019-03-04.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-geo-location@2022-02-11.yang b/src/nbi/service/ietf_network_slice/yang/ietf-geo-location@2022-02-11.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-geo-location@2022-02-11.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-geo-location@2022-02-11.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-inet-types@2024-10-21.yang b/src/nbi/service/ietf_network_slice/yang/ietf-inet-types@2024-10-21.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-inet-types@2024-10-21.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-inet-types@2024-10-21.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-key-chain@2017-06-15.yang b/src/nbi/service/ietf_network_slice/yang/ietf-key-chain@2017-06-15.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-key-chain@2017-06-15.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-key-chain@2017-06-15.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-netconf-acm@2018-02-14.yang b/src/nbi/service/ietf_network_slice/yang/ietf-netconf-acm@2018-02-14.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-netconf-acm@2018-02-14.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-netconf-acm@2018-02-14.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-network-slice-service.txt b/src/nbi/service/ietf_network_slice/yang/ietf-network-slice-service.txt similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-network-slice-service.txt rename to src/nbi/service/ietf_network_slice/yang/ietf-network-slice-service.txt diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-network-slice-service@2024-08-28.yang b/src/nbi/service/ietf_network_slice/yang/ietf-network-slice-service@2024-08-28.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-network-slice-service@2024-08-28.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-network-slice-service@2024-08-28.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-network-slice@2022-03-04.yang b/src/nbi/service/ietf_network_slice/yang/ietf-network-slice@2022-03-04.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-network-slice@2022-03-04.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-network-slice@2022-03-04.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-network-topology@2018-02-26.yang b/src/nbi/service/ietf_network_slice/yang/ietf-network-topology@2018-02-26.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-network-topology@2018-02-26.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-network-topology@2018-02-26.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-network@2018-02-26.yang b/src/nbi/service/ietf_network_slice/yang/ietf-network@2018-02-26.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-network@2018-02-26.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-network@2018-02-26.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-packet-fields@2019-03-04.yang b/src/nbi/service/ietf_network_slice/yang/ietf-packet-fields@2019-03-04.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-packet-fields@2019-03-04.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-packet-fields@2019-03-04.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-routing-types@2017-12-04.yang b/src/nbi/service/ietf_network_slice/yang/ietf-routing-types@2017-12-04.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-routing-types@2017-12-04.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-routing-types@2017-12-04.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-te-packet-types@2024-10-30.yang b/src/nbi/service/ietf_network_slice/yang/ietf-te-packet-types@2024-10-30.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-te-packet-types@2024-10-30.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-te-packet-types@2024-10-30.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-te-types@2024-10-30.yang b/src/nbi/service/ietf_network_slice/yang/ietf-te-types@2024-10-30.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-te-types@2024-10-30.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-te-types@2024-10-30.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-vpn-common@2021-09-10.yang b/src/nbi/service/ietf_network_slice/yang/ietf-vpn-common@2021-09-10.yang similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/ietf_network_slice/yang/ietf-vpn-common@2021-09-10.yang rename to src/nbi/service/ietf_network_slice/yang/ietf-vpn-common@2021-09-10.yang diff --git a/src/nbi/service/rest_server/nbi_plugins/qkd_app/Resources.py b/src/nbi/service/qkd_app/Resources.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/qkd_app/Resources.py rename to src/nbi/service/qkd_app/Resources.py diff --git a/src/nbi/service/websocket_namespaces/hearthbeat/__init__.py b/src/nbi/service/qkd_app/__init__.py similarity index 64% rename from src/nbi/service/websocket_namespaces/hearthbeat/__init__.py rename to src/nbi/service/qkd_app/__init__.py index 842023ba1..4aa123577 100644 --- a/src/nbi/service/websocket_namespaces/hearthbeat/__init__.py +++ b/src/nbi/service/qkd_app/__init__.py @@ -12,13 +12,19 @@ # See the License for the specific language governing permissions and # limitations under the License. - from nbi.service.NbiApplication import NbiApplication -from .HeartbeatNamespace import NAMESPACE_DESCRIPTOR, HeartbeatThread +from .Resources import CreateQKDApp, Index -def register_heartbeat(nbi_app : NbiApplication): - heartbeat_thread = HeartbeatThread(nbi_app) - heartbeat_thread.start() +URL_PREFIX = '/qkd_app' - _, namespace_class, namespace_url = NAMESPACE_DESCRIPTOR - nbi_app.add_websocket_namespace(namespace_class, namespace_url) +def register_qkd_app(nbi_app : NbiApplication): + nbi_app.add_rest_api_resource( + Index, + URL_PREFIX + '/', + endpoint='qkd_app.index' + ) + nbi_app.add_rest_api_resource( + CreateQKDApp, + URL_PREFIX + '/create_qkd_app', + endpoint='qkd_app.register_qkd_app' + ) diff --git a/src/nbi/service/rest_server/nbi_plugins/etsi_bwm/__init__.py b/src/nbi/service/rest_server/nbi_plugins/etsi_bwm/__init__.py deleted file mode 100644 index 718c4d6a3..000000000 --- a/src/nbi/service/rest_server/nbi_plugins/etsi_bwm/__init__.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -from nbi.service.rest_server.RestServer import RestServer -from .Resources import BwInfo, BwInfoId - -URL_PREFIX = '/restconf/bwm/v1' - -# Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type. -RESOURCES = [ - # (endpoint_name, resource_class, resource_url) - ('api.bw_info', BwInfo, '/bw_allocations'), - ('api.bw_info_id', BwInfoId, '/bw_allocations/<path:allocationId>'), -] - -def register_etsi_bwm_api(rest_server : RestServer): - for endpoint_name, resource_class, resource_url in RESOURCES: - rest_server.add_resource(resource_class, URL_PREFIX + resource_url, endpoint=endpoint_name) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/__init__.py b/src/nbi/service/rest_server/nbi_plugins/ietf_acl/__init__.py deleted file mode 100644 index da4fb182e..000000000 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_acl/__init__.py +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -from flask_restful import Resource -from nbi.service.rest_server.RestServer import RestServer -from .Acl import Acl -from .Acls import Acls - -URL_PREFIX = '/restconf/data' - -def __add_resource(rest_server: RestServer, resource: Resource, *urls, **kwargs): - urls = [(URL_PREFIX + url) for url in urls] - rest_server.add_resource(resource, *urls, **kwargs) - -def register_ietf_acl(rest_server: RestServer): - __add_resource( - rest_server, - Acls, - '/device=<path:device_uuid>/ietf-access-control-list:acls', - ) - - __add_resource( - rest_server, - Acl, - '/device=<path:device_uuid>/ietf-access-control-list:acl=<path:acl_name>', - '/device=<path:device_uuid>/ietf-access-control-list:acl=<path:acl_name>/', - ) diff --git a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/__init__.py b/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/__init__.py deleted file mode 100644 index fe9418b7b..000000000 --- a/src/nbi/service/rest_server/nbi_plugins/ietf_hardware/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -from nbi.service.rest_server.nbi_plugins.ietf_hardware.Hardware import Hardware -from nbi.service.rest_server.nbi_plugins.ietf_hardware.HardwareMultipleDevices import HardwareMultipleDevices -from nbi.service.rest_server.RestServer import RestServer - -URL_PREFIX_DEVICE = "/restconf/data/device=<path:device_uuid>/ietf-network-hardware-inventory:network-hardware-inventory" -URL_PREFIX_HARDWARE = "/restconf/data/ietf-network-hardware-inventory:network-hardware-inventory" - -def register_ietf_hardware(rest_server: RestServer): - rest_server.add_resource(Hardware, URL_PREFIX_DEVICE) - rest_server.add_resource(HardwareMultipleDevices, URL_PREFIX_HARDWARE) diff --git a/src/nbi/service/rest_server/nbi_plugins/qkd_app/__init__.py b/src/nbi/service/rest_server/nbi_plugins/qkd_app/__init__.py deleted file mode 100644 index 0c048f662..000000000 --- a/src/nbi/service/rest_server/nbi_plugins/qkd_app/__init__.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -from nbi.service.rest_server.RestServer import RestServer -from .Resources import CreateQKDApp, Index - -URL_PREFIX = '/qkd_app' - -# Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type. -RESOURCES = [ - # (endpoint_name, resource_class, resource_url) - ('api.index', Index, '/'), - ('api.register_qkd_app', CreateQKDApp, '/create_qkd_app'), -] - -def register_qkd_app(rest_server : RestServer): - for endpoint_name, resource_class, resource_url in RESOURCES: - rest_server.add_resource(resource_class, URL_PREFIX + resource_url, endpoint=endpoint_name) diff --git a/src/nbi/service/restapi_resources/health_probes/Resources.py b/src/nbi/service/restapi_resources/health_probes/Resources.py deleted file mode 100644 index 27c00d6bc..000000000 --- a/src/nbi/service/restapi_resources/health_probes/Resources.py +++ /dev/null @@ -1,15 +0,0 @@ -import time -from flask_restful import Resource - -START_TIME = time.time() - -class HealthProbe(Resource): - def get(self): - uptime = time.time() - START_TIME - return {'status': 'ready', 'uptime': uptime}, 200 - #return {'status': 'not ready'}, 503 - -RESOURCE_DESCRIPTORS = [ - # endpoint_name, resource_class, resource_url - ('sys.probe.healthz', HealthProbe, '/healthz'), -] diff --git a/src/nbi/service/restapi_resources/well_known_meta/Resources.py b/src/nbi/service/restapi_resources/well_known_meta/Resources.py deleted file mode 100644 index 8eab56f6b..000000000 --- a/src/nbi/service/restapi_resources/well_known_meta/Resources.py +++ /dev/null @@ -1,20 +0,0 @@ -# RESTCONF .well-known endpoint (RFC 8040) -class WellKnownHostMeta(Resource): - def get(self): - response = { - "restconf": { - "capabilities": [ - "urn:ietf:params:restconf:capability:defaults:1.0", - "urn:ietf:params:restconf:capability:depth:1.0", - "urn:ietf:params:restconf:capability:with-defaults:1.0" - ], - "media-types": [ - "application/yang-data+json", - "application/yang-data+xml" - ] - } - } - return jsonify(response) - -# Register the RESTCONF .well-known endpoint -api.add_resource(WellKnownHostMeta, "/.well-known/host-meta") \ No newline at end of file diff --git a/src/nbi/service/rest_server/nbi_plugins/__init__.py b/src/nbi/service/restconf_root/Resources.py similarity index 67% rename from src/nbi/service/rest_server/nbi_plugins/__init__.py rename to src/nbi/service/restconf_root/Resources.py index c5fce5bd3..a6cd020c7 100644 --- a/src/nbi/service/rest_server/nbi_plugins/__init__.py +++ b/src/nbi/service/restconf_root/Resources.py @@ -12,23 +12,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -from flask.json import jsonify +from flask import jsonify from flask_restful import Resource -from nbi.service.NbiApplication import NbiApplication -from .tools.HttpStatusCodes import HTTP_CREATED, HTTP_OK -URL_PREFIX = "/restconf/data" - -class BaseServer(Resource): +class RestConfRoot(Resource): def post(self): response = jsonify({}) - response.status_code = HTTP_CREATED + response.status_code = 201 return response def get(self): response = jsonify({}) - response.status_code = HTTP_OK + response.status_code = 200 return response - -def register_restconf(nbi_app : NbiApplication): - nbi_app.add_rest_api_resource(BaseServer, URL_PREFIX) diff --git a/src/nbi/service/restapi_resources/__init__.py b/src/nbi/service/restconf_root/__init__.py similarity index 75% rename from src/nbi/service/restapi_resources/__init__.py rename to src/nbi/service/restconf_root/__init__.py index 53d5157f7..129645284 100644 --- a/src/nbi/service/restapi_resources/__init__.py +++ b/src/nbi/service/restconf_root/__init__.py @@ -12,3 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +from ..NbiApplication import NbiApplication +from .Resources import RestConfRoot + +def register_restconf_root(nbi_app : NbiApplication): + nbi_app.add_rest_api_resource(RestConfRoot, '/restconf/data') diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py b/src/nbi/service/tfs_api/Resources.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py rename to src/nbi/service/tfs_api/Resources.py diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Tools.py b/src/nbi/service/tfs_api/Tools.py similarity index 100% rename from src/nbi/service/rest_server/nbi_plugins/tfs_api/Tools.py rename to src/nbi/service/tfs_api/Tools.py diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py b/src/nbi/service/tfs_api/__init__.py similarity index 90% rename from src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py rename to src/nbi/service/tfs_api/__init__.py index 6605557ca..0f6426bc1 100644 --- a/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py +++ b/src/nbi/service/tfs_api/__init__.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from nbi.service.rest_server.RestServer import RestServer +from nbi.service.NbiApplication import NbiApplication from .Resources import ( Connection, ConnectionIds, Connections, Context, ContextIds, Contexts, @@ -25,10 +25,11 @@ from .Resources import ( Topologies, Topology, TopologyDetails, TopologyIds ) +ENDPOINT_PREFIX = 'tfs_api.' URL_PREFIX = '/tfs-api' # Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type. -RESOURCES = [ +_RESOURCES = [ # (endpoint_name, resource_class, resource_url) ('api.context_ids', ContextIds, '/context_ids'), ('api.contexts', Contexts, '/contexts'), @@ -64,7 +65,10 @@ RESOURCES = [ ('api.policyrules', PolicyRules, '/policyrules'), ('api.policyrule', PolicyRule, '/policyrule/<path:policyrule_uuid>'), ] +RESOURCES = [ + (ENDPOINT_PREFIX + endpoint_name, resource_class, URL_PREFIX + resource_url) + for endpoint_name, resource_class, resource_url in _RESOURCES +] -def register_tfs_api(rest_server : RestServer): - for endpoint_name, resource_class, resource_url in RESOURCES: - rest_server.add_resource(resource_class, URL_PREFIX + resource_url, endpoint=endpoint_name) +def register_tfs_api(nbi_app : NbiApplication): + nbi_app.add_rest_api_resources(RESOURCES) diff --git a/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py b/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py deleted file mode 100644 index 21cf43a6f..000000000 --- a/src/nbi/service/websocket_namespaces/hearthbeat/HeartbeatNamespace.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2022-2024 ETSI 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 logging, threading, time -from flask import request -from flask_socketio import Namespace, join_room, leave_room -from nbi.service.NbiApplication import NbiApplication - -LOGGER = logging.getLogger(__name__) - -NAMESPACE_NAME = 'heartbeat' -NAMESPACE_URL = '/heartbeat' - -# WebSocket Heartbeat Namespace for debugging purposes -class HeartbeatHandler(Namespace): - def on_connect(self): - LOGGER.debug('Client {:s} connected'.format(str(request.sid))) - join_room(NAMESPACE_NAME) - - def on_disconnect(self, reason): - LOGGER.debug('Client {:s} disconnected: reason={:s}'.format( - str(request.sid), str(reason) - )) - leave_room(NAMESPACE_NAME) - -class HeartbeatThread(threading.Thread): - INTERVAL = 1 # second - - def __init__(self, nbi_app : NbiApplication): - super().__init__(daemon=True) - self.nbi_app = nbi_app - self.nbi_app.heartbeat_thread = self - - def run(self): - interval = HeartbeatThread.INTERVAL - start_time = time.time() - while True: - time.sleep(interval) - uptime = time.time() - start_time - LOGGER.warning('emitting...') - self.nbi_app.websocket_emit_message( - 'uptime', {'uptime_seconds': uptime}, - namespace=NAMESPACE_URL, to=NAMESPACE_NAME - ) - -NAMESPACE_DESCRIPTOR = (NAMESPACE_NAME, HeartbeatHandler, NAMESPACE_URL) diff --git a/src/nbi/service/websocket_namespaces/hearthbeat/example_code.txt b/src/nbi/service/websocket_namespaces/hearthbeat/example_code.txt deleted file mode 100644 index 2384841d3..000000000 --- a/src/nbi/service/websocket_namespaces/hearthbeat/example_code.txt +++ /dev/null @@ -1,33 +0,0 @@ -thread_event = Event() - -# ... - -@socketio.on('collectLiveData') -def collectLiveData(): - global thread - with thread_lock: - if thread is None: - thread_event.set() - thread = socketio.start_background_task(background_thread, thread_event) - -def background_thread(event): - """Example of how to send server generated events to clients.""" - global thread - count = 0 - try: - while event.is_set(): - socketio.sleep(1) - count += 1 - socketio.emit('my_response', {'count': count}) - finally: - event.clear() - thread = None - -@socketio.on("stopCollectingLiveData") -def stopCollectingLiveData(): - global thread - thread_event.clear() - with thread_lock: - if thread is not None: - thread.join() - thread = None \ No newline at end of file diff --git a/src/nbi/service/well_known_meta/Resources.py b/src/nbi/service/well_known_meta/Resources.py new file mode 100644 index 000000000..78df84451 --- /dev/null +++ b/src/nbi/service/well_known_meta/Resources.py @@ -0,0 +1,35 @@ +# Copyright 2022-2024 ETSI 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. + +# RESTCONF .well-known endpoint (RFC 8040) + +from flask import jsonify +from flask_restful import Resource + +class WellKnownHostMeta(Resource): + def get(self): + response = { + 'restconf': { + 'capabilities': [ + 'urn:ietf:params:restconf:capability:defaults:1.0', + 'urn:ietf:params:restconf:capability:depth:1.0', + 'urn:ietf:params:restconf:capability:with-defaults:1.0' + ], + 'media-types': [ + 'application/yang-data+json', + 'application/yang-data+xml' + ] + } + } + return jsonify(response) diff --git a/src/nbi/service/restapi_resources/well_known_meta/__init__.py b/src/nbi/service/well_known_meta/__init__.py similarity index 71% rename from src/nbi/service/restapi_resources/well_known_meta/__init__.py rename to src/nbi/service/well_known_meta/__init__.py index d93bbd1ef..ddcf2f145 100644 --- a/src/nbi/service/restapi_resources/well_known_meta/__init__.py +++ b/src/nbi/service/well_known_meta/__init__.py @@ -13,9 +13,8 @@ # limitations under the License. -from nbi.service.NbiApplication import NbiApplication -from .WellKnownResource import RESOURCE_DESCRIPTOR +from ..NbiApplication import NbiApplication +from .Resources import WellKnownHostMeta def register_well_known(nbi_app : NbiApplication): - endpoint_name, resource_class, resource_url = RESOURCE_DESCRIPTOR - nbi_app.add_rest_api_resource(resource_class, resource_url, endpoint=endpoint_name) + nbi_app.add_rest_api_resource(WellKnownHostMeta, '/.well-known/host-meta', endpoint='sys.well_known') diff --git a/src/nbi/tests/Constants.py b/src/nbi/tests/Constants.py index 886ddcafa..2b2b0c4ec 100644 --- a/src/nbi/tests/Constants.py +++ b/src/nbi/tests/Constants.py @@ -12,74 +12,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -USERNAME = 'admin' -PASSWORD = 'admin' -# Ref: https://osm.etsi.org/wikipub/index.php/WIM -WIM_MAPPING = [ - { - 'device-id' : 'dev-1', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-1', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R1-EMU:13/1/2'}, - 'site-id': '1', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, - { - 'device-id' : 'dev-2', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-2', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R2-EMU:13/1/2'}, - 'site-id': '2', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, - { - 'device-id' : 'dev-3', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-3', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R3-EMU:13/1/2'}, - 'site-id': '3', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, - { - 'device-id' : 'dev-4', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-4', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R4-EMU:13/1/2'}, - 'site-id': '4', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, -] +from common.Constants import ServiceNameEnum +from common.Settings import get_service_baseurl_http, get_service_port_http -SERVICE_TYPE = 'ELINE' -SERVICE_CONNECTION_POINTS_1 = [ - {'service_endpoint_id': 'ep-1', - 'service_endpoint_encapsulation_type': 'dot1q', - 'service_endpoint_encapsulation_info': {'vlan': 1234}}, - {'service_endpoint_id': 'ep-2', - 'service_endpoint_encapsulation_type': 'dot1q', - 'service_endpoint_encapsulation_info': {'vlan': 1234}}, -] - -SERVICE_CONNECTION_POINTS_2 = [ - {'service_endpoint_id': 'ep-3', - 'service_endpoint_encapsulation_type': 'dot1q', - 'service_endpoint_encapsulation_info': {'vlan': 1234}}, -] \ No newline at end of file +USERNAME = 'admin' +PASSWORD = 'admin' +LOCAL_HOST = '127.0.0.1' +MOCKSERVICE_PORT = 10000 +NBI_SERVICE_PORT = get_service_port_http(ServiceNameEnum.NBI) + MOCKSERVICE_PORT # avoid privileged ports +NBI_SERVICE_PREFIX_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' +NBI_SERVICE_BASE_URL = 'http://{:s}:{:s}@{:s}:{:d}{:s}'.format( + USERNAME, PASSWORD, LOCAL_HOST, NBI_SERVICE_PORT, NBI_SERVICE_PREFIX_URL +) diff --git a/src/nbi/tests/HeartbeatClientNamespace.py b/src/nbi/tests/HeartbeatClientNamespace.py new file mode 100644 index 000000000..ae7ceffc4 --- /dev/null +++ b/src/nbi/tests/HeartbeatClientNamespace.py @@ -0,0 +1,45 @@ +# Copyright 2022-2024 ETSI 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 logging, socketio + +LOGGER = logging.getLogger(__name__) + +class HeartbeatClientNamespace(socketio.ClientNamespace): + def __init__(self): + self._num_heartbeats_received = 0 + super().__init__(namespace='/heartbeat') + + @property + def num_heartbeats_received(self): return self._num_heartbeats_received + + def on_connect(self): + LOGGER.info('[HeartbeatClientNamespace::on_connect] Connected') + + def on_disconnect(self, reason): + MSG = '[HeartbeatClientNamespace::on_disconnect] Disconnected!, reason: {:s}' + LOGGER.info(MSG.format(str(reason))) + + def on_uptime(self, data): + MSG = '[HeartbeatClientNamespace::on_uptime] data={:s}' + LOGGER.info(MSG.format(str(data))) + + assert 'uptime_seconds' in data, 'Missing "uptime_seconds" in response' + uptime = data['uptime_seconds'] + assert isinstance(uptime, (int, float)), '"uptime_seconds" is not a number' + + MSG = '[HeartbeatClientNamespace::on_uptime] Heartbeat: server uptime {:f} sec.' + LOGGER.info(MSG.format(uptime)) + + self._num_heartbeats_received += 1 diff --git a/src/nbi/tests/MockService_Dependencies.py b/src/nbi/tests/MockService_Dependencies.py index 322441367..6d8ad7e83 100644 --- a/src/nbi/tests/MockService_Dependencies.py +++ b/src/nbi/tests/MockService_Dependencies.py @@ -23,8 +23,8 @@ from common.tests.MockServicerImpl_Context import MockServicerImpl_Context from common.tests.MockServicerImpl_Service import MockServicerImpl_Service from common.tests.MockServicerImpl_Slice import MockServicerImpl_Slice from common.tools.service.GenericGrpcService import GenericGrpcService +from .Constants import LOCAL_HOST -LOCAL_HOST = '127.0.0.1' SERVICE_CONTEXT = ServiceNameEnum.CONTEXT SERVICE_SERVICE = ServiceNameEnum.SERVICE diff --git a/src/nbi/tests/MockWebServer.py b/src/nbi/tests/MockWebServer.py new file mode 100644 index 000000000..086b611e4 --- /dev/null +++ b/src/nbi/tests/MockWebServer.py @@ -0,0 +1,58 @@ +# Copyright 2022-2024 ETSI 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 logging, threading +from nbi.service.NbiApplication import NbiApplication +from nbi.service.etsi_bwm import register_etsi_bwm_api +from nbi.service.health_probes import register_health_probes +from nbi.service.ietf_l2vpn import register_ietf_l2vpn +from nbi.service.ietf_l3vpn import register_ietf_l3vpn +from nbi.service.ietf_network import register_ietf_network +from nbi.service.restconf_root import register_restconf_root +from nbi.service.tfs_api import register_tfs_api +from nbi.service.well_known_meta import register_well_known +from .Constants import LOCAL_HOST, NBI_SERVICE_PORT, NBI_SERVICE_PREFIX_URL + + +LOGGER = logging.getLogger(__name__) + +class MockWebServer(threading.Thread): + def __init__(self): + super().__init__(daemon=True) + + self.nbi_app = NbiApplication(base_url=NBI_SERVICE_PREFIX_URL) + register_health_probes(self.nbi_app) + register_well_known (self.nbi_app) + register_restconf_root(self.nbi_app) + register_tfs_api (self.nbi_app) + register_etsi_bwm_api (self.nbi_app) + #register_ietf_hardware(self.nbi_app) + register_ietf_l2vpn (self.nbi_app) + register_ietf_l3vpn (self.nbi_app) + register_ietf_network (self.nbi_app) + #register_ietf_nss (self.nbi_app) + #register_ietf_acl (self.nbi_app) + #register_qkd_app (self.nbi_app) + self.nbi_app.dump_configuration() + + def run(self): + try: + self.nbi_app._sio.run( + self.nbi_app.get_flask_app(), + host=LOCAL_HOST, port=NBI_SERVICE_PORT, + debug=True, use_reloader=False + ) + except: # pylint: disable=bare-except + LOGGER.exception('[MockWebServer::run] Unhandled Exception') diff --git a/src/nbi/tests/OSM_Constants.py b/src/nbi/tests/OSM_Constants.py new file mode 100644 index 000000000..99d0f70bc --- /dev/null +++ b/src/nbi/tests/OSM_Constants.py @@ -0,0 +1,83 @@ +# Copyright 2022-2024 ETSI 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. + + +# Ref: https://osm.etsi.org/wikipub/index.php/WIM +WIM_MAPPING = [ + { + 'device-id' : 'dev-1', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-1', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R1-EMU:13/1/2'}, + 'site-id': '1', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, + { + 'device-id' : 'dev-2', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-2', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R2-EMU:13/1/2'}, + 'site-id': '2', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, + { + 'device-id' : 'dev-3', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-3', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R3-EMU:13/1/2'}, + 'site-id': '3', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, + { + 'device-id' : 'dev-4', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-4', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R4-EMU:13/1/2'}, + 'site-id': '4', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, +] + +SERVICE_TYPE = 'ELINE' + +SERVICE_CONNECTION_POINTS_1 = [ + {'service_endpoint_id': 'ep-1', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, + {'service_endpoint_id': 'ep-2', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, +] + +SERVICE_CONNECTION_POINTS_2 = [ + {'service_endpoint_id': 'ep-3', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, +] diff --git a/src/nbi/tests/PrepareTestScenario.py b/src/nbi/tests/PrepareTestScenario.py index c0c4d41c8..dd09db1d8 100644 --- a/src/nbi/tests/PrepareTestScenario.py +++ b/src/nbi/tests/PrepareTestScenario.py @@ -17,28 +17,20 @@ from typing import Any, Dict, List, Optional, Set, Union from common.Constants import ServiceNameEnum from common.Settings import ( ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_HTTP, - get_env_var_name, get_service_baseurl_http, get_service_port_http + get_env_var_name ) from context.client.ContextClient import ContextClient from nbi.service.NbiApplication import NbiApplication -from nbi.service.rest_server.nbi_plugins import register_restconf -from nbi.service.rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api -from nbi.service.rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn -from nbi.service.rest_server.nbi_plugins.ietf_l3vpn import register_ietf_l3vpn -from nbi.service.rest_server.nbi_plugins.ietf_network import register_ietf_network -from nbi.service.rest_server.nbi_plugins.tfs_api import register_tfs_api -from nbi.service.websocket_namespaces.hearthbeat import register_heartbeat from nbi.tests.MockService_Dependencies import MockService_Dependencies from service.client.ServiceClient import ServiceClient from slice.client.SliceClient import SliceClient from tests.tools.mock_osm.MockOSM import MockOSM -from .Constants import USERNAME, PASSWORD, WIM_MAPPING - +from .Constants import ( + LOCAL_HOST, MOCKSERVICE_PORT, NBI_SERVICE_BASE_URL, NBI_SERVICE_PORT, USERNAME, PASSWORD +) +from .OSM_Constants import WIM_MAPPING +from .MockWebServer import MockWebServer -LOCAL_HOST = '127.0.0.1' -MOCKSERVICE_PORT = 10000 -NBI_SERVICE_PORT = MOCKSERVICE_PORT + get_service_port_http(ServiceNameEnum.NBI) # avoid privileged ports -NBI_SERVICE_BASE_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) @@ -51,49 +43,45 @@ def mock_service(): yield _service _service.stop() + @pytest.fixture(scope='session') -def nbi_service_rest(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument - _nbi_app = NbiApplication(base_url=NBI_SERVICE_BASE_URL) - register_etsi_bwm_api (_nbi_app) - #register_ietf_hardware(_nbi_app) - register_ietf_l2vpn (_nbi_app) - register_ietf_l3vpn (_nbi_app) - register_ietf_network (_nbi_app) - #register_ietf_nss (_nbi_app) - #register_ietf_acl (_nbi_app) - #register_qkd_app (_nbi_app) - register_tfs_api (_nbi_app) - register_restconf (_nbi_app) - register_heartbeat (_nbi_app) - _nbi_app.dump_configuration() - - - _rest_server = RestServer() - _rest_server.start() - time.sleep(1) # bring time for the server to start - yield _rest_server - _rest_server.shutdown() - _rest_server.join() +def nbi_application( + mock_service : MockService_Dependencies # pylint: disable=redefined-outer-name, unused-argument +) -> NbiApplication: + mock_web_server = MockWebServer() + mock_web_server.start() + time.sleep(1) # bring time for the server to start + yield mock_web_server.nbi_app + mock_web_server.join(timeout=1) + @pytest.fixture(scope='session') -def osm_wim(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def osm_wim( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name, unused-argument +) -> MockOSM: wim_url = 'http://{:s}:{:d}'.format(LOCAL_HOST, NBI_SERVICE_PORT) return MockOSM(wim_url, WIM_MAPPING, USERNAME, PASSWORD) @pytest.fixture(scope='session') -def context_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument +def context_client( + mock_service : MockService_Dependencies # pylint: disable=redefined-outer-name, unused-argument +) -> ContextClient: _client = ContextClient() yield _client _client.close() @pytest.fixture(scope='session') -def service_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument +def service_client( + mock_service : MockService_Dependencies # pylint: disable=redefined-outer-name, unused-argument +) -> ServiceClient: _client = ServiceClient() yield _client _client.close() @pytest.fixture(scope='session') -def slice_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument +def slice_client( + mock_service : MockService_Dependencies # pylint: disable=redefined-outer-name, unused-argument +) -> SliceClient: _client = SliceClient() yield _client _client.close() @@ -117,10 +105,7 @@ def do_rest_request( allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, logger : Optional[logging.Logger] = None ) -> Optional[Union[Dict, List]]: - base_url = get_service_baseurl_http(ServiceNameEnum.NBI) or '' - request_url = 'http://{:s}:{:s}@{:s}:{:d}{:s}{:s}'.format( - USERNAME, PASSWORD, LOCAL_HOST, NBI_SERVICE_PORT, str(base_url), url - ) + request_url = NBI_SERVICE_BASE_URL + url if logger is not None: msg = 'Request: {:s} {:s}'.format(str(method.value).upper(), str(request_url)) if body is not None: msg += ' body={:s}'.format(str(body)) diff --git a/src/nbi/tests/test__nbi_core.py b/src/nbi/tests/test__nbi_core.py new file mode 100644 index 000000000..80a3d4b10 --- /dev/null +++ b/src/nbi/tests/test__nbi_core.py @@ -0,0 +1,61 @@ +# Copyright 2022-2024 ETSI 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. + + +# Enable eventlet for async networking +# NOTE: monkey_patch needs to be executed before importing any other module. +import eventlet +eventlet.monkey_patch() + +#pylint: disable=wrong-import-position +import logging, requests, socketio +from nbi.service.NbiApplication import NbiApplication +from .Constants import NBI_SERVICE_BASE_URL +from .HeartbeatClientNamespace import HeartbeatClientNamespace +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + mock_service, nbi_application, do_rest_get_request +) + + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + + +def test_restapi_get_healthz( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: + nbi_application.dump_configuration() + do_rest_get_request('/healthz', expected_status_codes={requests.codes['OK']}) + + +def test_websocket_get_heartbeat( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: + nbi_application.dump_configuration() + + heartbeat_client_namespace = HeartbeatClientNamespace() + + sio = socketio.Client(logger=True) + sio.register_namespace(heartbeat_client_namespace) + sio.connect(NBI_SERVICE_BASE_URL) + #sio.send('Hello WebSocket!', namespace='/heartbeat') + #sio.emit('message', 'Hello WebSocket!', namespace='/heartbeat') + sio.sleep(10) + #sio.wait() + sio.shutdown() + + # Ensure we get ~1 heartbeat/second + num_heartbeats_received = heartbeat_client_namespace.num_heartbeats_received + assert num_heartbeats_received >= 9 and num_heartbeats_received <= 11 diff --git a/src/nbi/tests/test_etsi_bwm.py b/src/nbi/tests/test_etsi_bwm.py index 9400de00f..568ab2ff7 100644 --- a/src/nbi/tests/test_etsi_bwm.py +++ b/src/nbi/tests/test_etsi_bwm.py @@ -12,6 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +# Enable eventlet for async networking +# NOTE: monkey_patch needs to be executed before importing any other module. +import eventlet +eventlet.monkey_patch() + +#pylint: disable=wrong-import-position import deepdiff, json, logging, pytest from typing import Dict from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME @@ -20,13 +26,14 @@ from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_lo from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Topology import json_topology_id from context.client.ContextClient import ContextClient -from nbi.service.rest_server import RestServer +from nbi.service.NbiApplication import NbiApplication from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - do_rest_delete_request, do_rest_get_request, do_rest_patch_request, do_rest_post_request, do_rest_put_request, - mock_service, nbi_service_rest, context_client + mock_service, nbi_application, context_client, + do_rest_delete_request, do_rest_get_request, do_rest_patch_request, do_rest_post_request, do_rest_put_request ) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) @@ -78,13 +85,19 @@ def test_prepare_environment(context_client : ContextClient) -> None: # pylint: assert len(response.service_ids ) == 0 assert len(response.slice_ids ) == 0 -def test_get_allocations_empty(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument +def test_get_allocations_empty( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name, unused-argument +) -> None: URL = BASE_URL + '/bw_allocations' retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) assert len(retrieved_data) == 0 -def test_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument +def test_allocation( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name +) -> None: URL = BASE_URL + '/bw_allocations' data = { "appInsId" : "service_uuid_01", @@ -105,7 +118,10 @@ def test_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: di storage['service_uuid_01'] = 'service_uuid_01' -def test_get_allocations(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument +def test_get_allocations( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name +) -> None: assert 'service_uuid_01' in storage URL = BASE_URL + '/bw_allocations' retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) @@ -134,7 +150,10 @@ def test_get_allocations(nbi_service_rest : RestServer, storage : Dict): # pylin assert len(diff_data) == 0 -def test_get_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument +def test_get_allocation( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name +) -> None: assert 'service_uuid_01' in storage URL = BASE_URL + '/bw_allocations/service_uuid_01' retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) @@ -160,7 +179,10 @@ def test_get_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint assert len(diff_data) == 0 -def test_put_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument +def test_put_allocation( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name +) -> None: assert 'service_uuid_01' in storage URL = BASE_URL + '/bw_allocations/service_uuid_01' changed_allocation = { @@ -185,7 +207,10 @@ def test_put_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint assert len(diff_data) == 0 -def test_patch_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument +def test_patch_allocation( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name +) -> None: assert 'service_uuid_01' in storage URL = BASE_URL + '/bw_allocations/service_uuid_01' difference = { @@ -213,13 +238,19 @@ def test_patch_allocation(nbi_service_rest : RestServer, storage : Dict): # pyli assert len(diff_data) == 0 -def test_delete_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument +def test_delete_allocation( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name +) -> None: assert 'service_uuid_01' in storage URL = BASE_URL + '/bw_allocations/service_uuid_01' do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={200}) -def test_get_allocations_empty_final(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument +def test_get_allocations_empty_final( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name, unused-argument +) -> None: URL = BASE_URL + '/bw_allocations' retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) diff --git a/src/nbi/tests/test_ietf_l2vpn.py b/src/nbi/tests/test_ietf_l2vpn.py index 7bed8ff5d..37b7d60b0 100644 --- a/src/nbi/tests/test_ietf_l2vpn.py +++ b/src/nbi/tests/test_ietf_l2vpn.py @@ -12,6 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +# Enable eventlet for async networking +# NOTE: monkey_patch needs to be executed before importing any other module. +import eventlet +eventlet.monkey_patch() + +#pylint: disable=wrong-import-position import logging from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId @@ -19,12 +25,13 @@ from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_lo from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from tests.tools.mock_osm.MockOSM import MockOSM -from .Constants import SERVICE_CONNECTION_POINTS_1, SERVICE_CONNECTION_POINTS_2, SERVICE_TYPE +from .OSM_Constants import SERVICE_CONNECTION_POINTS_1, SERVICE_CONNECTION_POINTS_2, SERVICE_TYPE from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - mock_service, nbi_service_rest, osm_wim, context_client + mock_service, nbi_application, osm_wim, context_client ) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) diff --git a/src/nbi/tests/test_ietf_l3vpn.py b/src/nbi/tests/test_ietf_l3vpn.py index 0f214661f..b526611c6 100644 --- a/src/nbi/tests/test_ietf_l3vpn.py +++ b/src/nbi/tests/test_ietf_l3vpn.py @@ -12,6 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +# Enable eventlet for async networking +# NOTE: monkey_patch needs to be executed before importing any other module. +import eventlet +eventlet.monkey_patch() + +#pylint: disable=wrong-import-position import json, logging, pytest from typing import Dict from common.Constants import DEFAULT_CONTEXT_NAME @@ -21,13 +27,14 @@ from common.tools.descriptor.Loader import ( ) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from nbi.service.rest_server.RestServer import RestServer +from nbi.service.NbiApplication import NbiApplication from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - do_rest_delete_request, do_rest_get_request, do_rest_post_request, - mock_service, nbi_service_rest, osm_wim, context_client + mock_service, nbi_application, context_client, + do_rest_delete_request, do_rest_get_request, do_rest_post_request ) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) @@ -55,45 +62,57 @@ def test_prepare_environment(context_client : ContextClient) -> None: # pylint: assert len(response.service_ids ) == 0 assert len(response.slice_ids ) == 0 -# pylint: disable=redefined-outer-name, unused-argument -def test_create_svc1(nbi_service_rest : RestServer, storage : Dict): +def test_create_svc1( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name, unused-argument +) -> None: with open(SVC1_DATA_FILE, 'r', encoding='UTF-8') as f: svc1_data = json.load(f) URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' do_rest_post_request(URL, body=svc1_data, logger=LOGGER, expected_status_codes={201}) storage['svc1-uuid'] = svc1_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] -# pylint: disable=redefined-outer-name, unused-argument -def test_create_svc2(nbi_service_rest : RestServer, storage : Dict): +def test_create_svc2( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name, unused-argument +) -> None: with open(SVC2_DATA_FILE, 'r', encoding='UTF-8') as f: svc2_data = json.load(f) URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' do_rest_post_request(URL, body=svc2_data, logger=LOGGER, expected_status_codes={201}) storage['svc2-uuid'] = svc2_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] -# pylint: disable=redefined-outer-name, unused-argument -def test_get_state_svc1(nbi_service_rest : RestServer, storage : Dict): +def test_get_state_svc1( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name, unused-argument +) -> None: assert 'svc1-uuid' in storage service_uuid = storage['svc1-uuid'] URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) -# pylint: disable=redefined-outer-name, unused-argument -def test_get_state_svc2(nbi_service_rest : RestServer, storage : Dict): +def test_get_state_svc2( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name, unused-argument +) -> None: assert 'svc2-uuid' in storage service_uuid = storage['svc2-uuid'] URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) -# pylint: disable=redefined-outer-name, unused-argument -def test_delete_svc1(nbi_service_rest : RestServer, storage : Dict): +def test_delete_svc1( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name, unused-argument +) -> None: assert 'svc1-uuid' in storage service_uuid = storage['svc1-uuid'] URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={204}) -# pylint: disable=redefined-outer-name, unused-argument -def test_delete_svc2(nbi_service_rest : RestServer, storage : Dict): +def test_delete_svc2( + nbi_application : NbiApplication, # pylint: disable=redefined-outer-name, unused-argument + storage : Dict # pylint: disable=redefined-outer-name, unused-argument +) -> None: assert 'svc2-uuid' in storage service_uuid = storage['svc2-uuid'] URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) diff --git a/src/nbi/tests/test_ietf_network.py b/src/nbi/tests/test_ietf_network.py index 68337d0a8..182f0ecf7 100644 --- a/src/nbi/tests/test_ietf_network.py +++ b/src/nbi/tests/test_ietf_network.py @@ -12,6 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +# Enable eventlet for async networking +# NOTE: monkey_patch needs to be executed before importing any other module. +import eventlet +eventlet.monkey_patch() + +#pylint: disable=wrong-import-position import deepdiff, json, logging, operator, os from typing import Dict from common.Constants import DEFAULT_CONTEXT_NAME @@ -21,16 +27,18 @@ from common.tools.descriptor.Loader import ( ) from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient -from nbi.service.rest_server import RestServer +from nbi.service.NbiApplication import NbiApplication # Explicitly state NBI to use PyangBind Renderer for this test os.environ['IETF_NETWORK_RENDERER'] = 'PYANGBIND' from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - do_rest_get_request, mock_service, nbi_service_rest, osm_wim, context_client + mock_service, nbi_application, context_client, + do_rest_get_request ) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) @@ -80,7 +88,9 @@ def sort_data(data : Dict) -> None: key=operator.itemgetter('link-id') ) -def test_rest_get_networks(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_networks( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: with open(TARGET_DATA_FILE, 'r', encoding='UTF-8') as f: target_data = json.load(f) URL = '/restconf/data/ietf-network:networks' diff --git a/src/nbi/tests/test_slice.py b/src/nbi/tests/test_slice.py index fe112e6fc..fab693d7e 100644 --- a/src/nbi/tests/test_slice.py +++ b/src/nbi/tests/test_slice.py @@ -14,7 +14,7 @@ import json, random, uuid from typing import Dict, Tuple -from nbi.service.rest_server.nbi_plugins.ietf_network_slice.bindings.network_slice_services import ( +from nbi.service.ietf_network_slice.bindings.network_slice_services import ( NetworkSliceServices ) diff --git a/src/nbi/tests/test_slice_2.py b/src/nbi/tests/test_slice_2.py index 5722e3d92..398b3be57 100644 --- a/src/nbi/tests/test_slice_2.py +++ b/src/nbi/tests/test_slice_2.py @@ -1,10 +1,10 @@ -# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI 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 +# 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, @@ -12,12 +12,18 @@ # See the License for the specific language governing permissions and # limitations under the License. +# Enable eventlet for async networking +# NOTE: monkey_patch needs to be executed before importing any other module. +import eventlet +eventlet.monkey_patch() + +#pylint: disable=wrong-import-position import json from typing import Optional from common.proto.context_pb2 import ConfigRule, ServiceConfig, SliceList from context.client.ContextClient import ContextClient -from nbi.service.rest_server.nbi_plugins.ietf_network_slice.ietf_slice_handler import ( +from nbi.service.ietf_network_slice.ietf_slice_handler import ( IETFSliceHandler, ) diff --git a/src/nbi/tests/test_tfs_api.py b/src/nbi/tests/test_tfs_api.py index eab2f8d9b..77eb7fadb 100644 --- a/src/nbi/tests/test_tfs_api.py +++ b/src/nbi/tests/test_tfs_api.py @@ -12,6 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +# Enable eventlet for async networking +# NOTE: monkey_patch needs to be executed before importing any other module. +import eventlet +eventlet.monkey_patch() + +#pylint: disable=wrong-import-position import logging, urllib from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME from common.proto.context_pb2 import ContextId @@ -29,13 +35,14 @@ from common.type_checkers.Assertions import ( validate_topologies, validate_topology, validate_topology_ids ) from context.client.ContextClient import ContextClient -from nbi.service.rest_server.RestServer import RestServer +from nbi.service.NbiApplication import NbiApplication from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - mock_service, nbi_service_rest, context_client, + mock_service, nbi_application, context_client, do_rest_get_request ) + LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) @@ -63,15 +70,21 @@ def test_prepare_environment(context_client : ContextClient) -> None: # pylint: # ----- Context -------------------------------------------------------------------------------------------------------- -def test_rest_get_context_ids(nbi_service_rest: RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_context_ids( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: reply = do_rest_get_request('/tfs-api/context_ids') validate_context_ids(reply) -def test_rest_get_contexts(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_contexts( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: reply = do_rest_get_request('/tfs-api/contexts') validate_contexts(reply) -def test_rest_get_context(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_context( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) reply = do_rest_get_request('/tfs-api/context/{:s}'.format(context_uuid)) validate_context(reply) @@ -79,17 +92,23 @@ def test_rest_get_context(nbi_service_rest : RestServer): # pylint: disable=rede # ----- Topology ------------------------------------------------------------------------------------------------------- -def test_rest_get_topology_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_topology_ids( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) reply = do_rest_get_request('/tfs-api/context/{:s}/topology_ids'.format(context_uuid)) validate_topology_ids(reply) -def test_rest_get_topologies(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_topologies( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) reply = do_rest_get_request('/tfs-api/context/{:s}/topologies'.format(context_uuid)) validate_topologies(reply) -def test_rest_get_topology(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_topology( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) topology_uuid = urllib.parse.quote(DEFAULT_TOPOLOGY_NAME) reply = do_rest_get_request('/tfs-api/context/{:s}/topology/{:s}'.format(context_uuid, topology_uuid)) @@ -98,15 +117,21 @@ def test_rest_get_topology(nbi_service_rest : RestServer): # pylint: disable=red # ----- Device --------------------------------------------------------------------------------------------------------- -def test_rest_get_device_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_device_ids( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: reply = do_rest_get_request('/tfs-api/device_ids') validate_device_ids(reply) -def test_rest_get_devices(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_devices( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: reply = do_rest_get_request('/tfs-api/devices') validate_devices(reply) -def test_rest_get_device(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_device( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: device_uuid = urllib.parse.quote('R1', safe='') reply = do_rest_get_request('/tfs-api/device/{:s}'.format(device_uuid)) validate_device(reply) @@ -114,15 +139,21 @@ def test_rest_get_device(nbi_service_rest : RestServer): # pylint: disable=redef # ----- Link ----------------------------------------------------------------------------------------------------------- -def test_rest_get_link_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_link_ids( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: reply = do_rest_get_request('/tfs-api/link_ids') validate_link_ids(reply) -def test_rest_get_links(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_links( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: reply = do_rest_get_request('/tfs-api/links') validate_links(reply) -def test_rest_get_link(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_link( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: link_uuid = urllib.parse.quote('R1/502==R2/501', safe='') reply = do_rest_get_request('/tfs-api/link/{:s}'.format(link_uuid)) validate_link(reply) @@ -130,17 +161,23 @@ def test_rest_get_link(nbi_service_rest : RestServer): # pylint: disable=redefin # ----- Service -------------------------------------------------------------------------------------------------------- -def test_rest_get_service_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_service_ids( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) reply = do_rest_get_request('/tfs-api/context/{:s}/service_ids'.format(context_uuid)) validate_service_ids(reply) -def test_rest_get_services(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_services( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) reply = do_rest_get_request('/tfs-api/context/{:s}/services'.format(context_uuid)) validate_services(reply) -def test_rest_get_service(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_service( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}'.format(context_uuid, service_uuid)) @@ -149,17 +186,23 @@ def test_rest_get_service(nbi_service_rest : RestServer): # pylint: disable=rede # ----- Slice ---------------------------------------------------------------------------------------------------------- -def test_rest_get_slice_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_slice_ids( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) reply = do_rest_get_request('/tfs-api/context/{:s}/slice_ids'.format(context_uuid)) validate_slice_ids(reply) -def test_rest_get_slices(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_slices( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) reply = do_rest_get_request('/tfs-api/context/{:s}/slices'.format(context_uuid)) validate_slices(reply) -def test_rest_get_slice(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_slice( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) slice_uuid = urllib.parse.quote('SLC:R1-R2-R3', safe='') reply = do_rest_get_request('/tfs-api/context/{:s}/slice/{:s}'.format(context_uuid, slice_uuid)) @@ -168,34 +211,46 @@ def test_rest_get_slice(nbi_service_rest : RestServer): # pylint: disable=redefi # ----- Connection ----------------------------------------------------------------------------------------------------- -def test_rest_get_connection_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_connection_ids( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}/connection_ids'.format(context_uuid, service_uuid)) validate_connection_ids(reply) -def test_rest_get_connections(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_connections( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}/connections'.format(context_uuid, service_uuid)) validate_connections(reply) -def test_rest_get_connection(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +def test_rest_get_connection( + nbi_application : NbiApplication # pylint: disable=redefined-outer-name +) -> None: connection_uuid = urllib.parse.quote('CON:R1/200==R2/200:1', safe='') reply = do_rest_get_request('/tfs-api/connection/{:s}'.format(connection_uuid)) validate_connection(reply) # ----- Policy --------------------------------------------------------------------------------------------------------- -#def test_rest_get_policyrule_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +#def test_rest_get_policyrule_ids( +# nbi_application : NbiApplication # pylint: disable=redefined-outer-name +#) -> None: # reply = do_rest_get_request('/tfs-api/policyrule_ids') # validate_policyrule_ids(reply) -#def test_rest_get_policyrules(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +#def test_rest_get_policyrules( +# nbi_application : NbiApplication # pylint: disable=redefined-outer-name +#) -> None: # reply = do_rest_get_request('/tfs-api/policyrules') # validate_policyrules(reply) -#def test_rest_get_policyrule(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +#def test_rest_get_policyrule( +# nbi_application : NbiApplication # pylint: disable=redefined-outer-name +#) -> None: # policyrule_uuid_quoted = urllib.parse.quote(policyrule_uuid, safe='') # reply = do_rest_get_request('/tfs-api/policyrule/{:s}'.format(policyrule_uuid_quoted)) # validate_policyrule(reply) -- GitLab From 8b95682e0915342b39e3594bb99d8fe253f16f49 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 5 Feb 2025 10:46:15 +0000 Subject: [PATCH 048/213] NBI component: - Enabled live logs and increased verbosity in CI/CD unit tests --- src/nbi/.gitlab-ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 0bcf058fb..b1ad62fcf 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -72,11 +72,11 @@ unit_test nbi: - sleep 5 - docker ps -a - docker logs $IMAGE_NAME - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' after_script: -- GitLab From 27b4a679825b7cd368891bfb92a556cc0cba97e7 Mon Sep 17 00:00:00 2001 From: Lluis Gifre Renom <lluis.gifre@cttc.es> Date: Wed, 5 Feb 2025 13:59:31 +0000 Subject: [PATCH 049/213] NBI component: - Added missing unitary test --- src/nbi/.gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index b1ad62fcf..163835f75 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -72,6 +72,7 @@ unit_test nbi: - sleep 5 - docker ps -a - docker logs $IMAGE_NAME + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test__nbi_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_nbi_core.xml" - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" -- GitLab From f4e6ea6d37148a1926ea8f28e53462cd2e13751e Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Thu, 6 Feb 2025 08:56:06 +0000 Subject: [PATCH 050/213] NBI component: - Reorganized test bash and python scripts - Updated CI/CD unit test --- .../run_tests_locally-nbi-core.sh | 12 +++++++++--- src/nbi/.gitlab-ci.yml | 2 +- src/nbi/tests/{test__nbi_core.py => test_core.py} | 0 3 files changed, 10 insertions(+), 4 deletions(-) rename src/nbi/run_test.sh => scripts/run_tests_locally-nbi-core.sh (65%) rename src/nbi/tests/{test__nbi_core.py => test_core.py} (100%) diff --git a/src/nbi/run_test.sh b/scripts/run_tests_locally-nbi-core.sh similarity index 65% rename from src/nbi/run_test.sh rename to scripts/run_tests_locally-nbi-core.sh index 07beb9837..e6eb06a62 100755 --- a/src/nbi/run_test.sh +++ b/scripts/run_tests_locally-nbi-core.sh @@ -13,7 +13,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -export FLASK_ENV=development -# Add live logs with: -o log_cli=true -python -m pytest --log-level=DEBUG --verbose nbi/tests/test_nbi.py +PROJECTDIR=`pwd` + +cd $PROJECTDIR/src +RCFILE=$PROJECTDIR/coverage/.coveragerc + +# Run unitary tests and analyze coverage of code at same time +# helpful pytest flags: --log-level=INFO -o log_cli=true --verbose --maxfail=1 --durations=0 +coverage run --rcfile=$RCFILE --append -m pytest --log-level=INFO --verbose \ + nbi/tests/test_core.py diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 163835f75..10e695d11 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -72,7 +72,7 @@ unit_test nbi: - sleep 5 - docker ps -a - docker logs $IMAGE_NAME - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test__nbi_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_nbi_core.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml" - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" diff --git a/src/nbi/tests/test__nbi_core.py b/src/nbi/tests/test_core.py similarity index 100% rename from src/nbi/tests/test__nbi_core.py rename to src/nbi/tests/test_core.py -- GitLab From 80fdd42004c28d201d14c5884757e97bf2a21848 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Thu, 6 Feb 2025 12:14:27 +0000 Subject: [PATCH 051/213] NBI Component: - Fixed Heartbeat Thread - Added termination conditions to Heartbeat Namespace - Fixed issue reporting configured namespaces - Separated tests/MockService to run in a completely isolated process to prevent collisions with eventlet - Fixed SECRET_KEY for Flask --- src/nbi/Config.py | 3 + src/nbi/service/NbiApplication.py | 17 +++-- .../service/health_probes/HeartbeatThread.py | 22 ++++-- src/nbi/service/health_probes/Namespaces.py | 3 + src/nbi/tests/MockService_Dependencies.py | 50 +++++++----- src/nbi/tests/PrepareTestScenario.py | 76 ++++++++++++++----- src/nbi/tests/test_core.py | 2 +- 7 files changed, 126 insertions(+), 47 deletions(-) diff --git a/src/nbi/Config.py b/src/nbi/Config.py index 83a350058..7fffa2428 100644 --- a/src/nbi/Config.py +++ b/src/nbi/Config.py @@ -18,3 +18,6 @@ from werkzeug.security import generate_password_hash RESTAPI_USERS = { # TODO: implement a database of credentials and permissions 'admin': generate_password_hash('admin'), } + +# Rebuild using: "python -c 'import secrets; print(secrets.token_hex())'" +SECRET_KEY = '2b8ab76763d81f7bced786de8ba40bd67eea6ff79217a711eb5f8d1f19c145c1' diff --git a/src/nbi/service/NbiApplication.py b/src/nbi/service/NbiApplication.py index ef2659415..2216177ff 100644 --- a/src/nbi/service/NbiApplication.py +++ b/src/nbi/service/NbiApplication.py @@ -13,11 +13,12 @@ # limitations under the License. -import logging, time +import logging, socketio, time from typing import Any, List, Optional, Tuple from flask import Flask, request from flask_restful import Api, Resource from flask_socketio import Namespace, SocketIO +from nbi.Config import SECRET_KEY LOGGER = logging.getLogger(__name__) @@ -36,7 +37,7 @@ class NbiApplication: self.base_url = base_url self._app = Flask(__name__) - self._app.config['SECRET_KEY'] = 'secret!' + self._app.config['SECRET_KEY'] = SECRET_KEY self._app.after_request(log_request) self._api = Api(self._app, prefix=base_url) #socketio_path = '/'.join([base_url.rstrip('/'), 'socket.io']) @@ -64,6 +65,12 @@ class NbiApplication: def get_flask_app(self) -> Flask: return self._app + def get_flask_api(self) -> Api: + return self._api + + def get_socketio_server(self) -> Optional[socketio.Server]: + return self._sio.server + def dump_configuration(self) -> None: LOGGER.debug('Configured REST-API Resources:') for resource in self._api.resources: @@ -73,14 +80,12 @@ class NbiApplication: for rule in self._app.url_map.iter_rules(): LOGGER.debug(' - {:s}'.format(str(rule))) - # TODO: find a way to report configured namespaces, for some reason, - # those data structures become emptied when SocketIO server starts. LOGGER.debug('Configured SocketIO/WebSocket Namespaces:') - LOGGER.debug(' WARNING: Might report an empty list of namespaces even when') - LOGGER.debug(' they are properly configured. To be fixed.') for handler in self._sio.handlers: LOGGER.debug(' - {:s}'.format(str(handler))) for namespace in self._sio.namespace_handlers: LOGGER.debug(' - {:s}'.format(str(namespace))) for namespace in self._sio.server.handlers: LOGGER.debug(' - {:s}'.format(str(namespace))) + for namespace in self._sio.server.namespace_handlers: + LOGGER.debug(' - {:s}'.format(str(namespace))) diff --git a/src/nbi/service/health_probes/HeartbeatThread.py b/src/nbi/service/health_probes/HeartbeatThread.py index 0b7158a09..c49f4ab49 100644 --- a/src/nbi/service/health_probes/HeartbeatThread.py +++ b/src/nbi/service/health_probes/HeartbeatThread.py @@ -20,21 +20,31 @@ LOGGER = logging.getLogger(__name__) class HeartbeatThread(threading.Thread): def __init__(self, namespace : socketio.Namespace): super().__init__(daemon=True) + self._terminate = threading.Event() self._namespace = namespace + def start(self): + self._terminate.clear() + return super().start() + + def stop(self) -> None: + self._terminate.set() + def run(self): + LOGGER.debug('[HeartbeatThread::run] begin') try: - while True: + while not self._terminate.is_set(): + LOGGER.debug('[HeartbeatThread::run] Running...') time.sleep(HEARTHBEAT_INTERVAL) - uptime = time.time() - START_TIME - LOGGER.info('[HeartbeatThread::run] emitting...') + LOGGER.debug('[HeartbeatThread::run] Interval elapsed') server : socketio.Server = self._namespace.server if server is None: continue - data = {'uptime_seconds': uptime} + LOGGER.debug('[HeartbeatThread::run] emitting...') + data = {'uptime_seconds': time.time() - START_TIME} server.emit('uptime', data, namespace=SIO_NAMESPACE, to=SIO_ROOM) - - LOGGER.info('[HeartbeatThread::run] emitted') + LOGGER.debug('[HeartbeatThread::run] emitted') except: # pylint: disable=bare-except LOGGER.exception('[HeartbeatThread::run] thread failed') + LOGGER.debug('[HeartbeatThread::run] end') diff --git a/src/nbi/service/health_probes/Namespaces.py b/src/nbi/service/health_probes/Namespaces.py index 9fba4ba71..9f7517d9b 100644 --- a/src/nbi/service/health_probes/Namespaces.py +++ b/src/nbi/service/health_probes/Namespaces.py @@ -26,6 +26,9 @@ class HeartbeatServerNamespace(Namespace): self._thread = HeartbeatThread(self) self._thread.start() + def stop_thread(self) -> None: + self._thread.stop() + def on_connect(self, auth): MSG = '[HeartbeatServerNamespace::on_connect] Client connect: sid={:s}, auth={:s}' LOGGER.info(MSG.format(str(request.sid), str(auth))) diff --git a/src/nbi/tests/MockService_Dependencies.py b/src/nbi/tests/MockService_Dependencies.py index 6d8ad7e83..8535fd56d 100644 --- a/src/nbi/tests/MockService_Dependencies.py +++ b/src/nbi/tests/MockService_Dependencies.py @@ -12,10 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import os -from typing import Union -from common.Constants import ServiceNameEnum -from common.Settings import ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name +import logging, signal, sys, threading from common.proto.context_pb2_grpc import add_ContextServiceServicer_to_server from common.proto.service_pb2_grpc import add_ServiceServiceServicer_to_server from common.proto.slice_pb2_grpc import add_SliceServiceServicer_to_server @@ -23,18 +20,21 @@ from common.tests.MockServicerImpl_Context import MockServicerImpl_Context from common.tests.MockServicerImpl_Service import MockServicerImpl_Service from common.tests.MockServicerImpl_Slice import MockServicerImpl_Slice from common.tools.service.GenericGrpcService import GenericGrpcService -from .Constants import LOCAL_HOST +from .Constants import LOCAL_HOST, MOCKSERVICE_PORT -SERVICE_CONTEXT = ServiceNameEnum.CONTEXT -SERVICE_SERVICE = ServiceNameEnum.SERVICE -SERVICE_SLICE = ServiceNameEnum.SLICE +logging.basicConfig(level=logging.DEBUG, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") +LOGGER = logging.getLogger(__name__) class MockService_Dependencies(GenericGrpcService): # Mock Service implementing Context, Service and Slice to simplify unitary tests of NBI - def __init__(self, bind_port: Union[str, int]) -> None: - super().__init__(bind_port, LOCAL_HOST, enable_health_servicer=False, cls_name='MockService') + def __init__(self) -> None: + super().__init__( + MOCKSERVICE_PORT, LOCAL_HOST, + enable_health_servicer=False, + cls_name='MockService' + ) # pylint: disable=attribute-defined-outside-init def install_servicers(self): @@ -47,12 +47,28 @@ class MockService_Dependencies(GenericGrpcService): self.slice_servicer = MockServicerImpl_Slice() add_SliceServiceServicer_to_server(self.slice_servicer, self.server) - def configure_env_vars(self): - os.environ[get_env_var_name(SERVICE_CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) - os.environ[get_env_var_name(SERVICE_CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) +TERMINATE = threading.Event() - os.environ[get_env_var_name(SERVICE_SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) - os.environ[get_env_var_name(SERVICE_SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) +def signal_handler(signal, frame): # pylint: disable=redefined-outer-name,unused-argument + LOGGER.warning('Terminate signal received') + TERMINATE.set() - os.environ[get_env_var_name(SERVICE_SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) - os.environ[get_env_var_name(SERVICE_SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) +def main(): + LOGGER.info('Starting...') + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + + grpc_service = MockService_Dependencies() + grpc_service.start() + + # Wait for Ctrl+C or termination signal + while not TERMINATE.wait(timeout=1.0): pass + + LOGGER.info('Terminating...') + grpc_service.stop() + + LOGGER.info('Bye') + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/nbi/tests/PrepareTestScenario.py b/src/nbi/tests/PrepareTestScenario.py index dd09db1d8..8852aa2c4 100644 --- a/src/nbi/tests/PrepareTestScenario.py +++ b/src/nbi/tests/PrepareTestScenario.py @@ -12,46 +12,88 @@ # See the License for the specific language governing permissions and # limitations under the License. -import enum, logging, os, pytest, requests, time +import enum, logging, os, pytest, requests, subprocess, time from typing import Any, Dict, List, Optional, Set, Union +from socketio import Namespace from common.Constants import ServiceNameEnum from common.Settings import ( - ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_HTTP, - get_env_var_name + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, + ENVVAR_SUFIX_SERVICE_PORT_HTTP, get_env_var_name ) from context.client.ContextClient import ContextClient from nbi.service.NbiApplication import NbiApplication -from nbi.tests.MockService_Dependencies import MockService_Dependencies +from nbi.service.health_probes.Constants import SIO_NAMESPACE as HEARTBEAT_NAMESPACE +from nbi.service.health_probes.Namespaces import HeartbeatServerNamespace from service.client.ServiceClient import ServiceClient from slice.client.SliceClient import SliceClient from tests.tools.mock_osm.MockOSM import MockOSM from .Constants import ( - LOCAL_HOST, MOCKSERVICE_PORT, NBI_SERVICE_BASE_URL, NBI_SERVICE_PORT, USERNAME, PASSWORD + LOCAL_HOST, MOCKSERVICE_PORT, NBI_SERVICE_BASE_URL, NBI_SERVICE_PORT, + USERNAME, PASSWORD ) from .OSM_Constants import WIM_MAPPING from .MockWebServer import MockWebServer -os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) -os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) +os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) +os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) +os.environ[get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) +os.environ[get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) + @pytest.fixture(scope='session') def mock_service(): - _service = MockService_Dependencies(MOCKSERVICE_PORT) - _service.configure_env_vars() - _service.start() - yield _service - _service.stop() + # NOTE: Starting MockServer in a separate process to prevent + # issues with eventlet monkey-patched libraries. + + cmd = ['python', '-m', 'nbi.tests.MockService_Dependencies'] + custom_env = os.environ.copy() + mock_service_process = subprocess.Popen( + cmd, + env=custom_env, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + stdin=subprocess.DEVNULL, + text=True + ) + + yield True + + # Check if process is still running + if mock_service_process.poll() is None: + mock_service_process.terminate() # Try to terminate gracefully + time.sleep(2) # Give it time to exit + if mock_service_process.poll() is None: + mock_service_process.kill() # Force kill if still running + + # Capture final output after process terminates + stdout, stderr = mock_service_process.communicate() + LOGGER = logging.getLogger('MockService_Dependencies') + if stdout: LOGGER.info('STDOUT:\n{:s}'.format(str(stdout.strip()))) + if stderr: LOGGER.error('STDERR:\n{:s}'.format(str(stderr.strip()))) + LOGGER.info('Terminated') @pytest.fixture(scope='session') def nbi_application( - mock_service : MockService_Dependencies # pylint: disable=redefined-outer-name, unused-argument + mock_service # pylint: disable=redefined-outer-name, unused-argument ) -> NbiApplication: mock_web_server = MockWebServer() mock_web_server.start() time.sleep(1) # bring time for the server to start - yield mock_web_server.nbi_app + + nbi_app = mock_web_server.nbi_app + yield nbi_app + + sio_server = nbi_app.get_socketio_server() + sio_namespaces : Dict[str, Namespace] = sio_server.namespace_handlers + heartbeat_namespace : HeartbeatServerNamespace = sio_namespaces.get(HEARTBEAT_NAMESPACE) + heartbeat_namespace.stop_thread() + mock_web_server.join(timeout=1) @@ -64,7 +106,7 @@ def osm_wim( @pytest.fixture(scope='session') def context_client( - mock_service : MockService_Dependencies # pylint: disable=redefined-outer-name, unused-argument + mock_service # pylint: disable=redefined-outer-name, unused-argument ) -> ContextClient: _client = ContextClient() yield _client @@ -72,7 +114,7 @@ def context_client( @pytest.fixture(scope='session') def service_client( - mock_service : MockService_Dependencies # pylint: disable=redefined-outer-name, unused-argument + mock_service # pylint: disable=redefined-outer-name, unused-argument ) -> ServiceClient: _client = ServiceClient() yield _client @@ -80,7 +122,7 @@ def service_client( @pytest.fixture(scope='session') def slice_client( - mock_service : MockService_Dependencies # pylint: disable=redefined-outer-name, unused-argument + mock_service # pylint: disable=redefined-outer-name, unused-argument ) -> SliceClient: _client = SliceClient() yield _client diff --git a/src/nbi/tests/test_core.py b/src/nbi/tests/test_core.py index 80a3d4b10..f41c26f5d 100644 --- a/src/nbi/tests/test_core.py +++ b/src/nbi/tests/test_core.py @@ -47,7 +47,7 @@ def test_websocket_get_heartbeat( heartbeat_client_namespace = HeartbeatClientNamespace() - sio = socketio.Client(logger=True) + sio = socketio.Client(logger=True, engineio_logger=True) sio.register_namespace(heartbeat_client_namespace) sio.connect(NBI_SERVICE_BASE_URL) #sio.send('Hello WebSocket!', namespace='/heartbeat') -- GitLab From 8dd17fe3fd848052815109f6535a6ad19c49897a Mon Sep 17 00:00:00 2001 From: Lluis Gifre Renom <lluis.gifre@cttc.es> Date: Wed, 12 Feb 2025 07:53:30 +0000 Subject: [PATCH 052/213] Minor bug fixes and code formating --- src/common/tools/descriptor/Tools.py | 2 ++ src/nbi/tests/test_tfs_api.py | 1 + 2 files changed, 3 insertions(+) diff --git a/src/common/tools/descriptor/Tools.py b/src/common/tools/descriptor/Tools.py index 2ecd38ae1..a6e39e95d 100644 --- a/src/common/tools/descriptor/Tools.py +++ b/src/common/tools/descriptor/Tools.py @@ -22,6 +22,7 @@ def get_descriptors_add_contexts(contexts : List[Dict]) -> List[Dict]: for context in contexts_add: context['topology_ids'] = [] context['service_ids'] = [] + context['slice_ids'] = [] return contexts_add def get_descriptors_add_topologies(topologies : List[Dict]) -> List[Dict]: @@ -29,6 +30,7 @@ def get_descriptors_add_topologies(topologies : List[Dict]) -> List[Dict]: for topology in topologies_add: topology['device_ids'] = [] topology['link_ids'] = [] + topology['optical_link_ids'] = [] return topologies_add def get_descriptors_add_services(services : List[Dict]) -> List[Dict]: diff --git a/src/nbi/tests/test_tfs_api.py b/src/nbi/tests/test_tfs_api.py index 77eb7fadb..d8009530f 100644 --- a/src/nbi/tests/test_tfs_api.py +++ b/src/nbi/tests/test_tfs_api.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. + # Enable eventlet for async networking # NOTE: monkey_patch needs to be executed before importing any other module. import eventlet -- GitLab From 324cd085bbac39a18f09a379fd626117dc31fd06 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Feb 2025 09:47:25 +0000 Subject: [PATCH 053/213] NBI component: - Added mock service dependency log file generation - Added mock service dependency log file as CI/CD pipeline artifact --- src/nbi/.gitlab-ci.yml | 2 ++ src/nbi/tests/MockService_Dependencies.py | 13 +++++++-- src/nbi/tests/PrepareTestScenario.py | 34 ++++++++++++++++------- 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 10e695d11..51f80581d 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -99,6 +99,8 @@ unit_test nbi: when: always reports: junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report_*.xml + paths: + - src/$IMAGE_NAME/tests/mock_service_dependencies.log ## Deployment of the service in Kubernetes Cluster #deploy nbi: diff --git a/src/nbi/tests/MockService_Dependencies.py b/src/nbi/tests/MockService_Dependencies.py index 8535fd56d..e3515afac 100644 --- a/src/nbi/tests/MockService_Dependencies.py +++ b/src/nbi/tests/MockService_Dependencies.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging, signal, sys, threading +import logging, os, signal, sys, threading from common.proto.context_pb2_grpc import add_ContextServiceServicer_to_server from common.proto.service_pb2_grpc import add_ServiceServiceServicer_to_server from common.proto.slice_pb2_grpc import add_SliceServiceServicer_to_server @@ -23,7 +23,16 @@ from common.tools.service.GenericGrpcService import GenericGrpcService from .Constants import LOCAL_HOST, MOCKSERVICE_PORT -logging.basicConfig(level=logging.DEBUG, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") +if 'GITLAB_CI' in os.environ: + log_path = '/opt/results/mock_service_dependencies.log' +else: + log_path = 'mock_service_dependencies.log' + +logging.basicConfig( + level=logging.DEBUG, + format='[%(asctime)s] %(levelname)s:%(name)s:%(message)s', + filename=log_path, +) LOGGER = logging.getLogger(__name__) class MockService_Dependencies(GenericGrpcService): diff --git a/src/nbi/tests/PrepareTestScenario.py b/src/nbi/tests/PrepareTestScenario.py index 8852aa2c4..ae3c2a5b6 100644 --- a/src/nbi/tests/PrepareTestScenario.py +++ b/src/nbi/tests/PrepareTestScenario.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import enum, logging, os, pytest, requests, subprocess, time +import enum, logging, os, pytest, requests, subprocess, threading, time from typing import Any, Dict, List, Optional, Set, Union from socketio import Namespace from common.Constants import ServiceNameEnum @@ -56,11 +56,29 @@ def mock_service(): cmd, env=custom_env, stdout=subprocess.PIPE, - stderr=subprocess.PIPE, + stderr=subprocess.STDOUT, stdin=subprocess.DEVNULL, - text=True + text=True, + bufsize=1 ) + mock_service_logger = logging.getLogger('MockService_Dependencies') + mock_service_logger.info('Started') + + def stream_stdout(): + for line in iter(mock_service_process.stdout.readline, ''): + mock_service_logger.info(line.strip()) + + def stream_stderr(): + for line in iter(mock_service_process.stderr.readline, ''): + mock_service_logger.error(line.strip()) + + stream_stdout_thread = threading.Thread(target=stream_stdout, daemon=True) + stream_stdout_thread.start() + + stream_stderr_thread = threading.Thread(target=stream_stderr, daemon=True) + stream_stderr_thread.start() + yield True # Check if process is still running @@ -70,13 +88,9 @@ def mock_service(): if mock_service_process.poll() is None: mock_service_process.kill() # Force kill if still running - # Capture final output after process terminates - stdout, stderr = mock_service_process.communicate() - LOGGER = logging.getLogger('MockService_Dependencies') - if stdout: LOGGER.info('STDOUT:\n{:s}'.format(str(stdout.strip()))) - if stderr: LOGGER.error('STDERR:\n{:s}'.format(str(stderr.strip()))) - LOGGER.info('Terminated') - + mock_service_logger.info('Terminated') + stream_stdout_thread.join() + stream_stderr_thread.join() @pytest.fixture(scope='session') def nbi_application( -- GitLab From 26c5c7da12f2b978dc84e84b9ed72b3b2cc8fdc0 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Feb 2025 09:50:22 +0000 Subject: [PATCH 054/213] Disabled Gitlab CI/CD integration tests --- .gitlab-ci.yml | 6 +++--- src/tests/.gitlab-ci.yml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b3c19dbab..2588fb513 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -54,6 +54,6 @@ include: # - local: '/src/qos_profile/.gitlab-ci.yml' # - local: '/src/vnt_manager/.gitlab-ci.yml' # - local: '/src/e2e_orchestrator/.gitlab-ci.yml' - - # This should be last one: end-to-end integration tests - - local: '/src/tests/.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 41b855416..ec8ab77d9 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -14,11 +14,11 @@ # 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/nfvsdn22/.gitlab-ci.yml' # #- local: '/src/tests/ofc23/.gitlab-ci.yml' # - local: '/src/tests/ofc24/.gitlab-ci.yml' - - local: '/src/tests/eucnc24/.gitlab-ci.yml' +# - local: '/src/tests/eucnc24/.gitlab-ci.yml' # - local: '/src/tests/ecoc24/.gitlab-ci.yml' -- GitLab From 9a698003e89d5f10e8a87fa3c2cfe0836a446120 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Feb 2025 10:11:19 +0000 Subject: [PATCH 055/213] NBI component: - Corrected stderr processing of mock service dependency subprocess --- src/nbi/tests/PrepareTestScenario.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/nbi/tests/PrepareTestScenario.py b/src/nbi/tests/PrepareTestScenario.py index ae3c2a5b6..5c4c39d5d 100644 --- a/src/nbi/tests/PrepareTestScenario.py +++ b/src/nbi/tests/PrepareTestScenario.py @@ -69,16 +69,9 @@ def mock_service(): for line in iter(mock_service_process.stdout.readline, ''): mock_service_logger.info(line.strip()) - def stream_stderr(): - for line in iter(mock_service_process.stderr.readline, ''): - mock_service_logger.error(line.strip()) - stream_stdout_thread = threading.Thread(target=stream_stdout, daemon=True) stream_stdout_thread.start() - stream_stderr_thread = threading.Thread(target=stream_stderr, daemon=True) - stream_stderr_thread.start() - yield True # Check if process is still running @@ -90,7 +83,6 @@ def mock_service(): mock_service_logger.info('Terminated') stream_stdout_thread.join() - stream_stderr_thread.join() @pytest.fixture(scope='session') def nbi_application( -- GitLab From c21f87ea1d110bec2e3ffd77d09de82041b45ba6 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Feb 2025 10:16:45 +0000 Subject: [PATCH 056/213] NBI component: - Fixed CI/CD pipeline --- src/nbi/.gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 51f80581d..4f5b4d885 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -79,6 +79,8 @@ unit_test nbi: - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" + - ls -la $PWD/src/$IMAGE_NAME/tests + - cat $PWD/src/$IMAGE_NAME/tests/mock_service_dependencies.log coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' after_script: - docker rm -f $IMAGE_NAME -- GitLab From 274c3cdb29bd023be331d8fc685d28a9c4906067 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Feb 2025 10:34:18 +0000 Subject: [PATCH 057/213] NBI component: - Fixing CI/CD pipeline --- src/nbi/tests/MockService_Dependencies.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/nbi/tests/MockService_Dependencies.py b/src/nbi/tests/MockService_Dependencies.py index e3515afac..9f7a4f9ae 100644 --- a/src/nbi/tests/MockService_Dependencies.py +++ b/src/nbi/tests/MockService_Dependencies.py @@ -31,9 +31,12 @@ else: logging.basicConfig( level=logging.DEBUG, format='[%(asctime)s] %(levelname)s:%(name)s:%(message)s', - filename=log_path, + #filename=log_path, ) LOGGER = logging.getLogger(__name__) +LOGGER.warning('environ={:s}'.format(str(os.environ))) +LOGGER.warning('GITLAB_CI={:s}'.format(str(os.environ.get('GITLAB_CI')))) +LOGGER.warning('log_path={:s}'.format(str(log_path))) class MockService_Dependencies(GenericGrpcService): # Mock Service implementing Context, Service and Slice to simplify unitary tests of NBI -- GitLab From 536786b542ee3e1d29cc54691d506e019bae8a7e Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Feb 2025 10:43:29 +0000 Subject: [PATCH 058/213] NBI component: - Fixing CI/CD pipeline --- src/nbi/.gitlab-ci.yml | 4 ---- src/nbi/tests/MockService_Dependencies.py | 11 +---------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 4f5b4d885..10e695d11 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -79,8 +79,6 @@ unit_test nbi: - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" - - ls -la $PWD/src/$IMAGE_NAME/tests - - cat $PWD/src/$IMAGE_NAME/tests/mock_service_dependencies.log coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' after_script: - docker rm -f $IMAGE_NAME @@ -101,8 +99,6 @@ unit_test nbi: when: always reports: junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report_*.xml - paths: - - src/$IMAGE_NAME/tests/mock_service_dependencies.log ## Deployment of the service in Kubernetes Cluster #deploy nbi: diff --git a/src/nbi/tests/MockService_Dependencies.py b/src/nbi/tests/MockService_Dependencies.py index 9f7a4f9ae..69a8a0b24 100644 --- a/src/nbi/tests/MockService_Dependencies.py +++ b/src/nbi/tests/MockService_Dependencies.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging, os, signal, sys, threading +import logging, signal, sys, threading from common.proto.context_pb2_grpc import add_ContextServiceServicer_to_server from common.proto.service_pb2_grpc import add_ServiceServiceServicer_to_server from common.proto.slice_pb2_grpc import add_SliceServiceServicer_to_server @@ -23,20 +23,11 @@ from common.tools.service.GenericGrpcService import GenericGrpcService from .Constants import LOCAL_HOST, MOCKSERVICE_PORT -if 'GITLAB_CI' in os.environ: - log_path = '/opt/results/mock_service_dependencies.log' -else: - log_path = 'mock_service_dependencies.log' - logging.basicConfig( level=logging.DEBUG, format='[%(asctime)s] %(levelname)s:%(name)s:%(message)s', - #filename=log_path, ) LOGGER = logging.getLogger(__name__) -LOGGER.warning('environ={:s}'.format(str(os.environ))) -LOGGER.warning('GITLAB_CI={:s}'.format(str(os.environ.get('GITLAB_CI')))) -LOGGER.warning('log_path={:s}'.format(str(log_path))) class MockService_Dependencies(GenericGrpcService): # Mock Service implementing Context, Service and Slice to simplify unitary tests of NBI -- GitLab From 655d6a0f5334c14a4d86859dc8c9ac2083522494 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Feb 2025 12:10:35 +0000 Subject: [PATCH 059/213] Common > tests > InMem Obj DB: - Reduce log messages --- src/common/tests/InMemoryObjectDatabase.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/common/tests/InMemoryObjectDatabase.py b/src/common/tests/InMemoryObjectDatabase.py index 072867147..b3f649e05 100644 --- a/src/common/tests/InMemoryObjectDatabase.py +++ b/src/common/tests/InMemoryObjectDatabase.py @@ -12,10 +12,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -import grpc, logging +import grpc #, logging from typing import Any, Dict, List, Set -LOGGER = logging.getLogger(__name__) +#LOGGER = logging.getLogger(__name__) class InMemoryObjectDatabase: def __init__(self) -> None: @@ -29,12 +29,12 @@ class InMemoryObjectDatabase: return [container[entry_uuid] for entry_uuid in sorted(container.keys())] def has_entry(self, container_name : str, entry_uuid : str) -> Any: - LOGGER.debug('[has_entry] BEFORE database={:s}'.format(str(self._database))) + #LOGGER.debug('[has_entry] BEFORE database={:s}'.format(str(self._database))) container = self._get_container(container_name) return entry_uuid in container def get_entry(self, container_name : str, entry_uuid : str, context : grpc.ServicerContext) -> Any: - LOGGER.debug('[get_entry] BEFORE database={:s}'.format(str(self._database))) + #LOGGER.debug('[get_entry] BEFORE database={:s}'.format(str(self._database))) container = self._get_container(container_name) if entry_uuid not in container: MSG = '{:s}({:s}) not found; available({:s})' @@ -44,18 +44,18 @@ class InMemoryObjectDatabase: def set_entry(self, container_name : str, entry_uuid : str, entry : Any) -> Any: container = self._get_container(container_name) - LOGGER.debug('[set_entry] BEFORE database={:s}'.format(str(self._database))) + #LOGGER.debug('[set_entry] BEFORE database={:s}'.format(str(self._database))) container[entry_uuid] = entry - LOGGER.debug('[set_entry] AFTER database={:s}'.format(str(self._database))) + #LOGGER.debug('[set_entry] AFTER database={:s}'.format(str(self._database))) return entry def del_entry(self, container_name : str, entry_uuid : str, context : grpc.ServicerContext) -> None: container = self._get_container(container_name) - LOGGER.debug('[del_entry] BEFORE database={:s}'.format(str(self._database))) + #LOGGER.debug('[del_entry] BEFORE database={:s}'.format(str(self._database))) if entry_uuid not in container: context.abort(grpc.StatusCode.NOT_FOUND, str('{:s}({:s}) not found'.format(container_name, entry_uuid))) del container[entry_uuid] - LOGGER.debug('[del_entry] AFTER database={:s}'.format(str(self._database))) + #LOGGER.debug('[del_entry] AFTER database={:s}'.format(str(self._database))) def select_entries(self, container_name : str, entry_uuids : Set[str]) -> List[Any]: if len(entry_uuids) == 0: return self.get_entries(container_name) -- GitLab From 4e42a364de790091115c8e499ce1bc99a2fc53dc Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Feb 2025 14:11:50 +0000 Subject: [PATCH 060/213] NBI component: - Fixing CI/CD pipeline --- src/nbi/.gitlab-ci.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 10e695d11..2c1057f95 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -72,12 +72,19 @@ unit_test nbi: - sleep 5 - docker ps -a - docker logs $IMAGE_NAME + - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml" + - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" + - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" + - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" + - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" + - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" + - date - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' after_script: -- GitLab From 56089f19701eaad593aa573c88ec33e691993890 Mon Sep 17 00:00:00 2001 From: Waleed Akbar <wakbar@cttc.es> Date: Sat, 15 Feb 2025 14:34:46 +0000 Subject: [PATCH 061/213] Changes in Kpi_value_api and added new monitoring namespace - Added Prometheus monitoring deployment and update test configurations - Updated KPI VALUE API (writer and promWriter) --- deploy/all.sh | 3 ++ deploy/monitoring.sh | 53 +++++++++++++++++++ manifests/kpi_value_writerservice.yaml | 2 + manifests/prometheus/prometheus.yaml | 52 ++++++++++++++++++ scripts/run_tests_locally-kpi-value-writer.sh | 1 + .../run_tests_locally-telemetry-backend.sh | 2 +- .../run_tests_locally-telemetry-frontend.sh | 5 +- src/common/tools/client/RetryDecorator.py | 2 +- src/kpi_manager/tests/test_messages.py | 2 +- .../service/KpiValueWriter.py | 35 ++++-------- .../service/MetricWriterToPrometheus.py | 42 +++++++++------ src/kpi_value_writer/service/__main__.py | 3 -- .../tests/test_kpi_value_writer.py | 39 ++++++++++++-- src/kpi_value_writer/tests/test_messages.py | 3 +- 14 files changed, 190 insertions(+), 54 deletions(-) create mode 100644 deploy/monitoring.sh create mode 100644 manifests/prometheus/prometheus.yaml diff --git a/deploy/all.sh b/deploy/all.sh index 97f4db37d..f3075949e 100755 --- a/deploy/all.sh +++ b/deploy/all.sh @@ -215,6 +215,9 @@ export GRAF_EXT_PORT_HTTP=${GRAF_EXT_PORT_HTTP:-"3000"} # Deploy Apache Kafka ./deploy/kafka.sh +#Deploy Monitoring (Prometheus, Mimir, Grafana) +./deploy/monitoring.sh + # Expose Dashboard ./deploy/expose_dashboard.sh diff --git a/deploy/monitoring.sh b/deploy/monitoring.sh new file mode 100644 index 000000000..18992501a --- /dev/null +++ b/deploy/monitoring.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + +RELEASE_NAME="mon-prometheus" +NAMESPACE="monitoring" +CHART_REPO_NAME="prometheus-community" +CHART_REPO_URL="https://prometheus-community.github.io/helm-charts" +CHART_NAME="prometheus" # Chart name within the repo +VALUES_FILE="manifests/prometheus/prometheus.yaml" + +echo ">>> Deploying Prometheus with the following configuration:" +echo "Adding/updating Helm repo: $CHART_REPO_NAME -> $CHART_REPO_URL" +helm repo add "$CHART_REPO_NAME" "$CHART_REPO_URL" || true +helm repo update + +echo "Creating namespace '$NAMESPACE' if it doesn't exist..." +kubectl get namespace "$NAMESPACE" >/dev/null 2>&1 || kubectl create namespace "$NAMESPACE" + +#------------------------------------------------------------------------------ +# 3. Install or upgrade the Prometheus chart +# - If 'VALUES_FILE' is set, it will use it for custom configuration. +# - Otherwise, it will deploy with the chart defaults. +#------------------------------------------------------------------------------ +if [ -n "$VALUES_FILE" ] && [ -f "$VALUES_FILE" ]; then + echo "Installing/Upgrading Prometheus with custom values from $VALUES_FILE..." + helm upgrade --install "$RELEASE_NAME" "$CHART_REPO_NAME/$CHART_NAME" \ + --namespace "$NAMESPACE" \ + --values "$VALUES_FILE" +else + echo "Installing/Upgrading Prometheus with default chart values..." + helm upgrade --install "$RELEASE_NAME" "$CHART_REPO_NAME/$CHART_NAME" \ + --namespace "$NAMESPACE" +fi + +echo "Waiting for Prometheus pods to be ready..." +kubectl rollout status deployment/"$RELEASE_NAME"-server -n "$NAMESPACE" || true + +# echo "Listing deployed resources in namespace '$NAMESPACE':" +# kubectl get all -n "$NAMESPACE" + +echo "<<< Prometheus deployment completed successfully!" diff --git a/manifests/kpi_value_writerservice.yaml b/manifests/kpi_value_writerservice.yaml index f98be4629..27c61c933 100644 --- a/manifests/kpi_value_writerservice.yaml +++ b/manifests/kpi_value_writerservice.yaml @@ -39,6 +39,8 @@ spec: env: - name: LOG_LEVEL value: "INFO" + - name: PUSHGATEWAY_URL + value: "http://mon-prometheus-prometheus-pushgateway.monitoring.svc.cluster.local:9091" envFrom: - secretRef: name: kfk-kpi-data diff --git a/manifests/prometheus/prometheus.yaml b/manifests/prometheus/prometheus.yaml new file mode 100644 index 000000000..fabc97c4a --- /dev/null +++ b/manifests/prometheus/prometheus.yaml @@ -0,0 +1,52 @@ +# Copyright 2022-2024 ETSI 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. + +# Configuration for Prometheus components and server settings +# Global Prometheus configuration +alertmanager: + enabled: false # Default is true +kube-state-metrics: + enabled: false # Default is true +prometheus-node-exporter: + enabled: false # Default is true +prometheus-pushgateway: + enabled: true # Default is true + +# Prometheus server-specific configuration +server: + retention: "30d" + logLevel: "debug" + resources: + requests: + cpu: "250m" + memory: "256Mi" + limits: + cpu: "1" + memory: "1Gi" + + # Expose the Prometheus server via a Kubernetes service + service: + type: NodePort + nodePort: 30090 + + extraScrapeConfigs: + - job_name: 'pushgateway' + static_configs: + - targets: + - 'prometheus-pushgateway.monitoring.svc.cluster.local:9091' # Push Gateway endpoint + + # Global Prometheus settings: + global: + scrape_interval: 10s + evaluation_interval: 10s diff --git a/scripts/run_tests_locally-kpi-value-writer.sh b/scripts/run_tests_locally-kpi-value-writer.sh index cbeed3b78..e3d9c7c6a 100755 --- a/scripts/run_tests_locally-kpi-value-writer.sh +++ b/scripts/run_tests_locally-kpi-value-writer.sh @@ -19,6 +19,7 @@ PROJECTDIR=`pwd` cd $PROJECTDIR/src export KFK_SERVER_ADDRESS='127.0.0.1:9092' + RCFILE=$PROJECTDIR/coverage/.coveragerc python3 -m pytest --log-level=DEBUG --log-cli-level=DEBUG --verbose \ kpi_value_writer/tests/test_kpi_value_writer.py diff --git a/scripts/run_tests_locally-telemetry-backend.sh b/scripts/run_tests_locally-telemetry-backend.sh index f648a6252..1b4915d74 100755 --- a/scripts/run_tests_locally-telemetry-backend.sh +++ b/scripts/run_tests_locally-telemetry-backend.sh @@ -25,5 +25,5 @@ export CRDB_URI="cockroachdb://tfs:tfs123@${CRDB_SQL_ADDRESS}:26257/tfs_telemetr RCFILE=$PROJECTDIR/coverage/.coveragerc -python3 -m pytest --log-level=debug --log-cli-level=debug --verbose \ +python3 -m pytest --log-level=INFO --log-cli-level=INFO --verbose \ telemetry/backend/tests/test_backend.py diff --git a/scripts/run_tests_locally-telemetry-frontend.sh b/scripts/run_tests_locally-telemetry-frontend.sh index 38822330e..e70818377 100755 --- a/scripts/run_tests_locally-telemetry-frontend.sh +++ b/scripts/run_tests_locally-telemetry-frontend.sh @@ -18,10 +18,11 @@ PROJECTDIR=`pwd` cd $PROJECTDIR/src -# python3 kpi_manager/tests/test_unitary.py export KFK_SERVER_ADDRESS='127.0.0.1:9092' CRDB_SQL_ADDRESS=$(kubectl get service cockroachdb-public --namespace crdb -o jsonpath='{.spec.clusterIP}') + export CRDB_URI="cockroachdb://tfs:tfs123@${CRDB_SQL_ADDRESS}:26257/tfs_telemetry?sslmode=require" RCFILE=$PROJECTDIR/coverage/.coveragerc -python3 -m pytest --log-level=DEBUG --log-cli-level=DEBUG --verbose \ + +python3 -m pytest --log-level=INFO --log-cli-level=INFO --verbose \ telemetry/frontend/tests/test_frontend.py diff --git a/src/common/tools/client/RetryDecorator.py b/src/common/tools/client/RetryDecorator.py index 4750ff73a..efc8b5234 100644 --- a/src/common/tools/client/RetryDecorator.py +++ b/src/common/tools/client/RetryDecorator.py @@ -56,7 +56,7 @@ def delay_linear(initial=0, increment=0, maximum=None): return delay return compute -def delay_exponential(initial=1, increment=1, maximum=None): +def delay_exponential(initial=1.0, increment=1.0, maximum=None): def compute(num_try): delay = initial * pow(increment, (num_try - 1)) if maximum is not None: diff --git a/src/kpi_manager/tests/test_messages.py b/src/kpi_manager/tests/test_messages.py index 5f55c2cfc..ebe13b661 100644 --- a/src/kpi_manager/tests/test_messages.py +++ b/src/kpi_manager/tests/test_messages.py @@ -77,4 +77,4 @@ def create_kpi_filter_request(): _create_kpi_filter_request.connection_id.append(connection_id_obj) _create_kpi_filter_request.link_id.append(link_id_obj) - return _create_kpi_filter_request \ No newline at end of file + return _create_kpi_filter_request diff --git a/src/kpi_value_writer/service/KpiValueWriter.py b/src/kpi_value_writer/service/KpiValueWriter.py index 0bc95355e..25b8ca2e8 100644 --- a/src/kpi_value_writer/service/KpiValueWriter.py +++ b/src/kpi_value_writer/service/KpiValueWriter.py @@ -15,25 +15,21 @@ import json import logging import threading + +from confluent_kafka import KafkaError +from confluent_kafka import Consumer as KafkaConsumer + from common.tools.kafka.Variables import KafkaConfig, KafkaTopic -from common.proto.kpi_value_api_pb2 import KpiValue from common.proto.kpi_manager_pb2 import KpiDescriptor, KpiId from common.Settings import get_service_port_grpc from common.Constants import ServiceNameEnum from common.tools.service.GenericGrpcService import GenericGrpcService - -from confluent_kafka import KafkaError -from confluent_kafka import Consumer as KafkaConsumer - from kpi_manager.client.KpiManagerClient import KpiManagerClient -# -- test import -- -# from kpi_value_writer.tests.test_messages import create_kpi_descriptor_request from .MetricWriterToPrometheus import MetricWriterToPrometheus -LOGGER = logging.getLogger(__name__) -ACTIVE_CONSUMERS = [] +LOGGER = logging.getLogger(__name__) class KpiValueWriter(GenericGrpcService): def __init__(self, cls_name : str = __name__) -> None: @@ -43,9 +39,8 @@ class KpiValueWriter(GenericGrpcService): 'group.id' : 'KpiValueWriter', 'auto.offset.reset' : 'latest'}) - def RunKafkaConsumer(self): + def install_servicers(self): thread = threading.Thread(target=self.KafkaKpiConsumer, args=()) - ACTIVE_CONSUMERS.append(thread) thread.start() def KafkaKpiConsumer(self): @@ -55,7 +50,6 @@ class KpiValueWriter(GenericGrpcService): consumer = self.kafka_consumer consumer.subscribe([KafkaTopic.VALUE.value]) LOGGER.debug("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value)) - print("Kafka Consumer start listenng on topic: {:}".format(KafkaTopic.VALUE.value)) while True: raw_kpi = consumer.poll(1.0) if raw_kpi is None: @@ -69,30 +63,21 @@ class KpiValueWriter(GenericGrpcService): try: kpi_value = json.loads(raw_kpi.value().decode('utf-8')) LOGGER.info("Received KPI : {:}".format(kpi_value)) - print("Received KPI : {:}".format(kpi_value)) self.get_kpi_descriptor(kpi_value, kpi_manager_client, metric_writer) - except Exception as e: - print("Error detail: {:}".format(e)) + except: + LOGGER.exception("Error detail: ") continue def get_kpi_descriptor(self, kpi_value: str, kpi_manager_client, metric_writer): - print("--- START -----") - kpi_id = KpiId() - kpi_id.kpi_id.uuid = kpi_value['kpi_uuid'] - print("KpiId generated: {:}".format(kpi_id)) - # print("Kpi manger client created: {:}".format(kpi_manager_client)) + kpi_id.kpi_id.uuid = kpi_value['kpi_id'] # type: ignore try: kpi_descriptor_object = KpiDescriptor() kpi_descriptor_object = kpi_manager_client.GetKpiDescriptor(kpi_id) - # TODO: why kpi_descriptor_object recevies a KpiDescriptor type object not Empty type object??? if kpi_descriptor_object.kpi_id.kpi_id.uuid == kpi_id.kpi_id.uuid: LOGGER.info("Extracted KpiDescriptor: {:}".format(kpi_descriptor_object)) - print("Extracted KpiDescriptor: {:}".format(kpi_descriptor_object)) metric_writer.create_and_expose_cooked_kpi(kpi_descriptor_object, kpi_value) else: - LOGGER.info("No KPI Descriptor found in DB for Kpi ID: {:}".format(kpi_id)) - print("No KPI Descriptor found in DB for Kpi ID: {:}".format(kpi_id)) + LOGGER.info("No KPI Descriptor found in Database for Kpi ID: {:}".format(kpi_id)) except Exception as e: LOGGER.info("Unable to get KpiDescriptor. Error: {:}".format(e)) - print ("Unable to get KpiDescriptor. Error: {:}".format(e)) diff --git a/src/kpi_value_writer/service/MetricWriterToPrometheus.py b/src/kpi_value_writer/service/MetricWriterToPrometheus.py index bfbb6e3ba..3238516c9 100644 --- a/src/kpi_value_writer/service/MetricWriterToPrometheus.py +++ b/src/kpi_value_writer/service/MetricWriterToPrometheus.py @@ -14,15 +14,20 @@ # read Kafka stream from Kafka topic +import os import logging -from prometheus_client import Gauge -from common.proto.kpi_sample_types_pb2 import KpiSampleType -from common.proto.kpi_value_api_pb2 import KpiValue -from common.proto.kpi_manager_pb2 import KpiDescriptor +from prometheus_client import Gauge +from prometheus_client.exposition import push_to_gateway +from prometheus_client.registry import CollectorRegistry + +from common.proto.kpi_sample_types_pb2 import KpiSampleType +from common.proto.kpi_value_api_pb2 import KpiValue +from common.proto.kpi_manager_pb2 import KpiDescriptor -LOGGER = logging.getLogger(__name__) -PROM_METRICS = {} +LOGGER = logging.getLogger(__name__) +PROM_METRICS = {} +GATEWAY_URL = os.getenv('PUSHGATEWAY_URL', 'prometheus-pushgateway.monitoring.svc.cluster.local:9091') class MetricWriterToPrometheus: ''' @@ -30,7 +35,9 @@ class MetricWriterToPrometheus: cooked KPI value = KpiDescriptor (gRPC message) + KpiValue (gRPC message) ''' def __init__(self): - pass + self.job_name = 'kpivaluewriter' + self.registry = CollectorRegistry() + self.gateway_url = GATEWAY_URL def merge_kpi_descriptor_and_kpi_value(self, kpi_descriptor, kpi_value): # Creating a dictionary from the kpi_descriptor's attributes @@ -44,26 +51,27 @@ class MetricWriterToPrometheus: 'slice_id' : kpi_descriptor.slice_id.slice_uuid.uuid, 'connection_id' : kpi_descriptor.connection_id.connection_uuid.uuid, 'link_id' : kpi_descriptor.link_id.link_uuid.uuid, - 'time_stamp' : kpi_value.timestamp.timestamp, - 'kpi_value' : kpi_value.kpi_value_type.floatVal + 'time_stamp' : kpi_value["time_stamp"], + 'kpi_value' : kpi_value["kpi_value"] } LOGGER.debug("Cooked Kpi: {:}".format(cooked_kpi)) return cooked_kpi def create_and_expose_cooked_kpi(self, kpi_descriptor: KpiDescriptor, kpi_value: KpiValue): # merge both gRPC messages into single varible. - cooked_kpi = self.merge_kpi_descriptor_and_kpi_value(kpi_descriptor, kpi_value) + cooked_kpi = self.merge_kpi_descriptor_and_kpi_value(kpi_descriptor, kpi_value) tags_to_exclude = {'kpi_description', 'kpi_sample_type', 'kpi_value'} - metric_tags = [tag for tag in cooked_kpi.keys() if tag not in tags_to_exclude] # These values will be used as metric tags - metric_name = cooked_kpi['kpi_sample_type'] + metric_tags = [tag for tag in cooked_kpi.keys() if tag not in tags_to_exclude] # These values will be used as metric tags + metric_name = cooked_kpi['kpi_sample_type'] try: if metric_name not in PROM_METRICS: # Only register the metric, when it doesn't exists PROM_METRICS[metric_name] = Gauge ( metric_name, cooked_kpi['kpi_description'], - metric_tags + metric_tags, + registry=self.registry ) - LOGGER.debug("Metric is created with labels: {:}".format(metric_tags)) + LOGGER.debug("Metric is created with labels: {:}".format(metric_tags)) PROM_METRICS[metric_name].labels( kpi_id = cooked_kpi['kpi_id'], device_id = cooked_kpi['device_id'], @@ -74,7 +82,11 @@ class MetricWriterToPrometheus: link_id = cooked_kpi['link_id'], time_stamp = cooked_kpi['time_stamp'], ).set(float(cooked_kpi['kpi_value'])) - LOGGER.debug("Metric pushed to the endpoints: {:}".format(PROM_METRICS[metric_name])) + LOGGER.debug("Metric is being pushed to the Gateway ... : {:}".format(PROM_METRICS[metric_name])) + + # Push to the Prometheus Gateway, Prometheus is preconfigured to scrap the metrics from the gateway + push_to_gateway(self.gateway_url, job=self.job_name, registry=self.registry) + LOGGER.debug("Metric pushed to Prometheus Gateway.") except ValueError as e: if 'Duplicated timeseries' in str(e): diff --git a/src/kpi_value_writer/service/__main__.py b/src/kpi_value_writer/service/__main__.py index 28ba2ac90..56fc6100d 100644 --- a/src/kpi_value_writer/service/__main__.py +++ b/src/kpi_value_writer/service/__main__.py @@ -13,7 +13,6 @@ # limitations under the License. import logging, signal, sys, threading -from prometheus_client import start_http_server from kpi_value_writer.service.KpiValueWriter import KpiValueWriter from common.Settings import get_log_level @@ -39,8 +38,6 @@ def main(): grpc_service = KpiValueWriter() grpc_service.start() - start_http_server(10808) - LOGGER.debug("Prometheus client is started on port 10808") # Wait for Ctrl+C or termination signal while not terminate.wait(timeout=1.0): pass diff --git a/src/kpi_value_writer/tests/test_kpi_value_writer.py b/src/kpi_value_writer/tests/test_kpi_value_writer.py index 0d3f9e683..29e81d28a 100755 --- a/src/kpi_value_writer/tests/test_kpi_value_writer.py +++ b/src/kpi_value_writer/tests/test_kpi_value_writer.py @@ -12,14 +12,35 @@ # See the License for the specific language governing permissions and # limitations under the License. +import pytest +import time import logging from kpi_value_writer.service.KpiValueWriter import KpiValueWriter +from kpi_manager.client.KpiManagerClient import KpiManagerClient from common.tools.kafka.Variables import KafkaTopic +from test_messages import create_kpi_descriptor_request +LOGGER = logging.getLogger(__name__) +# -------- Fixtures ---------------- + +@pytest.fixture(autouse=True) +def log_all_methods(request): + ''' + This fixture logs messages before and after each test function runs, indicating the start and end of the test. + The autouse=True parameter ensures that this logging happens automatically for all tests in the module. + ''' + LOGGER.info(f" >>>>> Starting test: {request.node.name} ") + yield + LOGGER.info(f" <<<<< Finished test: {request.node.name} ") + +# @pytest.fixture(scope='module') +# def kpi_manager_client(): +# LOGGER.debug("Yielding KpiManagerClient ...") +# yield KpiManagerClient(host="10.152.183.203") +# LOGGER.debug("KpiManagerClient is terminated.") -LOGGER = logging.getLogger(__name__) # -------- Initial Test ---------------- def test_validate_kafka_topics(): @@ -27,7 +48,15 @@ def test_validate_kafka_topics(): response = KafkaTopic.create_all_topics() assert isinstance(response, bool) -def test_KafkaConsumer(): - LOGGER.debug(" --->>> test_kafka_consumer: START <<<--- ") - # kpi_value_writer = KpiValueWriter() - # kpi_value_writer.RunKafkaConsumer() +# -------------- +# NOT FOR GITHUB PIPELINE (Local testing only) +# -------------- +# def test_KafkaConsumer(kpi_manager_client): + +# # kpidescriptor = create_kpi_descriptor_request() +# # kpi_manager_client.SetKpiDescriptor(kpidescriptor) + +# kpi_value_writer = KpiValueWriter() +# kpi_value_writer.KafkaKpiConsumer() +# LOGGER.debug(" waiting for timer to finish ") +# time.sleep(300) diff --git a/src/kpi_value_writer/tests/test_messages.py b/src/kpi_value_writer/tests/test_messages.py index ffc6b398c..4cd901b2c 100755 --- a/src/kpi_value_writer/tests/test_messages.py +++ b/src/kpi_value_writer/tests/test_messages.py @@ -25,7 +25,8 @@ def create_kpi_id_request(): def create_kpi_descriptor_request(description: str = "Test Description"): _create_kpi_request = kpi_manager_pb2.KpiDescriptor() - _create_kpi_request.kpi_id.kpi_id.uuid = str(uuid.uuid4()) + # _create_kpi_request.kpi_id.kpi_id.uuid = str(uuid.uuid4()) + _create_kpi_request.kpi_id.kpi_id.uuid = "efef4d95-1cf1-43c4-9742-95c283dddddd" _create_kpi_request.kpi_description = description _create_kpi_request.kpi_sample_type = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED _create_kpi_request.device_id.device_uuid.uuid = 'DEV4' -- GitLab From 0bf11c591df49987de4172f3c21e7fa00ba4336a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 11:17:22 +0000 Subject: [PATCH 062/213] NBI component: - Added Mock NBI Dependencies service as a separate continer for testing - Fixed unitary tests - Fixed CI/CD pipeline --- .gitlab-ci.yml | 4 +- src/nbi/.gitlab-ci.yml | 9 ++ src/nbi/tests/PrepareTestScenario.py | 99 +++++++++++-------- src/nbi/tests/test_core.py | 3 +- src/nbi/tests/test_etsi_bwm.py | 3 +- src/nbi/tests/test_ietf_l2vpn.py | 3 +- src/nbi/tests/test_ietf_l3vpn.py | 3 +- src/nbi/tests/test_ietf_network.py | 3 +- src/nbi/tests/test_tfs_api.py | 3 +- src/tests/.gitlab-ci.yml | 2 + .../mock_nbi_dependencies/.gitlab-ci.yml | 37 +++++++ .../tools/mock_nbi_dependencies/Config.py | 19 ++++ .../tools/mock_nbi_dependencies/Dockerfile | 37 +++++++ .../MockNbiDependencies.py | 48 +++++++++ .../MockService_Dependencies.py | 55 +++++++++++ .../tools/mock_nbi_dependencies/README.md | 21 ++++ .../tools/mock_nbi_dependencies/__init__.py | 14 +++ .../tools/mock_nbi_dependencies/build.sh | 21 ++++ .../tools/mock_nbi_dependencies/deploy.sh | 17 ++++ .../mock-nbi-dependencies.yaml | 76 ++++++++++++++ .../mock_nbi_dependencies/requirements.in | 19 ++++ src/tests/tools/mock_nbi_dependencies/run.sh | 19 ++++ 22 files changed, 464 insertions(+), 51 deletions(-) create mode 100644 src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml create mode 100644 src/tests/tools/mock_nbi_dependencies/Config.py create mode 100644 src/tests/tools/mock_nbi_dependencies/Dockerfile create mode 100644 src/tests/tools/mock_nbi_dependencies/MockNbiDependencies.py create mode 100644 src/tests/tools/mock_nbi_dependencies/MockService_Dependencies.py create mode 100644 src/tests/tools/mock_nbi_dependencies/README.md create mode 100644 src/tests/tools/mock_nbi_dependencies/__init__.py create mode 100755 src/tests/tools/mock_nbi_dependencies/build.sh create mode 100755 src/tests/tools/mock_nbi_dependencies/deploy.sh create mode 100644 src/tests/tools/mock_nbi_dependencies/mock-nbi-dependencies.yaml create mode 100644 src/tests/tools/mock_nbi_dependencies/requirements.in create mode 100755 src/tests/tools/mock_nbi_dependencies/run.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2588fb513..d12b12939 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -55,5 +55,5 @@ include: # - local: '/src/vnt_manager/.gitlab-ci.yml' # - local: '/src/e2e_orchestrator/.gitlab-ci.yml' # -# # This should be last one: end-to-end integration tests -# - local: '/src/tests/.gitlab-ci.yml' + # This should be last one: end-to-end integration tests + - local: '/src/tests/.gitlab-ci.yml' diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 2c1057f95..2aad65dc4 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -46,6 +46,7 @@ unit_test nbi: stage: unit_test needs: - build nbi + - build mock_nbi_dependencies before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - > @@ -62,6 +63,14 @@ unit_test nbi: fi script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + - docker pull "$CI_REGISTRY_IMAGE/mock_nbi_dependencies:test" + - > + docker run --name mock_nbi_dependencies -d + --network=teraflowbridge + --env BIND_ADDRESS=0.0.0.0 + --env BIND_PORT=10000 + --env LOG_LEVEL=DEBUG + $CI_REGISTRY_IMAGE/mock_nbi_dependencies:test - > docker run --name $IMAGE_NAME -d -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge diff --git a/src/nbi/tests/PrepareTestScenario.py b/src/nbi/tests/PrepareTestScenario.py index 5c4c39d5d..a9922de1b 100644 --- a/src/nbi/tests/PrepareTestScenario.py +++ b/src/nbi/tests/PrepareTestScenario.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import enum, logging, os, pytest, requests, subprocess, threading, time +import enum, logging, os, pytest, requests, time # subprocess, threading from typing import Any, Dict, List, Optional, Set, Union from socketio import Namespace from common.Constants import ServiceNameEnum @@ -21,6 +21,7 @@ from common.Settings import ( ENVVAR_SUFIX_SERVICE_PORT_HTTP, get_env_var_name ) from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient from nbi.service.NbiApplication import NbiApplication from nbi.service.health_probes.Constants import SIO_NAMESPACE as HEARTBEAT_NAMESPACE from nbi.service.health_probes.Namespaces import HeartbeatServerNamespace @@ -39,54 +40,58 @@ os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) +os.environ[get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) os.environ[get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) os.environ[get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) os.environ[get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) os.environ[get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) -@pytest.fixture(scope='session') -def mock_service(): - # NOTE: Starting MockServer in a separate process to prevent - # issues with eventlet monkey-patched libraries. - - cmd = ['python', '-m', 'nbi.tests.MockService_Dependencies'] - custom_env = os.environ.copy() - mock_service_process = subprocess.Popen( - cmd, - env=custom_env, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - stdin=subprocess.DEVNULL, - text=True, - bufsize=1 - ) - - mock_service_logger = logging.getLogger('MockService_Dependencies') - mock_service_logger.info('Started') - - def stream_stdout(): - for line in iter(mock_service_process.stdout.readline, ''): - mock_service_logger.info(line.strip()) - - stream_stdout_thread = threading.Thread(target=stream_stdout, daemon=True) - stream_stdout_thread.start() - - yield True - - # Check if process is still running - if mock_service_process.poll() is None: - mock_service_process.terminate() # Try to terminate gracefully - time.sleep(2) # Give it time to exit - if mock_service_process.poll() is None: - mock_service_process.kill() # Force kill if still running - - mock_service_logger.info('Terminated') - stream_stdout_thread.join() +## MockService_Dependencies executed as a standalone container during +# tests to prevent apparent dead locks and issues. +#@pytest.fixture(scope='session') +#def mock_service(): +# # NOTE: Starting MockServer in a separate process to prevent +# # issues with eventlet monkey-patched libraries. +# +# cmd = ['python', '-m', 'nbi.tests.MockService_Dependencies'] +# custom_env = os.environ.copy() +# mock_service_process = subprocess.Popen( +# cmd, +# env=custom_env, +# stdout=subprocess.PIPE, +# stderr=subprocess.STDOUT, +# stdin=subprocess.DEVNULL, +# text=True, +# bufsize=1 +# ) +# +# mock_service_logger = logging.getLogger('MockService_Dependencies') +# mock_service_logger.info('Started') +# +# def stream_stdout(): +# for line in iter(mock_service_process.stdout.readline, ''): +# mock_service_logger.info(line.strip()) +# +# stream_stdout_thread = threading.Thread(target=stream_stdout, daemon=True) +# stream_stdout_thread.start() +# +# yield True +# +# # Check if process is still running +# if mock_service_process.poll() is None: +# mock_service_process.terminate() # Try to terminate gracefully +# time.sleep(2) # Give it time to exit +# if mock_service_process.poll() is None: +# mock_service_process.kill() # Force kill if still running +# +# mock_service_logger.info('Terminated') +# stream_stdout_thread.join() @pytest.fixture(scope='session') def nbi_application( - mock_service # pylint: disable=redefined-outer-name, unused-argument +# mock_service # pylint: disable=redefined-outer-name, unused-argument ) -> NbiApplication: mock_web_server = MockWebServer() mock_web_server.start() @@ -112,15 +117,23 @@ def osm_wim( @pytest.fixture(scope='session') def context_client( - mock_service # pylint: disable=redefined-outer-name, unused-argument +# mock_service # pylint: disable=redefined-outer-name, unused-argument ) -> ContextClient: _client = ContextClient() yield _client _client.close() +@pytest.fixture(scope='session') +def device_client( +# mock_service # pylint: disable=redefined-outer-name, unused-argument +) -> DeviceClient: + _client = DeviceClient() + yield _client + _client.close() + @pytest.fixture(scope='session') def service_client( - mock_service # pylint: disable=redefined-outer-name, unused-argument +# mock_service # pylint: disable=redefined-outer-name, unused-argument ) -> ServiceClient: _client = ServiceClient() yield _client @@ -128,7 +141,7 @@ def service_client( @pytest.fixture(scope='session') def slice_client( - mock_service # pylint: disable=redefined-outer-name, unused-argument +# mock_service # pylint: disable=redefined-outer-name, unused-argument ) -> SliceClient: _client = SliceClient() yield _client diff --git a/src/nbi/tests/test_core.py b/src/nbi/tests/test_core.py index f41c26f5d..39db882c0 100644 --- a/src/nbi/tests/test_core.py +++ b/src/nbi/tests/test_core.py @@ -25,7 +25,8 @@ from .Constants import NBI_SERVICE_BASE_URL from .HeartbeatClientNamespace import HeartbeatClientNamespace from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - mock_service, nbi_application, do_rest_get_request + #mock_service, + nbi_application, do_rest_get_request ) diff --git a/src/nbi/tests/test_etsi_bwm.py b/src/nbi/tests/test_etsi_bwm.py index 568ab2ff7..29666ffad 100644 --- a/src/nbi/tests/test_etsi_bwm.py +++ b/src/nbi/tests/test_etsi_bwm.py @@ -29,7 +29,8 @@ from context.client.ContextClient import ContextClient from nbi.service.NbiApplication import NbiApplication from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - mock_service, nbi_application, context_client, + #mock_service, + nbi_application, context_client, do_rest_delete_request, do_rest_get_request, do_rest_patch_request, do_rest_post_request, do_rest_put_request ) diff --git a/src/nbi/tests/test_ietf_l2vpn.py b/src/nbi/tests/test_ietf_l2vpn.py index 37b7d60b0..f620040e1 100644 --- a/src/nbi/tests/test_ietf_l2vpn.py +++ b/src/nbi/tests/test_ietf_l2vpn.py @@ -28,7 +28,8 @@ from tests.tools.mock_osm.MockOSM import MockOSM from .OSM_Constants import SERVICE_CONNECTION_POINTS_1, SERVICE_CONNECTION_POINTS_2, SERVICE_TYPE from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - mock_service, nbi_application, osm_wim, context_client + #mock_service, + nbi_application, osm_wim, context_client ) diff --git a/src/nbi/tests/test_ietf_l3vpn.py b/src/nbi/tests/test_ietf_l3vpn.py index b526611c6..c3176c25a 100644 --- a/src/nbi/tests/test_ietf_l3vpn.py +++ b/src/nbi/tests/test_ietf_l3vpn.py @@ -30,7 +30,8 @@ from context.client.ContextClient import ContextClient from nbi.service.NbiApplication import NbiApplication from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - mock_service, nbi_application, context_client, + #mock_service, + nbi_application, context_client, do_rest_delete_request, do_rest_get_request, do_rest_post_request ) diff --git a/src/nbi/tests/test_ietf_network.py b/src/nbi/tests/test_ietf_network.py index 182f0ecf7..ceb61aac3 100644 --- a/src/nbi/tests/test_ietf_network.py +++ b/src/nbi/tests/test_ietf_network.py @@ -34,7 +34,8 @@ os.environ['IETF_NETWORK_RENDERER'] = 'PYANGBIND' from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - mock_service, nbi_application, context_client, + #mock_service, + nbi_application, context_client, do_rest_get_request ) diff --git a/src/nbi/tests/test_tfs_api.py b/src/nbi/tests/test_tfs_api.py index d8009530f..ed5630a9b 100644 --- a/src/nbi/tests/test_tfs_api.py +++ b/src/nbi/tests/test_tfs_api.py @@ -39,7 +39,8 @@ from context.client.ContextClient import ContextClient from nbi.service.NbiApplication import NbiApplication from .PrepareTestScenario import ( # pylint: disable=unused-import # be careful, order of symbols is important here! - mock_service, nbi_application, context_client, + #mock_service, + nbi_application, context_client, do_rest_get_request ) diff --git a/src/tests/.gitlab-ci.yml b/src/tests/.gitlab-ci.yml index ec8ab77d9..26a97416f 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -22,3 +22,5 @@ include: # - local: '/src/tests/ofc24/.gitlab-ci.yml' # - local: '/src/tests/eucnc24/.gitlab-ci.yml' # - local: '/src/tests/ecoc24/.gitlab-ci.yml' + + - local: '/src/tools/mock_nbi_dependencies/.gitlab-ci.yml' diff --git a/src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml b/src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml new file mode 100644 index 000000000..d84b3ade5 --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml @@ -0,0 +1,37 @@ +# Copyright 2022-2024 ETSI 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. + +# Build, tag, and push the Docker image to the GitLab Docker registry +build mock_nbi_dependencies: + stage: build + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker buildx build -t "$CI_REGISTRY_IMAGE/mock_nbi_dependencies:test" -f ./src/tests/tools/mock_nbi_dependencies/Dockerfile . + - docker push "$CI_REGISTRY_IMAGE/mock_nbi_dependencies:test" + after_script: + - docker images --filter="dangling=true" --quiet | xargs -r docker rmi + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - changes: + - src/common/**/*.py + - proto/*.proto + - src/src/tests/tools/mock_nbi_dependencies/**/*.{py,in,yml,yaml} + - src/src/tests/tools/mock_nbi_dependencies/Dockerfile + - src/nbi/**/*.{py,in,yml} + - src/nbi/Dockerfile + - src/nbi/tests/*.py + - manifests/nbiservice.yaml + - .gitlab-ci.yml diff --git a/src/tests/tools/mock_nbi_dependencies/Config.py b/src/tests/tools/mock_nbi_dependencies/Config.py new file mode 100644 index 000000000..516a58d15 --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/Config.py @@ -0,0 +1,19 @@ +# Copyright 2022-2024 ETSI 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. + +from common.Settings import get_log_level, get_setting + +BIND_ADDRESS = str(get_setting('BIND_ADDRESS', default='0.0.0.0')) +BIND_PORT = int(get_setting('BIND_PORT', default=10000 )) +LOG_LEVEL = str(get_log_level()) diff --git a/src/tests/tools/mock_nbi_dependencies/Dockerfile b/src/tests/tools/mock_nbi_dependencies/Dockerfile new file mode 100644 index 000000000..206faa69c --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/Dockerfile @@ -0,0 +1,37 @@ +# Copyright 2022-2024 ETSI 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. + +FROM python:3.9-slim + +# Set Python to show logs as they occur +ENV PYTHONUNBUFFERED=0 + +# Get generic Python packages +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools + +# Create component sub-folders, and copy content +RUN mkdir -p /var/teraflow/mock_nbi_dependencies +WORKDIR /var/teraflow/mock_nbi_dependencies +COPY . . + +# Get specific Python packages +RUN pip-compile --quiet --output-file=requirements.txt requirements.in +RUN python3 -m pip install -r requirements.txt + +RUN python3 -m pip list + +# Start the service +ENTRYPOINT ["python", "MockNbiDependencies.py"] diff --git a/src/tests/tools/mock_nbi_dependencies/MockNbiDependencies.py b/src/tests/tools/mock_nbi_dependencies/MockNbiDependencies.py new file mode 100644 index 000000000..dd121961d --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/MockNbiDependencies.py @@ -0,0 +1,48 @@ +# Copyright 2022-2024 ETSI 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 logging, signal, sys, threading +from .MockService_Dependencies import MockService_Dependencies +from .Config import BIND_ADDRESS, BIND_PORT, LOG_LEVEL + +logging.basicConfig( + level=LOG_LEVEL, + format='[%(asctime)s] %(levelname)s:%(name)s:%(message)s', +) +LOGGER = logging.getLogger(__name__) +TERMINATE = threading.Event() + +def signal_handler(signal, frame): # pylint: disable=redefined-outer-name,unused-argument + LOGGER.warning('Terminate signal received') + TERMINATE.set() + +def main(): + LOGGER.info('Starting...') + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + + grpc_service = MockService_Dependencies(BIND_PORT, bind_address=BIND_ADDRESS) + grpc_service.start() + + # Wait for Ctrl+C or termination signal + while not TERMINATE.wait(timeout=1.0): pass + + LOGGER.info('Terminating...') + grpc_service.stop() + + LOGGER.info('Bye') + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/tests/tools/mock_nbi_dependencies/MockService_Dependencies.py b/src/tests/tools/mock_nbi_dependencies/MockService_Dependencies.py new file mode 100644 index 000000000..74ef6bdad --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/MockService_Dependencies.py @@ -0,0 +1,55 @@ +# Copyright 2022-2024 ETSI 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. + +from typing import Optional, Union +from common.proto.context_pb2_grpc import add_ContextServiceServicer_to_server +from common.proto.device_pb2_grpc import add_DeviceServiceServicer_to_server +from common.proto.service_pb2_grpc import add_ServiceServiceServicer_to_server +from common.proto.slice_pb2_grpc import add_SliceServiceServicer_to_server +from common.tests.MockServicerImpl_Context import MockServicerImpl_Context +from common.tests.MockServicerImpl_Device import MockServicerImpl_Device +from common.tests.MockServicerImpl_Service import MockServicerImpl_Service +from common.tests.MockServicerImpl_Slice import MockServicerImpl_Slice +from common.tools.service.GenericGrpcService import GenericGrpcService + + +class MockService_Dependencies(GenericGrpcService): + # Mock Service implementing Mock Context, Device, Service and Slice to + # simplify unitary tests of the NBI component. + + def __init__( + self, bind_port : Union[str, int], bind_address : Optional[str] = None, + max_workers : Optional[int] = None, grace_period : Optional[int] = None, + enable_health_servicer : bool = True, enable_reflection : bool = False, + cls_name : str = 'MockService' + ) -> None: + super().__init__( + bind_port, bind_address=bind_address, max_workers=max_workers, + grace_period=grace_period, enable_health_servicer=enable_health_servicer, + enable_reflection=enable_reflection, cls_name=cls_name + ) + + # pylint: disable=attribute-defined-outside-init + def install_servicers(self): + self.context_servicer = MockServicerImpl_Context() + add_ContextServiceServicer_to_server(self.context_servicer, self.server) + + self.device_servicer = MockServicerImpl_Device() + add_DeviceServiceServicer_to_server(self.device_servicer, self.server) + + self.service_servicer = MockServicerImpl_Service() + add_ServiceServiceServicer_to_server(self.service_servicer, self.server) + + self.slice_servicer = MockServicerImpl_Slice() + add_SliceServiceServicer_to_server(self.slice_servicer, self.server) diff --git a/src/tests/tools/mock_nbi_dependencies/README.md b/src/tests/tools/mock_nbi_dependencies/README.md new file mode 100644 index 000000000..0f3228b1c --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/README.md @@ -0,0 +1,21 @@ +# Mock NBI Dependencies + +This gRPC Mock NBI Dependencies server implements very basic support for the testing of the NBI component. + + +## 1. Install requirements for the Mock NBI Dependencies +__NOTE__: if you run the Mock NBI Dependencies from the PyEnv used for developing on the TeraFlowSDN +framework and you followed the official steps in +[Development Guide > Configure Environment > Python](https://tfs.etsi.org/documentation/latest/development_guide/#211-python), +all the requirements are already in place. Install them only if you execute it in a separate/standalone environment. + +Install the required dependencies as follows: +```bash +pip install -r src/tests/tools/mock_nbi_dependencies/requirements.in +``` + +## 2. Run the Mock NBI Dependencies +Run the Mock NBI Dependencies as follows: +```bash +python src/tests/tools/mock_nbi_dependencies/MockNbiDependencies.py +``` diff --git a/src/tests/tools/mock_nbi_dependencies/__init__.py b/src/tests/tools/mock_nbi_dependencies/__init__.py new file mode 100644 index 000000000..53d5157f7 --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/tests/tools/mock_nbi_dependencies/build.sh b/src/tests/tools/mock_nbi_dependencies/build.sh new file mode 100755 index 000000000..e284de000 --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/build.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + +# Make folder containing the script the root folder for its execution +cd $(dirname $0) + +docker build -t mock-nbi-dependencies:test -f Dockerfile . +docker tag mock-nbi-dependencies:test localhost:32000/tfs/mock-nbi-dependencies:test +docker push localhost:32000/tfs/mock-nbi-dependencies:test diff --git a/src/tests/tools/mock_nbi_dependencies/deploy.sh b/src/tests/tools/mock_nbi_dependencies/deploy.sh new file mode 100755 index 000000000..8e876a7d3 --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/deploy.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + +kubectl delete namespace mocks +kubectl --namespace mocks apply -f mock-nbi-dependencies.yaml diff --git a/src/tests/tools/mock_nbi_dependencies/mock-nbi-dependencies.yaml b/src/tests/tools/mock_nbi_dependencies/mock-nbi-dependencies.yaml new file mode 100644 index 000000000..770dbf742 --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/mock-nbi-dependencies.yaml @@ -0,0 +1,76 @@ +# Copyright 2022-2024 ETSI 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: + name: mocks +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mock-nbi-dependencies +spec: + selector: + matchLabels: + app: mock-nbi-dependencies + replicas: 1 + template: + metadata: + labels: + app: mock-nbi-dependencies + spec: + terminationGracePeriodSeconds: 5 + containers: + - name: server + image: localhost:32000/tfs/mock-nbi-dependencies:test + imagePullPolicy: IfNotPresent + ports: + - containerPort: 10000 + env: + - name: BIND_ADDRESS + value: "0.0.0.0" + - name: BIND_PORT + value: "10000" + - name: LOG_LEVEL + value: "DEBUG" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10000"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:10000"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 700m + memory: 1024Mi +--- +apiVersion: v1 +kind: Service +metadata: + name: mock-nbi-dependencies + labels: + app: mock-nbi-dependencies +spec: + type: ClusterIP + selector: + app: mock-nbi-dependencies + ports: + - name: grpc + protocol: TCP + port: 10000 + targetPort: 10000 diff --git a/src/tests/tools/mock_nbi_dependencies/requirements.in b/src/tests/tools/mock_nbi_dependencies/requirements.in new file mode 100644 index 000000000..39d8525f2 --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/requirements.in @@ -0,0 +1,19 @@ +# Copyright 2022-2024 ETSI 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. + +grpcio==1.47.* +grpcio-health-checking==1.47.* +grpcio-reflection==1.47.* +grpcio-tools==1.47.* +protobuf==3.20.* diff --git a/src/tests/tools/mock_nbi_dependencies/run.sh b/src/tests/tools/mock_nbi_dependencies/run.sh new file mode 100755 index 000000000..47ea5717a --- /dev/null +++ b/src/tests/tools/mock_nbi_dependencies/run.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# Copyright 2022-2024 ETSI 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. + +# Make folder containing the script the root folder for its execution +cd $(dirname $0) + +python MockIetfActnSdnCtrl.py -- GitLab From 1f345a50c0a3e5ce3238a1a5d634952fb5481c7f Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 11:24:18 +0000 Subject: [PATCH 063/213] NBI component: - Fixed unitary tests - Fixed CI/CD pipeline --- src/nbi/.gitlab-ci.yml | 6 ++++-- src/nbi/tests/PrepareTestScenario.py | 8 ++++---- src/tests/.gitlab-ci.yml | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 2aad65dc4..5c24202ba 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -65,7 +65,7 @@ unit_test nbi: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker pull "$CI_REGISTRY_IMAGE/mock_nbi_dependencies:test" - > - docker run --name mock_nbi_dependencies -d + docker run --name mock_nbi_dependencies -d -p 10000:10000 --network=teraflowbridge --env BIND_ADDRESS=0.0.0.0 --env BIND_PORT=10000 @@ -80,6 +80,7 @@ unit_test nbi: $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG - sleep 5 - docker ps -a + - docker logs mock_nbi_dependencies - docker logs $IMAGE_NAME - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml" @@ -97,7 +98,8 @@ unit_test nbi: - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' after_script: - - docker rm -f $IMAGE_NAME + - docker logs mock_nbi_dependencies + - docker rm -f mock_nbi_dependencies $IMAGE_NAME - docker network rm teraflowbridge 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/nbi/tests/PrepareTestScenario.py b/src/nbi/tests/PrepareTestScenario.py index a9922de1b..113440e32 100644 --- a/src/nbi/tests/PrepareTestScenario.py +++ b/src/nbi/tests/PrepareTestScenario.py @@ -38,13 +38,13 @@ from .MockWebServer import MockWebServer os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) -os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_nbi_dependencies') os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) -os.environ[get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_nbi_dependencies') os.environ[get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) -os.environ[get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_nbi_dependencies') os.environ[get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) -os.environ[get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_nbi_dependencies') os.environ[get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) diff --git a/src/tests/.gitlab-ci.yml b/src/tests/.gitlab-ci.yml index 26a97416f..01d38f47d 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -23,4 +23,4 @@ include: # - local: '/src/tests/eucnc24/.gitlab-ci.yml' # - local: '/src/tests/ecoc24/.gitlab-ci.yml' - - local: '/src/tools/mock_nbi_dependencies/.gitlab-ci.yml' + - local: '/src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml' -- GitLab From b74430e6f6185f7912c3aa4d5b1d6084faae7511 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 11:27:09 +0000 Subject: [PATCH 064/213] NBI component: - Fixed unitary tests - Fixed CI/CD pipeline --- src/tests/tools/mock_nbi_dependencies/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tests/tools/mock_nbi_dependencies/Dockerfile b/src/tests/tools/mock_nbi_dependencies/Dockerfile index 206faa69c..3b4443b82 100644 --- a/src/tests/tools/mock_nbi_dependencies/Dockerfile +++ b/src/tests/tools/mock_nbi_dependencies/Dockerfile @@ -28,6 +28,7 @@ WORKDIR /var/teraflow/mock_nbi_dependencies COPY . . # Get specific Python packages +RUN ls -la RUN pip-compile --quiet --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt -- GitLab From ce0401b1d839f92d08600bb2f860cd28aea16871 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 11:35:24 +0000 Subject: [PATCH 065/213] NBI component: - Fixed unitary tests - Fixed CI/CD pipeline --- .../tools/mock_nbi_dependencies/Dockerfile | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/src/tests/tools/mock_nbi_dependencies/Dockerfile b/src/tests/tools/mock_nbi_dependencies/Dockerfile index 3b4443b82..d4cd864f3 100644 --- a/src/tests/tools/mock_nbi_dependencies/Dockerfile +++ b/src/tests/tools/mock_nbi_dependencies/Dockerfile @@ -14,25 +14,54 @@ FROM python:3.9-slim +# Install dependencies +RUN apt-get --yes --quiet --quiet update && \ + apt-get --yes --quiet --quiet install wget g++ git && \ + rm -rf /var/lib/apt/lists/* + # Set Python to show logs as they occur ENV PYTHONUNBUFFERED=0 +# Download the gRPC health probe +RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ + wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ + chmod +x /bin/grpc_health_probe + # Get generic Python packages RUN python3 -m pip install --upgrade pip RUN python3 -m pip install --upgrade setuptools wheel RUN python3 -m pip install --upgrade pip-tools -# Create component sub-folders, and copy content +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components +WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt + +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; + +# Create component sub-folders, get specific Python packages RUN mkdir -p /var/teraflow/mock_nbi_dependencies WORKDIR /var/teraflow/mock_nbi_dependencies -COPY . . - -# Get specific Python packages -RUN ls -la +COPY src/mock_nbi_dependencies/requirements.in requirements.in RUN pip-compile --quiet --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt -RUN python3 -m pip list +# Add component files into working directory +COPY src/tests/tools/mock_nbi_dependencies/. ./ # Start the service ENTRYPOINT ["python", "MockNbiDependencies.py"] -- GitLab From ac2572c863ad77bbb359a30ffab5fc9f520fb0b8 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 11:42:52 +0000 Subject: [PATCH 066/213] NBI component: - Fixed unitary tests - Fixed CI/CD pipeline --- src/tests/tools/mock_nbi_dependencies/Dockerfile | 2 +- src/tests/tools/mock_nbi_dependencies/requirements.in | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/tests/tools/mock_nbi_dependencies/Dockerfile b/src/tests/tools/mock_nbi_dependencies/Dockerfile index d4cd864f3..2e0bc7b5b 100644 --- a/src/tests/tools/mock_nbi_dependencies/Dockerfile +++ b/src/tests/tools/mock_nbi_dependencies/Dockerfile @@ -56,7 +56,7 @@ RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; # Create component sub-folders, get specific Python packages RUN mkdir -p /var/teraflow/mock_nbi_dependencies WORKDIR /var/teraflow/mock_nbi_dependencies -COPY src/mock_nbi_dependencies/requirements.in requirements.in +COPY src/tests/tools/mock_nbi_dependencies/requirements.in requirements.in RUN pip-compile --quiet --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt diff --git a/src/tests/tools/mock_nbi_dependencies/requirements.in b/src/tests/tools/mock_nbi_dependencies/requirements.in index 39d8525f2..53d5157f7 100644 --- a/src/tests/tools/mock_nbi_dependencies/requirements.in +++ b/src/tests/tools/mock_nbi_dependencies/requirements.in @@ -12,8 +12,3 @@ # See the License for the specific language governing permissions and # limitations under the License. -grpcio==1.47.* -grpcio-health-checking==1.47.* -grpcio-reflection==1.47.* -grpcio-tools==1.47.* -protobuf==3.20.* -- GitLab From 51bfdca9fa3c54304abe2cfe1c415125b9d0fe2f Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 12:01:34 +0000 Subject: [PATCH 067/213] NBI component: - Fixed mock_nbi_dependencies tool --- src/tests/tools/mock_nbi_dependencies/Dockerfile | 5 +++-- src/tests/tools/mock_nbi_dependencies/README.md | 2 +- .../{MockNbiDependencies.py => __main__.py} | 0 3 files changed, 4 insertions(+), 3 deletions(-) rename src/tests/tools/mock_nbi_dependencies/{MockNbiDependencies.py => __main__.py} (100%) diff --git a/src/tests/tools/mock_nbi_dependencies/Dockerfile b/src/tests/tools/mock_nbi_dependencies/Dockerfile index 2e0bc7b5b..3a3a5e854 100644 --- a/src/tests/tools/mock_nbi_dependencies/Dockerfile +++ b/src/tests/tools/mock_nbi_dependencies/Dockerfile @@ -61,7 +61,8 @@ RUN pip-compile --quiet --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt # Add component files into working directory -COPY src/tests/tools/mock_nbi_dependencies/. ./ +WORKDIR /var/teraflow +COPY src/tests/tools/mock_nbi_dependencies/. mock_nbi_dependencies/ # Start the service -ENTRYPOINT ["python", "MockNbiDependencies.py"] +ENTRYPOINT ["python", "-m", "tests.tools.mock_nbi_dependencies"] diff --git a/src/tests/tools/mock_nbi_dependencies/README.md b/src/tests/tools/mock_nbi_dependencies/README.md index 0f3228b1c..a6d69fdf9 100644 --- a/src/tests/tools/mock_nbi_dependencies/README.md +++ b/src/tests/tools/mock_nbi_dependencies/README.md @@ -17,5 +17,5 @@ pip install -r src/tests/tools/mock_nbi_dependencies/requirements.in ## 2. Run the Mock NBI Dependencies Run the Mock NBI Dependencies as follows: ```bash -python src/tests/tools/mock_nbi_dependencies/MockNbiDependencies.py +PYTHONPATH=./src python -m tests.tools.mock_nbi_dependencies ``` diff --git a/src/tests/tools/mock_nbi_dependencies/MockNbiDependencies.py b/src/tests/tools/mock_nbi_dependencies/__main__.py similarity index 100% rename from src/tests/tools/mock_nbi_dependencies/MockNbiDependencies.py rename to src/tests/tools/mock_nbi_dependencies/__main__.py -- GitLab From bde896caa557a01a308877456544d7d66f066ed1 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 12:10:22 +0000 Subject: [PATCH 068/213] NBI component: - Fixed mock_nbi_dependencies tool --- src/tests/tools/mock_nbi_dependencies/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/tools/mock_nbi_dependencies/Dockerfile b/src/tests/tools/mock_nbi_dependencies/Dockerfile index 3a3a5e854..fef6bd962 100644 --- a/src/tests/tools/mock_nbi_dependencies/Dockerfile +++ b/src/tests/tools/mock_nbi_dependencies/Dockerfile @@ -65,4 +65,4 @@ WORKDIR /var/teraflow COPY src/tests/tools/mock_nbi_dependencies/. mock_nbi_dependencies/ # Start the service -ENTRYPOINT ["python", "-m", "tests.tools.mock_nbi_dependencies"] +ENTRYPOINT ["python", "-m", "mock_nbi_dependencies"] -- GitLab From cd2f8ca6bf4cd802077301a941eb5e55b0923e83 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 12:22:30 +0000 Subject: [PATCH 069/213] NBI component: - Reduced log level of passing unitary tests - Fixed mock_nbi_dependencies tool --- src/nbi/.gitlab-ci.yml | 2 +- src/tests/tools/mock_nbi_dependencies/Dockerfile | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 5c24202ba..cb47d6683 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -83,7 +83,7 @@ unit_test nbi: - docker logs mock_nbi_dependencies - docker logs $IMAGE_NAME - date - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml" - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" - date diff --git a/src/tests/tools/mock_nbi_dependencies/Dockerfile b/src/tests/tools/mock_nbi_dependencies/Dockerfile index fef6bd962..b4d2b57d5 100644 --- a/src/tests/tools/mock_nbi_dependencies/Dockerfile +++ b/src/tests/tools/mock_nbi_dependencies/Dockerfile @@ -62,6 +62,14 @@ RUN python3 -m pip install -r requirements.txt # Add component files into working directory WORKDIR /var/teraflow +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/service/__init__.py service/__init__.py +COPY src/service/client/. service/client/ +COPY src/slice/__init__.py slice/__init__.py +COPY src/slice/client/. slice/client/ COPY src/tests/tools/mock_nbi_dependencies/. mock_nbi_dependencies/ # Start the service -- GitLab From e73f1e607087ee83545b8e5c5aa22efa2ef03f98 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 16:06:20 +0000 Subject: [PATCH 070/213] NBI component: - Fixed mock_nbi_dependencies tool --- .../tools/mock_nbi_dependencies/Config.py | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/tests/tools/mock_nbi_dependencies/Config.py b/src/tests/tools/mock_nbi_dependencies/Config.py index 516a58d15..621bc3187 100644 --- a/src/tests/tools/mock_nbi_dependencies/Config.py +++ b/src/tests/tools/mock_nbi_dependencies/Config.py @@ -12,8 +12,26 @@ # See the License for the specific language governing permissions and # limitations under the License. -from common.Settings import get_log_level, get_setting +import os +from common.Constants import ServiceNameEnum +from common.Settings import ( + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, + get_env_var_name, get_log_level, get_setting +) + +LOCAL_HOST = '127.0.0.1' +MOCK_PORT = 10000 BIND_ADDRESS = str(get_setting('BIND_ADDRESS', default='0.0.0.0')) -BIND_PORT = int(get_setting('BIND_PORT', default=10000 )) +BIND_PORT = int(get_setting('BIND_PORT', default=MOCK_PORT)) LOG_LEVEL = str(get_log_level()) + +MOCKED_SERVICES = [ + ServiceNameEnum.CONTEXT, + ServiceNameEnum.DEVICE, + ServiceNameEnum.SERVICE, + ServiceNameEnum.SLICE, +] +for mocked_service in MOCKED_SERVICES: + os.environ[get_env_var_name(mocked_service, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) + os.environ[get_env_var_name(mocked_service, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(BIND_PORT ) -- GitLab From b352ccce3b26d4b53969f1a562dfe98d1177c23c Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 16:17:35 +0000 Subject: [PATCH 071/213] NBI component: - Code cleanup --- src/nbi/.gitlab-ci.yml | 10 ++++----- .../tools/mock_nbi_dependencies/build.sh | 21 ------------------- .../tools/mock_nbi_dependencies/deploy.sh | 17 --------------- src/tests/tools/mock_nbi_dependencies/run.sh | 19 ----------------- 4 files changed, 5 insertions(+), 62 deletions(-) delete mode 100755 src/tests/tools/mock_nbi_dependencies/build.sh delete mode 100755 src/tests/tools/mock_nbi_dependencies/deploy.sh delete mode 100755 src/tests/tools/mock_nbi_dependencies/run.sh diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index cb47d6683..1f0857415 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -85,15 +85,15 @@ unit_test nbi: - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml" - date - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" - date - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" - date - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" - date - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" - date - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" - date - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' diff --git a/src/tests/tools/mock_nbi_dependencies/build.sh b/src/tests/tools/mock_nbi_dependencies/build.sh deleted file mode 100755 index e284de000..000000000 --- a/src/tests/tools/mock_nbi_dependencies/build.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -# Copyright 2022-2024 ETSI 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. - -# Make folder containing the script the root folder for its execution -cd $(dirname $0) - -docker build -t mock-nbi-dependencies:test -f Dockerfile . -docker tag mock-nbi-dependencies:test localhost:32000/tfs/mock-nbi-dependencies:test -docker push localhost:32000/tfs/mock-nbi-dependencies:test diff --git a/src/tests/tools/mock_nbi_dependencies/deploy.sh b/src/tests/tools/mock_nbi_dependencies/deploy.sh deleted file mode 100755 index 8e876a7d3..000000000 --- a/src/tests/tools/mock_nbi_dependencies/deploy.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -# Copyright 2022-2024 ETSI 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. - -kubectl delete namespace mocks -kubectl --namespace mocks apply -f mock-nbi-dependencies.yaml diff --git a/src/tests/tools/mock_nbi_dependencies/run.sh b/src/tests/tools/mock_nbi_dependencies/run.sh deleted file mode 100755 index 47ea5717a..000000000 --- a/src/tests/tools/mock_nbi_dependencies/run.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2022-2024 ETSI 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. - -# Make folder containing the script the root folder for its execution -cd $(dirname $0) - -python MockIetfActnSdnCtrl.py -- GitLab From 6539424892442bf0b2885b1b6bb7f96178293e65 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 16:23:18 +0000 Subject: [PATCH 072/213] NBI component: - Code cleanup --- src/nbi/.gitlab-ci.yml | 16 ++++++++-------- src/nbi/tests/PrepareTestScenario.py | 8 ++++---- src/tests/.gitlab-ci.yml | 2 +- .../tools/mock_nbi_dependencies/.gitlab-ci.yml | 10 +++++----- src/tests/tools/mock_nbi_dependencies/Dockerfile | 10 +++++----- src/tests/tools/mock_nbi_dependencies/README.md | 16 ++++++++-------- 6 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 1f0857415..52f9d856b 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -46,7 +46,7 @@ unit_test nbi: stage: unit_test needs: - build nbi - - build mock_nbi_dependencies + - build mock_tfs_nbi_dependencies before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - > @@ -63,14 +63,14 @@ unit_test nbi: fi script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - - docker pull "$CI_REGISTRY_IMAGE/mock_nbi_dependencies:test" + - docker pull "$CI_REGISTRY_IMAGE/mock_tfs_nbi_dependencies:test" - > - docker run --name mock_nbi_dependencies -d -p 10000:10000 + docker run --name mock_tfs_nbi_dependencies -d -p 10000:10000 --network=teraflowbridge --env BIND_ADDRESS=0.0.0.0 --env BIND_PORT=10000 - --env LOG_LEVEL=DEBUG - $CI_REGISTRY_IMAGE/mock_nbi_dependencies:test + --env LOG_LEVEL=INFO + $CI_REGISTRY_IMAGE/mock_tfs_nbi_dependencies:test - > docker run --name $IMAGE_NAME -d -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge @@ -80,7 +80,7 @@ unit_test nbi: $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG - sleep 5 - docker ps -a - - docker logs mock_nbi_dependencies + - docker logs mock_tfs_nbi_dependencies - docker logs $IMAGE_NAME - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml" @@ -98,8 +98,8 @@ unit_test nbi: - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' after_script: - - docker logs mock_nbi_dependencies - - docker rm -f mock_nbi_dependencies $IMAGE_NAME + - docker logs mock_tfs_nbi_dependencies + - docker rm -f mock_tfs_nbi_dependencies $IMAGE_NAME - docker network rm teraflowbridge 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/nbi/tests/PrepareTestScenario.py b/src/nbi/tests/PrepareTestScenario.py index 113440e32..1510dd298 100644 --- a/src/nbi/tests/PrepareTestScenario.py +++ b/src/nbi/tests/PrepareTestScenario.py @@ -38,13 +38,13 @@ from .MockWebServer import MockWebServer os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) -os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_nbi_dependencies') +os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_tfs_nbi_dependencies') os.environ[get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) -os.environ[get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_nbi_dependencies') +os.environ[get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_tfs_nbi_dependencies') os.environ[get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) -os.environ[get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_nbi_dependencies') +os.environ[get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_tfs_nbi_dependencies') os.environ[get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) -os.environ[get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_nbi_dependencies') +os.environ[get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str('mock_tfs_nbi_dependencies') os.environ[get_env_var_name(ServiceNameEnum.SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(MOCKSERVICE_PORT) diff --git a/src/tests/.gitlab-ci.yml b/src/tests/.gitlab-ci.yml index 01d38f47d..20951c298 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -23,4 +23,4 @@ include: # - local: '/src/tests/eucnc24/.gitlab-ci.yml' # - local: '/src/tests/ecoc24/.gitlab-ci.yml' - - local: '/src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml' + - local: '/src/tests/tools/mock_tfs_nbi_dependencies/.gitlab-ci.yml' diff --git a/src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml b/src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml index d84b3ade5..911554988 100644 --- a/src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml +++ b/src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml @@ -13,13 +13,13 @@ # limitations under the License. # Build, tag, and push the Docker image to the GitLab Docker registry -build mock_nbi_dependencies: +build mock_tfs_nbi_dependencies: stage: build before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY script: - - docker buildx build -t "$CI_REGISTRY_IMAGE/mock_nbi_dependencies:test" -f ./src/tests/tools/mock_nbi_dependencies/Dockerfile . - - docker push "$CI_REGISTRY_IMAGE/mock_nbi_dependencies:test" + - docker buildx build -t "$CI_REGISTRY_IMAGE/mock_tfs_nbi_dependencies:test" -f ./src/tests/tools/mock_tfs_nbi_dependencies/Dockerfile . + - docker push "$CI_REGISTRY_IMAGE/mock_tfs_nbi_dependencies:test" after_script: - docker images --filter="dangling=true" --quiet | xargs -r docker rmi rules: @@ -28,8 +28,8 @@ build mock_nbi_dependencies: - changes: - src/common/**/*.py - proto/*.proto - - src/src/tests/tools/mock_nbi_dependencies/**/*.{py,in,yml,yaml} - - src/src/tests/tools/mock_nbi_dependencies/Dockerfile + - src/src/tests/tools/mock_tfs_nbi_dependencies/**/*.{py,in,yml,yaml} + - src/src/tests/tools/mock_tfs_nbi_dependencies/Dockerfile - src/nbi/**/*.{py,in,yml} - src/nbi/Dockerfile - src/nbi/tests/*.py diff --git a/src/tests/tools/mock_nbi_dependencies/Dockerfile b/src/tests/tools/mock_nbi_dependencies/Dockerfile index b4d2b57d5..9e79fa1e4 100644 --- a/src/tests/tools/mock_nbi_dependencies/Dockerfile +++ b/src/tests/tools/mock_nbi_dependencies/Dockerfile @@ -54,9 +54,9 @@ RUN rm *.proto RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; # Create component sub-folders, get specific Python packages -RUN mkdir -p /var/teraflow/mock_nbi_dependencies -WORKDIR /var/teraflow/mock_nbi_dependencies -COPY src/tests/tools/mock_nbi_dependencies/requirements.in requirements.in +RUN mkdir -p /var/teraflow/mock_tfs_nbi_dependencies +WORKDIR /var/teraflow/mock_tfs_nbi_dependencies +COPY src/tests/tools/mock_tfs_nbi_dependencies/requirements.in requirements.in RUN pip-compile --quiet --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt @@ -70,7 +70,7 @@ COPY src/service/__init__.py service/__init__.py COPY src/service/client/. service/client/ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ -COPY src/tests/tools/mock_nbi_dependencies/. mock_nbi_dependencies/ +COPY src/tests/tools/mock_tfs_nbi_dependencies/. mock_tfs_nbi_dependencies/ # Start the service -ENTRYPOINT ["python", "-m", "mock_nbi_dependencies"] +ENTRYPOINT ["python", "-m", "mock_tfs_nbi_dependencies"] diff --git a/src/tests/tools/mock_nbi_dependencies/README.md b/src/tests/tools/mock_nbi_dependencies/README.md index a6d69fdf9..2de7204f4 100644 --- a/src/tests/tools/mock_nbi_dependencies/README.md +++ b/src/tests/tools/mock_nbi_dependencies/README.md @@ -1,21 +1,21 @@ -# Mock NBI Dependencies +# Mock TFS NBI Dependencies -This gRPC Mock NBI Dependencies server implements very basic support for the testing of the NBI component. +This gRPC Mock TFS NBI Dependencies server implements very basic support for the testing of the NBI component. -## 1. Install requirements for the Mock NBI Dependencies -__NOTE__: if you run the Mock NBI Dependencies from the PyEnv used for developing on the TeraFlowSDN +## 1. Install requirements for the Mock TFS NBI Dependencies +__NOTE__: if you run the Mock TFS NBI Dependencies from the PyEnv used for developing on the TeraFlowSDN framework and you followed the official steps in [Development Guide > Configure Environment > Python](https://tfs.etsi.org/documentation/latest/development_guide/#211-python), all the requirements are already in place. Install them only if you execute it in a separate/standalone environment. Install the required dependencies as follows: ```bash -pip install -r src/tests/tools/mock_nbi_dependencies/requirements.in +pip install -r src/tests/tools/mock_tfs_nbi_dependencies/requirements.in ``` -## 2. Run the Mock NBI Dependencies -Run the Mock NBI Dependencies as follows: +## 2. Run the Mock TFS NBI Dependencies +Run the Mock TFS NBI Dependencies as follows: ```bash -PYTHONPATH=./src python -m tests.tools.mock_nbi_dependencies +PYTHONPATH=./src python -m tests.tools.mock_tfs_nbi_dependencies ``` -- GitLab From ea34a7daec9cbe4234d3cea1f9a7dca7b0bc531b Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 16:24:23 +0000 Subject: [PATCH 073/213] NBI component: - Code cleanup --- .../.gitlab-ci.yml | 0 .../Config.py | 0 .../Dockerfile | 0 .../MockService_Dependencies.py | 0 .../README.md | 0 .../__init__.py | 0 .../__main__.py | 0 .../mock-nbi-dependencies.yaml | 0 .../requirements.in | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename src/tests/tools/{mock_nbi_dependencies => mock_tfs_nbi_dependencies}/.gitlab-ci.yml (100%) rename src/tests/tools/{mock_nbi_dependencies => mock_tfs_nbi_dependencies}/Config.py (100%) rename src/tests/tools/{mock_nbi_dependencies => mock_tfs_nbi_dependencies}/Dockerfile (100%) rename src/tests/tools/{mock_nbi_dependencies => mock_tfs_nbi_dependencies}/MockService_Dependencies.py (100%) rename src/tests/tools/{mock_nbi_dependencies => mock_tfs_nbi_dependencies}/README.md (100%) rename src/tests/tools/{mock_nbi_dependencies => mock_tfs_nbi_dependencies}/__init__.py (100%) rename src/tests/tools/{mock_nbi_dependencies => mock_tfs_nbi_dependencies}/__main__.py (100%) rename src/tests/tools/{mock_nbi_dependencies => mock_tfs_nbi_dependencies}/mock-nbi-dependencies.yaml (100%) rename src/tests/tools/{mock_nbi_dependencies => mock_tfs_nbi_dependencies}/requirements.in (100%) diff --git a/src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml b/src/tests/tools/mock_tfs_nbi_dependencies/.gitlab-ci.yml similarity index 100% rename from src/tests/tools/mock_nbi_dependencies/.gitlab-ci.yml rename to src/tests/tools/mock_tfs_nbi_dependencies/.gitlab-ci.yml diff --git a/src/tests/tools/mock_nbi_dependencies/Config.py b/src/tests/tools/mock_tfs_nbi_dependencies/Config.py similarity index 100% rename from src/tests/tools/mock_nbi_dependencies/Config.py rename to src/tests/tools/mock_tfs_nbi_dependencies/Config.py diff --git a/src/tests/tools/mock_nbi_dependencies/Dockerfile b/src/tests/tools/mock_tfs_nbi_dependencies/Dockerfile similarity index 100% rename from src/tests/tools/mock_nbi_dependencies/Dockerfile rename to src/tests/tools/mock_tfs_nbi_dependencies/Dockerfile diff --git a/src/tests/tools/mock_nbi_dependencies/MockService_Dependencies.py b/src/tests/tools/mock_tfs_nbi_dependencies/MockService_Dependencies.py similarity index 100% rename from src/tests/tools/mock_nbi_dependencies/MockService_Dependencies.py rename to src/tests/tools/mock_tfs_nbi_dependencies/MockService_Dependencies.py diff --git a/src/tests/tools/mock_nbi_dependencies/README.md b/src/tests/tools/mock_tfs_nbi_dependencies/README.md similarity index 100% rename from src/tests/tools/mock_nbi_dependencies/README.md rename to src/tests/tools/mock_tfs_nbi_dependencies/README.md diff --git a/src/tests/tools/mock_nbi_dependencies/__init__.py b/src/tests/tools/mock_tfs_nbi_dependencies/__init__.py similarity index 100% rename from src/tests/tools/mock_nbi_dependencies/__init__.py rename to src/tests/tools/mock_tfs_nbi_dependencies/__init__.py diff --git a/src/tests/tools/mock_nbi_dependencies/__main__.py b/src/tests/tools/mock_tfs_nbi_dependencies/__main__.py similarity index 100% rename from src/tests/tools/mock_nbi_dependencies/__main__.py rename to src/tests/tools/mock_tfs_nbi_dependencies/__main__.py diff --git a/src/tests/tools/mock_nbi_dependencies/mock-nbi-dependencies.yaml b/src/tests/tools/mock_tfs_nbi_dependencies/mock-nbi-dependencies.yaml similarity index 100% rename from src/tests/tools/mock_nbi_dependencies/mock-nbi-dependencies.yaml rename to src/tests/tools/mock_tfs_nbi_dependencies/mock-nbi-dependencies.yaml diff --git a/src/tests/tools/mock_nbi_dependencies/requirements.in b/src/tests/tools/mock_tfs_nbi_dependencies/requirements.in similarity index 100% rename from src/tests/tools/mock_nbi_dependencies/requirements.in rename to src/tests/tools/mock_tfs_nbi_dependencies/requirements.in -- GitLab From 6b4421d8e0331fdaf673951a8b2f4691246f1a3f Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Feb 2025 17:16:06 +0000 Subject: [PATCH 074/213] Reactivated all CI/CD tests --- .gitlab-ci.yml | 66 +++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d12b12939..769ccd80e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,39 +21,39 @@ 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: '/manifests/.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/opticalcontroller/.gitlab-ci.yml' -# - local: '/src/ztp/.gitlab-ci.yml' -# - local: '/src/policy/.gitlab-ci.yml' -# #- local: '/src/automation/.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' -# #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' -# - local: '/src/slice/.gitlab-ci.yml' -# #- 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/kpi_manager/.gitlab-ci.yml' -# - local: '/src/kpi_value_api/.gitlab-ci.yml' -# - local: '/src/kpi_value_writer/.gitlab-ci.yml' -# - local: '/src/telemetry/.gitlab-ci.yml' -# - local: '/src/analytics/.gitlab-ci.yml' -# - local: '/src/qos_profile/.gitlab-ci.yml' -# - local: '/src/vnt_manager/.gitlab-ci.yml' -# - local: '/src/e2e_orchestrator/.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/opticalcontroller/.gitlab-ci.yml' + - local: '/src/ztp/.gitlab-ci.yml' + - local: '/src/policy/.gitlab-ci.yml' + #- local: '/src/automation/.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' + #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' + - local: '/src/slice/.gitlab-ci.yml' + #- 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/kpi_manager/.gitlab-ci.yml' + - local: '/src/kpi_value_api/.gitlab-ci.yml' + - local: '/src/kpi_value_writer/.gitlab-ci.yml' + - local: '/src/telemetry/.gitlab-ci.yml' + - local: '/src/analytics/.gitlab-ci.yml' + - local: '/src/qos_profile/.gitlab-ci.yml' + - local: '/src/vnt_manager/.gitlab-ci.yml' + - local: '/src/e2e_orchestrator/.gitlab-ci.yml' + # This should be last one: end-to-end integration tests - local: '/src/tests/.gitlab-ci.yml' -- GitLab From 4192ee019ab9b993816166ad149e2df790d58ba3 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Feb 2025 12:04:24 +0000 Subject: [PATCH 075/213] NBI component: - Fix CI/CD pipeline --- manifests/nbiservice.yaml | 2 +- src/nbi/service/app.py | 6 +++--- src/tests/ofc22/tests/test_functional_create_service.py | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/manifests/nbiservice.yaml b/manifests/nbiservice.yaml index 7725cb501..4fcbb81d0 100644 --- a/manifests/nbiservice.yaml +++ b/manifests/nbiservice.yaml @@ -39,7 +39,7 @@ spec: #- containerPort: 9192 env: - name: LOG_LEVEL - value: "INFO" + value: "DEBUG" - name: FLASK_ENV value: "production" # change to "development" if developing - name: IETF_NETWORK_RENDERER diff --git a/src/nbi/service/app.py b/src/nbi/service/app.py index c615584b5..94a267bc6 100644 --- a/src/nbi/service/app.py +++ b/src/nbi/service/app.py @@ -55,9 +55,7 @@ wait_for_environment_variables([ get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), ]) -BIND_ADDRESS = get_http_bind_address() -BIND_PORT = get_service_port_http(ServiceNameEnum.NBI) -BASE_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' +BASE_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' nbi_app = NbiApplication(base_url=BASE_URL) register_health_probes(nbi_app) @@ -79,6 +77,8 @@ app = nbi_app.get_flask_app() if __name__ == '__main__': # Only used to run it locally during development stage; # otherwise, app is directly launched by gunicorn. + BIND_ADDRESS = get_http_bind_address() + BIND_PORT = get_service_port_http(ServiceNameEnum.NBI) nbi_app._sio.run( app, host=BIND_ADDRESS, port=BIND_PORT, debug=True, use_reloader=False diff --git a/src/tests/ofc22/tests/test_functional_create_service.py b/src/tests/ofc22/tests/test_functional_create_service.py index e0874a22d..143f662f1 100644 --- a/src/tests/ofc22/tests/test_functional_create_service.py +++ b/src/tests/ofc22/tests/test_functional_create_service.py @@ -78,6 +78,7 @@ def test_scenario_kpi_values_created( We short k KPI descriptors to test. """ response = monitoring_client.GetKpiDescriptorList(Empty()) + assert len(response.kpi_descriptor_list) >= 2 kpi_descriptors = random.choices(response.kpi_descriptor_list, k=2) for kpi_descriptor in kpi_descriptors: -- GitLab From 9c67ff65f9c2b4f21586ea2313118dae37ff0b58 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Feb 2025 17:10:02 +0000 Subject: [PATCH 076/213] Manifests: - NATS: recovered to single-node standalone node by default - NBI: corrected/recovered manifest values --- manifests/nats/cluster.yaml | 6 ++++-- manifests/nbiservice.yaml | 10 +++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/manifests/nats/cluster.yaml b/manifests/nats/cluster.yaml index 913520f22..bc8014bb5 100644 --- a/manifests/nats/cluster.yaml +++ b/manifests/nats/cluster.yaml @@ -31,8 +31,10 @@ container: config: cluster: - enabled: true - replicas: 3 + #enabled: true + enabled: false + #replicas: 3 + replicas: 1 jetstream: enabled: true fileStore: diff --git a/manifests/nbiservice.yaml b/manifests/nbiservice.yaml index 4fcbb81d0..d2d65c719 100644 --- a/manifests/nbiservice.yaml +++ b/manifests/nbiservice.yaml @@ -39,7 +39,7 @@ spec: #- containerPort: 9192 env: - name: LOG_LEVEL - value: "DEBUG" + value: "INFO" - name: FLASK_ENV value: "production" # change to "development" if developing - name: IETF_NETWORK_RENDERER @@ -60,11 +60,11 @@ spec: failureThreshold: 3 resources: requests: - cpu: 50m - memory: 64Mi - limits: - cpu: 500m + cpu: 150m memory: 512Mi + limits: + cpu: 1000m + memory: 2048Mi --- apiVersion: v1 kind: Service -- GitLab From 5bcdeff8d9262dfb2b621e2956cbb9529b2205be Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Feb 2025 17:10:29 +0000 Subject: [PATCH 077/213] NBI component: - removed unneeded INFO log messages from socketio server --- src/nbi/service/app.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/nbi/service/app.py b/src/nbi/service/app.py index 94a267bc6..a413c6db8 100644 --- a/src/nbi/service/app.py +++ b/src/nbi/service/app.py @@ -44,6 +44,7 @@ from .well_known_meta import register_well_known LOG_LEVEL = get_log_level() logging.basicConfig(level=LOG_LEVEL) +logging.getLogger('socketio.server').setLevel(logging.WARNING) LOGGER = logging.getLogger(__name__) wait_for_environment_variables([ -- GitLab From a4cac8f238fe3f9a7baf2b3e905078d769bfa2ff Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 19 Feb 2025 07:08:06 +0000 Subject: [PATCH 078/213] OFC22 test: - activated as single test - enabled debug log in monitoring --- .gitlab-ci.yml | 66 ++++++++++++++++---------------- manifests/monitoringservice.yaml | 2 +- src/tests/.gitlab-ci.yml | 22 +++++------ src/tests/ofc22/.gitlab-ci.yml | 2 +- 4 files changed, 46 insertions(+), 46 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 769ccd80e..ce9084631 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,39 +21,39 @@ 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/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/opticalcontroller/.gitlab-ci.yml' - - local: '/src/ztp/.gitlab-ci.yml' - - local: '/src/policy/.gitlab-ci.yml' - #- local: '/src/automation/.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' - #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' - - local: '/src/slice/.gitlab-ci.yml' - #- 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/kpi_manager/.gitlab-ci.yml' - - local: '/src/kpi_value_api/.gitlab-ci.yml' - - local: '/src/kpi_value_writer/.gitlab-ci.yml' - - local: '/src/telemetry/.gitlab-ci.yml' - - local: '/src/analytics/.gitlab-ci.yml' - - local: '/src/qos_profile/.gitlab-ci.yml' - - local: '/src/vnt_manager/.gitlab-ci.yml' - - local: '/src/e2e_orchestrator/.gitlab-ci.yml' +# #- local: '/manifests/.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/opticalcontroller/.gitlab-ci.yml' +# - local: '/src/ztp/.gitlab-ci.yml' +# - local: '/src/policy/.gitlab-ci.yml' +# #- local: '/src/automation/.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' +# #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' +# - local: '/src/slice/.gitlab-ci.yml' +# #- 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/kpi_manager/.gitlab-ci.yml' +# - local: '/src/kpi_value_api/.gitlab-ci.yml' +# - local: '/src/kpi_value_writer/.gitlab-ci.yml' +# - local: '/src/telemetry/.gitlab-ci.yml' +# - local: '/src/analytics/.gitlab-ci.yml' +# - local: '/src/qos_profile/.gitlab-ci.yml' +# - local: '/src/vnt_manager/.gitlab-ci.yml' +# - local: '/src/e2e_orchestrator/.gitlab-ci.yml' # This should be last one: end-to-end integration tests - local: '/src/tests/.gitlab-ci.yml' diff --git a/manifests/monitoringservice.yaml b/manifests/monitoringservice.yaml index 3178b487e..5b44f91be 100644 --- a/manifests/monitoringservice.yaml +++ b/manifests/monitoringservice.yaml @@ -36,7 +36,7 @@ spec: - containerPort: 9192 env: - name: LOG_LEVEL - value: "INFO" + value: "DEBUG" envFrom: - secretRef: name: qdb-data diff --git a/src/tests/.gitlab-ci.yml b/src/tests/.gitlab-ci.yml index 06578bea8..3abdc0ed4 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -15,14 +15,14 @@ # include the individual .gitlab-ci.yml of each end-to-end integration test include: - local: '/src/tests/ofc22/.gitlab-ci.yml' - #- local: '/src/tests/oeccpsc22/.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' - - local: '/src/tests/eucnc24/.gitlab-ci.yml' - - local: '/src/tests/ofc25-camara-agg-net-controller/.gitlab-ci.yml' - - local: '/src/tests/ofc25-camara-e2e-controller/.gitlab-ci.yml' - #- local: '/src/tests/ecoc24/.gitlab-ci.yml' - - - local: '/src/tests/tools/mock_tfs_nbi_dependencies/.gitlab-ci.yml' +# #- local: '/src/tests/oeccpsc22/.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' +# - local: '/src/tests/eucnc24/.gitlab-ci.yml' +# - local: '/src/tests/ofc25-camara-agg-net-controller/.gitlab-ci.yml' +# - local: '/src/tests/ofc25-camara-e2e-controller/.gitlab-ci.yml' +# #- local: '/src/tests/ecoc24/.gitlab-ci.yml' +# +# - local: '/src/tests/tools/mock_tfs_nbi_dependencies/.gitlab-ci.yml' diff --git a/src/tests/ofc22/.gitlab-ci.yml b/src/tests/ofc22/.gitlab-ci.yml index 0fbe2375a..851089657 100644 --- a/src/tests/ofc22/.gitlab-ci.yml +++ b/src/tests/ofc22/.gitlab-ci.yml @@ -61,7 +61,7 @@ end2end_test ofc22: #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/serviceservice.yaml #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/sliceservice.yaml #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/nbiservice.yaml - #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/monitoringservice.yaml + - yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/monitoringservice.yaml - source src/tests/${TEST_NAME}/deploy_specs.sh #- export TFS_REGISTRY_IMAGES="${CI_REGISTRY_IMAGE}" #- export TFS_SKIP_BUILD="YES" -- GitLab From ea556848a855de6c5d4371658152694b997a2bc7 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 19 Feb 2025 07:31:25 +0000 Subject: [PATCH 079/213] OFC22 test: - recovered all integration tests - disabled debug log in monitoring - enlarged wait times for enabling devices and creating KPIs --- .gitlab-ci.yml | 66 +++++++++---------- manifests/monitoringservice.yaml | 2 +- src/tests/.gitlab-ci.yml | 22 +++---- src/tests/ofc22/.gitlab-ci.yml | 2 +- .../ofc22/tests/test_functional_bootstrap.py | 8 +-- 5 files changed, 50 insertions(+), 50 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ce9084631..769ccd80e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,39 +21,39 @@ 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/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/opticalcontroller/.gitlab-ci.yml' -# - local: '/src/ztp/.gitlab-ci.yml' -# - local: '/src/policy/.gitlab-ci.yml' -# #- local: '/src/automation/.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' -# #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' -# - local: '/src/slice/.gitlab-ci.yml' -# #- 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/kpi_manager/.gitlab-ci.yml' -# - local: '/src/kpi_value_api/.gitlab-ci.yml' -# - local: '/src/kpi_value_writer/.gitlab-ci.yml' -# - local: '/src/telemetry/.gitlab-ci.yml' -# - local: '/src/analytics/.gitlab-ci.yml' -# - local: '/src/qos_profile/.gitlab-ci.yml' -# - local: '/src/vnt_manager/.gitlab-ci.yml' -# - local: '/src/e2e_orchestrator/.gitlab-ci.yml' + #- local: '/manifests/.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/opticalcontroller/.gitlab-ci.yml' + - local: '/src/ztp/.gitlab-ci.yml' + - local: '/src/policy/.gitlab-ci.yml' + #- local: '/src/automation/.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' + #- local: '/src/l3_attackmitigator/.gitlab-ci.yml' + - local: '/src/slice/.gitlab-ci.yml' + #- 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/kpi_manager/.gitlab-ci.yml' + - local: '/src/kpi_value_api/.gitlab-ci.yml' + - local: '/src/kpi_value_writer/.gitlab-ci.yml' + - local: '/src/telemetry/.gitlab-ci.yml' + - local: '/src/analytics/.gitlab-ci.yml' + - local: '/src/qos_profile/.gitlab-ci.yml' + - local: '/src/vnt_manager/.gitlab-ci.yml' + - local: '/src/e2e_orchestrator/.gitlab-ci.yml' # This should be last one: end-to-end integration tests - local: '/src/tests/.gitlab-ci.yml' diff --git a/manifests/monitoringservice.yaml b/manifests/monitoringservice.yaml index 5b44f91be..3178b487e 100644 --- a/manifests/monitoringservice.yaml +++ b/manifests/monitoringservice.yaml @@ -36,7 +36,7 @@ spec: - containerPort: 9192 env: - name: LOG_LEVEL - value: "DEBUG" + value: "INFO" envFrom: - secretRef: name: qdb-data diff --git a/src/tests/.gitlab-ci.yml b/src/tests/.gitlab-ci.yml index 3abdc0ed4..06578bea8 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -15,14 +15,14 @@ # include the individual .gitlab-ci.yml of each end-to-end integration test include: - local: '/src/tests/ofc22/.gitlab-ci.yml' -# #- local: '/src/tests/oeccpsc22/.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' -# - local: '/src/tests/eucnc24/.gitlab-ci.yml' -# - local: '/src/tests/ofc25-camara-agg-net-controller/.gitlab-ci.yml' -# - local: '/src/tests/ofc25-camara-e2e-controller/.gitlab-ci.yml' -# #- local: '/src/tests/ecoc24/.gitlab-ci.yml' -# -# - local: '/src/tests/tools/mock_tfs_nbi_dependencies/.gitlab-ci.yml' + #- local: '/src/tests/oeccpsc22/.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' + - local: '/src/tests/eucnc24/.gitlab-ci.yml' + - local: '/src/tests/ofc25-camara-agg-net-controller/.gitlab-ci.yml' + - local: '/src/tests/ofc25-camara-e2e-controller/.gitlab-ci.yml' + #- local: '/src/tests/ecoc24/.gitlab-ci.yml' + + - local: '/src/tests/tools/mock_tfs_nbi_dependencies/.gitlab-ci.yml' diff --git a/src/tests/ofc22/.gitlab-ci.yml b/src/tests/ofc22/.gitlab-ci.yml index 851089657..0fbe2375a 100644 --- a/src/tests/ofc22/.gitlab-ci.yml +++ b/src/tests/ofc22/.gitlab-ci.yml @@ -61,7 +61,7 @@ end2end_test ofc22: #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/serviceservice.yaml #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/sliceservice.yaml #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/nbiservice.yaml - - yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/monitoringservice.yaml + #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/monitoringservice.yaml - source src/tests/${TEST_NAME}/deploy_specs.sh #- export TFS_REGISTRY_IMAGES="${CI_REGISTRY_IMAGE}" #- export TFS_SKIP_BUILD="YES" diff --git a/src/tests/ofc22/tests/test_functional_bootstrap.py b/src/tests/ofc22/tests/test_functional_bootstrap.py index c8a4803ed..9318c1378 100644 --- a/src/tests/ofc22/tests/test_functional_bootstrap.py +++ b/src/tests/ofc22/tests/test_functional_bootstrap.py @@ -56,8 +56,8 @@ def test_scenario_devices_enabled( num_devices = -1 num_devices_enabled, num_retry = 0, 0 - while (num_devices != num_devices_enabled) and (num_retry < 10): - time.sleep(1.0) + while (num_devices != num_devices_enabled) and (num_retry < 30): + time.sleep(2.0) response = context_client.ListDevices(Empty()) num_devices = len(response.devices) num_devices_enabled = 0 @@ -88,10 +88,10 @@ def test_scenario_kpis_created( LOGGER.info('Num KPIs expected: {:d}'.format(num_kpis_expected)) num_kpis_created, num_retry = 0, 0 - while (num_kpis_created != num_kpis_expected) and (num_retry < 10): + while (num_kpis_created != num_kpis_expected) and (num_retry < 30): + time.sleep(2.0) response: KpiDescriptorList = monitoring_client.GetKpiDescriptorList(Empty()) num_kpis_created = len(response.kpi_descriptor_list) LOGGER.info('Num KPIs created: {:d}'.format(num_kpis_created)) - time.sleep(0.5) num_retry += 1 assert num_kpis_created == num_kpis_expected -- GitLab From cdf65bba37a2c374e05119cccd62ab059bcfc004 Mon Sep 17 00:00:00 2001 From: Waleed Akbar <wakbar@cttc.es> Date: Sun, 2 Mar 2025 07:30:37 +0000 Subject: [PATCH 080/213] Changes in Analytics, DB, KPI Enums, KPI Manager and Telemetery - Create Kafka topic added in main method of services - KPI sample types added in ENUM class - Methods are commented in _Collector class. - In Telemetry backend, logic is added get device ID, enpoint ID and devicec type from Context and KPI DB. --- src/analytics/backend/service/__main__.py | 5 + src/analytics/frontend/service/__main__.py | 5 + src/common/tools/database/GenericEngine.py | 4 +- .../database/models/enums/KpiSampleType.py | 17 +- src/kpi_manager/tests/test_messages.py | 10 +- src/telemetry/backend/Dockerfile | 4 + .../backend/collector_api/_Collector.py | 126 +++++++-------- .../service/TelemetryBackendService.py | 80 ++++++---- src/telemetry/backend/service/__main__.py | 3 + src/telemetry/backend/tests/Fixtures.py | 58 +++++++ src/telemetry/backend/tests/add_devices.py | 78 +++++++++ src/telemetry/backend/tests/messages.py | 23 ++- src/telemetry/backend/tests/test_backend.py | 137 ++++++++++++++-- src/telemetry/backend/tests/topology.json | 148 ++++++++++++++++++ .../TelemetryFrontendServiceServicerImpl.py | 54 +------ src/telemetry/frontend/service/__main__.py | 4 + src/telemetry/frontend/tests/Messages.py | 9 +- src/telemetry/frontend/tests/test_frontend.py | 22 +-- 18 files changed, 591 insertions(+), 196 deletions(-) create mode 100644 src/telemetry/backend/tests/Fixtures.py create mode 100644 src/telemetry/backend/tests/add_devices.py create mode 100644 src/telemetry/backend/tests/topology.json diff --git a/src/analytics/backend/service/__main__.py b/src/analytics/backend/service/__main__.py index 533761bab..55bcb53e4 100644 --- a/src/analytics/backend/service/__main__.py +++ b/src/analytics/backend/service/__main__.py @@ -16,8 +16,11 @@ import logging, signal, sys, threading from prometheus_client import start_http_server from common.Settings import get_log_level, get_metrics_port from .AnalyticsBackendService import AnalyticsBackendService +from common.tools.kafka.Variables import KafkaTopic + terminate = threading.Event() +logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') LOGGER = None def signal_handler(signal, frame): # pylint: disable=redefined-outer-name @@ -36,6 +39,8 @@ def main(): LOGGER.info('Starting...') + KafkaTopic.create_all_topics() + # Start metrics server metrics_port = get_metrics_port() start_http_server(metrics_port) diff --git a/src/analytics/frontend/service/__main__.py b/src/analytics/frontend/service/__main__.py index edf94c4fd..a79b2bbc6 100644 --- a/src/analytics/frontend/service/__main__.py +++ b/src/analytics/frontend/service/__main__.py @@ -18,8 +18,11 @@ from common.Settings import get_log_level, get_metrics_port from .AnalyticsFrontendService import AnalyticsFrontendService from analytics.database.AnalyzerModel import Analyzer as Model from common.tools.database.GenericDatabase import Database +from common.tools.kafka.Variables import KafkaTopic + terminate = threading.Event() +logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') LOGGER = None def signal_handler(signal, frame): # pylint: disable=redefined-outer-name @@ -43,6 +46,8 @@ def main(): kpiDBobj.create_database() kpiDBobj.create_tables() + KafkaTopic.create_all_topics() + # Start metrics server metrics_port = get_metrics_port() start_http_server(metrics_port) diff --git a/src/common/tools/database/GenericEngine.py b/src/common/tools/database/GenericEngine.py index 1d38a1f44..89b6c2b6d 100644 --- a/src/common/tools/database/GenericEngine.py +++ b/src/common/tools/database/GenericEngine.py @@ -33,8 +33,8 @@ class Engine: CRDB_USERNAME, CRDB_PASSWORD, CRDB_NAMESPACE, CRDB_SQL_PORT, CRDB_DATABASE, CRDB_SSLMODE) try: engine = sqlalchemy.create_engine(crdb_uri, echo=False) - LOGGER.info(' AnalyzerDB initalized with DB URL: {:}'.format(crdb_uri)) + LOGGER.info(' Database initalized with DB URL: {:}'.format(crdb_uri)) + return engine except: # pylint: disable=bare-except # pragma: no cover LOGGER.exception('Failed to connect to database: {:s}'.format(str(crdb_uri))) return None # type: ignore - return engine diff --git a/src/context/service/database/models/enums/KpiSampleType.py b/src/context/service/database/models/enums/KpiSampleType.py index 77b568dcf..66afdb710 100644 --- a/src/context/service/database/models/enums/KpiSampleType.py +++ b/src/context/service/database/models/enums/KpiSampleType.py @@ -22,13 +22,16 @@ from ._GrpcToEnum import grpc_to_enum # BYTES_RECEIVED. If item name does not match, automatic mapping of # proto enums to database enums will fail. class ORM_KpiSampleTypeEnum(enum.Enum): - UNKNOWN = KpiSampleType.KPISAMPLETYPE_UNKNOWN - PACKETS_TRANSMITTED = KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED - PACKETS_RECEIVED = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED - BYTES_TRANSMITTED = KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED - BYTES_RECEIVED = KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED - LINK_TOTAL_CAPACITY_GBPS = KpiSampleType.KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS - LINK_USED_CAPACITY_GBPS = KpiSampleType.KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS + UNKNOWN = KpiSampleType.KPISAMPLETYPE_UNKNOWN # 0 + PACKETS_TRANSMITTED = KpiSampleType.KPISAMPLETYPE_PACKETS_TRANSMITTED # 101 + PACKETS_RECEIVED = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED # 102 + PACKETS_DROPPED = KpiSampleType.KPISAMPLETYPE_PACKETS_DROPPED # 103 + BYTES_TRANSMITTED = KpiSampleType.KPISAMPLETYPE_BYTES_TRANSMITTED # 201 + BYTES_RECEIVED = KpiSampleType.KPISAMPLETYPE_BYTES_RECEIVED # 202 + BYTES_DROPPED = KpiSampleType.KPISAMPLETYPE_BYTES_DROPPED # 203 + LINK_TOTAL_CAPACITY_GBPS = KpiSampleType.KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS # 301 + LINK_USED_CAPACITY_GBPS = KpiSampleType.KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS # 302 + grpc_to_enum__kpi_sample_type = functools.partial( grpc_to_enum, KpiSampleType, ORM_KpiSampleTypeEnum) diff --git a/src/kpi_manager/tests/test_messages.py b/src/kpi_manager/tests/test_messages.py index ebe13b661..811661a4e 100644 --- a/src/kpi_manager/tests/test_messages.py +++ b/src/kpi_manager/tests/test_messages.py @@ -26,15 +26,15 @@ def create_kpi_id_request(): def create_kpi_descriptor_request(descriptor_name: str = "Test_name"): _create_kpi_request = kpi_manager_pb2.KpiDescriptor() - _create_kpi_request.kpi_id.kpi_id.uuid = str(uuid.uuid4()) + # _create_kpi_request.kpi_id.kpi_id.uuid = str(uuid.uuid4()) # _create_kpi_request.kpi_id.kpi_id.uuid = "6e22f180-ba28-4641-b190-2287bf448888" - # _create_kpi_request.kpi_id.kpi_id.uuid = "1e22f180-ba28-4641-b190-2287bf446666" + _create_kpi_request.kpi_id.kpi_id.uuid = "f974b6cc-095f-4767-b8c1-3457b383fb99" _create_kpi_request.kpi_description = descriptor_name _create_kpi_request.kpi_sample_type = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED - _create_kpi_request.device_id.device_uuid.uuid = 'DEV2' + _create_kpi_request.device_id.device_uuid.uuid = str(uuid.uuid4()) _create_kpi_request.service_id.service_uuid.uuid = 'SERV2' - _create_kpi_request.slice_id.slice_uuid.uuid = 'SLC1' - _create_kpi_request.endpoint_id.endpoint_uuid.uuid = 'END1' + _create_kpi_request.slice_id.slice_uuid.uuid = 'SLC1' + _create_kpi_request.endpoint_id.endpoint_uuid.uuid = str(uuid.uuid4()) _create_kpi_request.connection_id.connection_uuid.uuid = 'CON1' _create_kpi_request.link_id.link_uuid.uuid = 'LNK1' return _create_kpi_request diff --git a/src/telemetry/backend/Dockerfile b/src/telemetry/backend/Dockerfile index 4bc5605d5..7448f1ebc 100644 --- a/src/telemetry/backend/Dockerfile +++ b/src/telemetry/backend/Dockerfile @@ -62,6 +62,10 @@ RUN python3 -m pip install -r requirements.txt # Add component files into working directory WORKDIR /var/teraflow +COPY src/context/__init__.py context/__init__.py +COPY src/context/client/. context/client/ +COPY src/kpi_manager/client/. kpi_manager/client/ +COPY src/kpi_manager/__init__.py kpi_manager/__init__.py COPY src/telemetry/__init__.py telemetry/__init__.py COPY src/telemetry/backend/. telemetry/backend/ diff --git a/src/telemetry/backend/collector_api/_Collector.py b/src/telemetry/backend/collector_api/_Collector.py index d6e711d65..a4bd7f17f 100644 --- a/src/telemetry/backend/collector_api/_Collector.py +++ b/src/telemetry/backend/collector_api/_Collector.py @@ -71,69 +71,69 @@ class _Collector: """ raise NotImplementedError() - def GetInitialConfig(self) -> List[Tuple[str, Any]]: - """ Retrieve initial configuration of entire device. - Returns: - values : List[Tuple[str, Any]] - List of tuples (resource key, resource value) for - resource keys. - """ - raise NotImplementedError() - - def GetConfig(self, resource_keys: List[str] = []) -> \ - List[Tuple[str, Union[Any, None, Exception]]]: - """ Retrieve running configuration of entire device or - selected resource keys. - Parameters: - resource_keys : List[str] - List of keys pointing to the resources to be retrieved. - Returns: - values : List[Tuple[str, Union[Any, None, Exception]]] - List of tuples (resource key, resource value) for - resource keys requested. If a resource is found, - the appropriate value type must be retrieved. - If a resource is not found, None must be retrieved as - value for that resource. In case of Exception, - the Exception must be retrieved as value. - """ - raise NotImplementedError() - - def SetConfig(self, resources: List[Tuple[str, Any]]) -> \ - List[Union[bool, Exception]]: - """ Create/Update configuration for a list of resources. - Parameters: - resources : List[Tuple[str, Any]] - List of tuples, each containing a resource_key pointing the - resource to be modified, and a resource_value containing - the new value to be set. - Returns: - results : List[Union[bool, Exception]] - List of results for resource key changes requested. - Return values must be in the same order as the - resource keys requested. If a resource is properly set, - True must be retrieved; otherwise, the Exception that is - raised during the processing must be retrieved. - """ - raise NotImplementedError() - - def DeleteConfig(self, resources: List[Tuple[str, Any]]) -> \ - List[Union[bool, Exception]]: - """ Delete configuration for a list of resources. - Parameters: - resources : List[Tuple[str, Any]] - List of tuples, each containing a resource_key pointing the - resource to be modified, and a resource_value containing - possible additionally required values to locate - the value to be removed. - Returns: - results : List[Union[bool, Exception]] - List of results for resource key deletions requested. - Return values must be in the same order as the resource keys - requested. If a resource is properly deleted, True must be - retrieved; otherwise, the Exception that is raised during - the processing must be retrieved. - """ - raise NotImplementedError() + # def GetInitialConfig(self) -> List[Tuple[str, Any]]: + # """ Retrieve initial configuration of entire device. + # Returns: + # values : List[Tuple[str, Any]] + # List of tuples (resource key, resource value) for + # resource keys. + # """ + # raise NotImplementedError() + + # def GetConfig(self, resource_keys: List[str] = []) -> \ + # List[Tuple[str, Union[Any, None, Exception]]]: + # """ Retrieve running configuration of entire device or + # selected resource keys. + # Parameters: + # resource_keys : List[str] + # List of keys pointing to the resources to be retrieved. + # Returns: + # values : List[Tuple[str, Union[Any, None, Exception]]] + # List of tuples (resource key, resource value) for + # resource keys requested. If a resource is found, + # the appropriate value type must be retrieved. + # If a resource is not found, None must be retrieved as + # value for that resource. In case of Exception, + # the Exception must be retrieved as value. + # """ + # raise NotImplementedError() + + # def SetConfig(self, resources: List[Tuple[str, Any]]) -> \ + # List[Union[bool, Exception]]: + # """ Create/Update configuration for a list of resources. + # Parameters: + # resources : List[Tuple[str, Any]] + # List of tuples, each containing a resource_key pointing the + # resource to be modified, and a resource_value containing + # the new value to be set. + # Returns: + # results : List[Union[bool, Exception]] + # List of results for resource key changes requested. + # Return values must be in the same order as the + # resource keys requested. If a resource is properly set, + # True must be retrieved; otherwise, the Exception that is + # raised during the processing must be retrieved. + # """ + # raise NotImplementedError() + + # def DeleteConfig(self, resources: List[Tuple[str, Any]]) -> \ + # List[Union[bool, Exception]]: + # """ Delete configuration for a list of resources. + # Parameters: + # resources : List[Tuple[str, Any]] + # List of tuples, each containing a resource_key pointing the + # resource to be modified, and a resource_value containing + # possible additionally required values to locate + # the value to be removed. + # Returns: + # results : List[Union[bool, Exception]] + # List of results for resource key deletions requested. + # Return values must be in the same order as the resource keys + # requested. If a resource is properly deleted, True must be + # retrieved; otherwise, the Exception that is raised during + # the processing must be retrieved. + # """ + # raise NotImplementedError() def SubscribeState(self, subscriptions: List[Tuple[str, dict, float, float]]) -> \ bool: diff --git a/src/telemetry/backend/service/TelemetryBackendService.py b/src/telemetry/backend/service/TelemetryBackendService.py index c392efd1d..40cd1443a 100755 --- a/src/telemetry/backend/service/TelemetryBackendService.py +++ b/src/telemetry/backend/service/TelemetryBackendService.py @@ -16,7 +16,7 @@ import json import time import logging import threading -from typing import Any, Dict +from typing import Any, Dict, Tuple from datetime import datetime, timezone from confluent_kafka import Producer as KafkaProducer from confluent_kafka import Consumer as KafkaConsumer @@ -26,10 +26,15 @@ from common.Settings import get_service_port_grpc from common.method_wrappers.Decorator import MetricsPool from common.tools.kafka.Variables import KafkaConfig, KafkaTopic from common.tools.service.GenericGrpcService import GenericGrpcService +from common.tools.context_queries.Device import get_device +from common.proto.kpi_manager_pb2 import KpiId + +from kpi_manager.client.KpiManagerClient import KpiManagerClient +from context.client.ContextClient import ContextClient from telemetry.backend.collectors.emulated.EmulatedCollector import EmulatedCollector -LOGGER = logging.getLogger(__name__) -METRICS_POOL = MetricsPool('TelemetryBackend', 'backendService') +LOGGER = logging.getLogger(__name__) +METRICS_POOL = MetricsPool('TelemetryBackend', 'backendService') class TelemetryBackendService(GenericGrpcService): """ @@ -44,7 +49,9 @@ class TelemetryBackendService(GenericGrpcService): self.kafka_consumer = KafkaConsumer({'bootstrap.servers' : KafkaConfig.get_kafka_address(), 'group.id' : 'backend', 'auto.offset.reset' : 'latest'}) - self.collector = EmulatedCollector(address="127.0.0.1", port=8000) + self.collector = EmulatedCollector(address="127.0.0.1", port=8000) + self.context_client = ContextClient() + self.kpi_manager_client = KpiManagerClient() self.active_jobs = {} def install_servicers(self): @@ -116,16 +123,13 @@ class TelemetryBackendService(GenericGrpcService): """ Method to handle collector request. """ - end_points : dict = self.get_endpoints_from_kpi_id(kpi_id) - if not end_points: + device_type, end_points = self.get_endpoint_detail(kpi_id) + # end_points : dict = self.get_endpoints_from_kpi_id(kpi_id) + if end_points is None: LOGGER.warning("KPI ID: {:} - Endpoints not found. Skipping...".format(kpi_id)) - - device_type : str = self.get_device_type_from_kpi_id(kpi_id) - - if device_type == "Unknown": - LOGGER.warning("KPI ID: {:} - Device Type not found. Skipping...".format(kpi_id)) - - if device_type == "EMU-Device": + return + # device_type : str = self.get_device_type_from_kpi_id(kpi_id) + if device_type and "emu" in device_type: LOGGER.info("KPI ID: {:} - Device Type: {:} - Endpoints: {:}".format(kpi_id, device_type, end_points)) subscription = [collector_id, end_points, duration, interval] self.EmulatedCollectorHandler(subscription, duration, collector_id, kpi_id, stop_event) @@ -186,28 +190,40 @@ class TelemetryBackendService(GenericGrpcService): except: LOGGER.exception("Error terminating job: {:}".format(job_id)) -# --- Mock Methods --- - def get_endpoints_from_kpi_id(self, kpi_id: str) -> dict: + def get_endpoint_detail(self, kpi_id: str): """ - Method to get endpoints based on kpi_id. + Method to get device_type and endpoint detail based on device_uuid. """ - kpi_endpoints = { - '6e22f180-ba28-4641-b190-2287bf448888': {"uuid": "123e4567-e89b-12d3-a456-42661417ed06", "name": "eth0", "type": "ethernet", "sample_types": [101, 102]}, - '123e4567-e89b-12d3-a456-426614174001': {"uuid": "123e4567-e89b-12d3-a456-42661417ed07", "name": "eth1", "type": "ethernet", "sample_types": []}, - '123e4567-e89b-12d3-a456-426614174002': {"uuid": "123e4567-e89b-12d3-a456-42661417ed08", "name": "13/1/2", "type": "copper", "sample_types": [101, 102, 201, 202]}, - } - return kpi_endpoints.get(kpi_id, {}) if kpi_id in kpi_endpoints else {} + kpi_id_obj = KpiId() + kpi_id_obj.kpi_id.uuid = kpi_id + kpi_descriptor = self.kpi_manager_client.GetKpiDescriptor(kpi_id_obj) + if not kpi_descriptor: + LOGGER.warning(f"KPI ID: {kpi_id} - Descriptor not found. Skipping...") + return (None, None) - def get_device_type_from_kpi_id(self, kpi_id: str) -> str: - """ - Method to get device type based on kpi_id. - """ - kpi_device_types = { - "123e4567-e89b-12d3-a456-42661type003" : {'device_type': "PKT-Device"}, - "123e4567-e89b-12d3-a456-42661type004" : {'device_type': "OPT-Device"}, - "6e22f180-ba28-4641-b190-2287bf448888" : {'device_type': "EMU-Device"}, - } - return kpi_device_types.get(kpi_id, {}).get('device_type', "Unknown") + device_id = kpi_descriptor.device_id.device_uuid.uuid + endpoint_id = kpi_descriptor.endpoint_id.endpoint_uuid.uuid + device = get_device( context_client = self.context_client, + device_uuid = device_id, + include_config_rules = False, + include_components = False, + ) + if device: + for endpoint in device.device_endpoints: + if endpoint.endpoint_id.endpoint_uuid.uuid == endpoint_id: + endpoint_dict = {} + kpi_sample_types = [] + endpoint_dict["uuid"] = endpoint.endpoint_id.endpoint_uuid.uuid + endpoint_dict["name"] = endpoint.name + endpoint_dict["type"] = endpoint.endpoint_type + for sample_type in endpoint.kpi_sample_types: + kpi_sample_types.append(sample_type) + endpoint_dict["sample_types"] = kpi_sample_types + + return (device.device_type, endpoint_dict) + + LOGGER.warning(f"Device ID: {device_id} - Endpoint ID: {endpoint_id} - Not Found") + return (None, None) def delivery_callback(self, err, msg): if err: diff --git a/src/telemetry/backend/service/__main__.py b/src/telemetry/backend/service/__main__.py index 61ff39721..6e77d5d6c 100644 --- a/src/telemetry/backend/service/__main__.py +++ b/src/telemetry/backend/service/__main__.py @@ -16,6 +16,7 @@ import logging, signal, sys, threading from prometheus_client import start_http_server from common.Settings import get_log_level, get_metrics_port from .TelemetryBackendService import TelemetryBackendService +from common.tools.kafka.Variables import KafkaTopic terminate = threading.Event() LOGGER = None @@ -34,6 +35,8 @@ def main(): signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) + KafkaTopic.create_all_topics() + LOGGER.info('Starting...') # Start metrics server diff --git a/src/telemetry/backend/tests/Fixtures.py b/src/telemetry/backend/tests/Fixtures.py new file mode 100644 index 000000000..59f1b761c --- /dev/null +++ b/src/telemetry/backend/tests/Fixtures.py @@ -0,0 +1,58 @@ +# Copyright 2022-2024 ETSI 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 pytest +import logging + +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient +from kpi_manager.client.KpiManagerClient import KpiManagerClient + + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + + +@pytest.fixture(scope='session') +def context_client(): + _client = ContextClient(host="10.152.183.234") + _client.connect() + LOGGER.info('Yielding Connected ContextClient...') + yield _client + _client.close() + +@pytest.fixture(scope='session') +def device_client(): + _client = DeviceClient(host="10.152.183.95") + _client.connect() + LOGGER.info('Yielding Connected DeviceClient...') + yield _client + _client.close() + +@pytest.fixture(scope='session') +def service_client(): + _client = ServiceClient(host="10.152.183.47") + _client.connect() + LOGGER.info('Yielding Connected DeviceClient...') + yield _client + _client.close() + +@pytest.fixture(scope='session') +def kpi_manager_client(): + _client = KpiManagerClient(host="10.152.183.118") + LOGGER.info('Yielding Connected KpiManagerClient...') + yield _client + _client.close() + LOGGER.info('Closed KpiManagerClient...') diff --git a/src/telemetry/backend/tests/add_devices.py b/src/telemetry/backend/tests/add_devices.py new file mode 100644 index 000000000..9fe02a953 --- /dev/null +++ b/src/telemetry/backend/tests/add_devices.py @@ -0,0 +1,78 @@ +# Copyright 2022-2024 ETSI 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 logging, os, time +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty +from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.tools.grpc.Tools import grpc_message_to_json, grpc_message_to_json_string +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from .Fixtures import context_client, device_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__)), 'topology.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def load_topology( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name +) -> None: + LOGGER.info('Loading Topology...') + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader( + descriptors_file=DESCRIPTOR_FILE, context_client=context_client, device_client=device_client) + LOGGER.info('Descriptor Loader Created') + results = descriptor_loader.process() + # LOGGER.info('Descriptor Load Results: {:s}'.format(str(results))) + 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 + +def test_scenario_devices_enabled( + context_client : ContextClient, # pylint: disable=redefined-outer-name +) -> None: + """ + This test validates that the devices are enabled. + """ + DEVICE_OP_STATUS_ENABLED = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED + + disabled_devices = list() + response = None + num_devices = -1 + num_devices_enabled, num_retry = 0, 0 + while (num_devices != num_devices_enabled) and (num_retry < 10): + time.sleep(1.0) + response = context_client.ListDevices(Empty()) + num_devices = len(response.devices) + num_devices_enabled = 0 + disabled_devices = list() + for device in response.devices: + if device.device_operational_status == DEVICE_OP_STATUS_ENABLED: + num_devices_enabled += 1 + else: + disabled_devices.append(grpc_message_to_json(device)) + LOGGER.info('Num Devices enabled: {:d}/{:d}'.format(num_devices_enabled, num_devices)) + num_retry += 1 + if num_devices_enabled != num_devices: + LOGGER.info('Disabled Devices: {:s}'.format(str(disabled_devices))) + LOGGER.info('Devices: {:s}'.format(grpc_message_to_json_string(response))) + assert num_devices_enabled == num_devices diff --git a/src/telemetry/backend/tests/messages.py b/src/telemetry/backend/tests/messages.py index f6a2bb247..0d31cd15f 100644 --- a/src/telemetry/backend/tests/messages.py +++ b/src/telemetry/backend/tests/messages.py @@ -15,8 +15,8 @@ import uuid import random from common.proto import telemetry_frontend_pb2 -# from common.proto.kpi_sample_types_pb2 import KpiSampleType -# from common.proto.kpi_manager_pb2 import KpiId +from common.proto.kpi_sample_types_pb2 import KpiSampleType +from common.proto.kpi_manager_pb2 import KpiDescriptor, KpiId def create_collector_request(): _create_collector_request = telemetry_frontend_pb2.Collector() @@ -24,8 +24,25 @@ def create_collector_request(): # _create_collector_request.collector_id.collector_id.uuid = "efef4d95-1cf1-43c4-9742-95c283dddddd" _create_collector_request.kpi_id.kpi_id.uuid = str(uuid.uuid4()) # _create_collector_request.kpi_id.kpi_id.uuid = "6e22f180-ba28-4641-b190-2287bf448888" - _create_collector_request.duration_s = float(random.randint(8, 16)) + _create_collector_request.duration_s = float(random.randint(30, 50)) # _create_collector_request.duration_s = -1 _create_collector_request.interval_s = float(random.randint(2, 4)) return _create_collector_request +def _create_kpi_descriptor(device_id : str = ""): + _create_kpi_request = KpiDescriptor() + _create_kpi_request.kpi_id.kpi_id.uuid = str(uuid.uuid4()) + _create_kpi_request.kpi_description = "Test Description" + _create_kpi_request.kpi_sample_type = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED + _create_kpi_request.device_id.device_uuid.uuid = device_id + _create_kpi_request.service_id.service_uuid.uuid = 'SERV3' + _create_kpi_request.slice_id.slice_uuid.uuid = 'SLC3' + _create_kpi_request.endpoint_id.endpoint_uuid.uuid = '36571df2-bac1-5909-a27d-5f42491d2ff0' + _create_kpi_request.connection_id.connection_uuid.uuid = 'CON2' + _create_kpi_request.link_id.link_uuid.uuid = 'LNK2' + return _create_kpi_request + +def _create_kpi_id(kpi_id : str = "fc046641-0c9a-4750-b4d9-9f98401714e2"): + _create_kpi_id_request = KpiId() + _create_kpi_id_request.kpi_id.uuid = kpi_id + return _create_kpi_id_request diff --git a/src/telemetry/backend/tests/test_backend.py b/src/telemetry/backend/tests/test_backend.py index 28b92fb29..1329aa969 100644 --- a/src/telemetry/backend/tests/test_backend.py +++ b/src/telemetry/backend/tests/test_backend.py @@ -16,11 +16,19 @@ import pytest import logging import time from telemetry.backend.service.TelemetryBackendService import TelemetryBackendService -from .messages import create_collector_request -from .Fixtures import context_client, device_client +from .messages import create_collector_request, _create_kpi_descriptor, _create_kpi_id +from .Fixtures import context_client, device_client, service_client, kpi_manager_client from .add_devices import load_topology +from common.tools.context_queries.Topology import get_topology +from common.Constants import DEFAULT_CONTEXT_NAME +from common.tools.context_queries.Device import get_device, add_device_to_topology +# from common.tools.context_queries.EndPoint import get_endpoint_names +from .EndPoint import get_endpoint_names # modofied version of get_endpoint_names +from common.proto.context_pb2 import EndPointId, DeviceId, TopologyId, ContextId , Empty +from common.proto.kpi_manager_pb2 import KpiId LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) ########################### @@ -37,6 +45,120 @@ def log_all_methods(request): yield LOGGER.info(f" <<<<< Finished test: {request.node.name} ") +# # ----- Add Topology ----- +# def test_add_to_topology(context_client, device_client, service_client): +# load_topology(context_client, device_client) + +# # ----- Add Device to Topology ------ +# def test_add_device_to_topology(context_client): +# context_id = ContextId() +# context_id.context_uuid.uuid = "43813baf-195e-5da6-af20-b3d0922e71a7" +# topology_uuid = "c76135e3-24a8-5e92-9bed-c3c9139359c8" +# device_uuid = "69a3a3f0-5237-5f9e-bc96-d450d0c6c03a" +# response = add_device_to_topology( context_client = context_client, +# context_id = context_id, +# topology_uuid = topology_uuid, +# device_uuid = device_uuid +# ) +# LOGGER.info(f"Device added to topology: {response}") +# assert response is True + +# # ----- Get Topology ----- +# def test_get_topology(context_client, device_client): +# response = get_topology(context_client = context_client, topology_uuid = "test1", context_uuid = "test1") +# LOGGER.info(f"Topology: {response}") +# assert response is not None + +# def test_set_kpi_descriptor_and_get_device_id(kpi_manager_client): +# kpi_descriptor = _create_kpi_descriptor("1290fb71-bf15-5528-8b69-2d2fabe1fa18") +# kpi_id = kpi_manager_client.SetKpiDescriptor(kpi_descriptor) +# LOGGER.info(f"KPI Descriptor set: {kpi_id}") +# assert kpi_id is not None + +# response = kpi_manager_client.GetKpiDescriptor(kpi_id) +# # response = kpi_manager_client.GetKpiDescriptor(_create_kpi_id()) + +# assert response is not None +# LOGGER.info(f"KPI Descriptor: {response}") +# LOGGER.info(f"Device Id: {response.device_id.device_uuid.uuid}") +# LOGGER.info(f"Endpoint Id: {response.endpoint_id.endpoint_uuid.uuid}") + +# # ----- Get endpoint detail using device ID ----- +# def test_get_device_details(context_client): +# response = get_device(context_client = context_client, device_uuid = "1290fb71-bf15-5528-8b69-2d2fabe1fa18", include_config_rules = False, include_components = False) +# if response: +# LOGGER.info(f"Device type: {response.device_type}") +# for endpoint in response.device_endpoints: +# if endpoint.endpoint_id.endpoint_uuid.uuid == '36571df2-bac1-5909-a27d-5f42491d2ff0': +# endpoint_dict = {} +# kpi_sample_types = [] +# # LOGGER.info(f"Endpoint: {endpoint}") +# # LOGGER.info(f"Enpoint_uuid: {endpoint.endpoint_id.endpoint_uuid.uuid}") +# endpoint_dict["uuid"] = endpoint.endpoint_id.endpoint_uuid.uuid +# # LOGGER.info(f"Enpoint_name: {endpoint.name}") +# endpoint_dict["name"] = endpoint.name +# # LOGGER.info(f"Enpoint_type: {endpoint.endpoint_type}") +# endpoint_dict["type"] = endpoint.endpoint_type +# for sample_type in endpoint.kpi_sample_types: +# # LOGGER.info(f"Enpoint_sample_types: {sample_type}") +# kpi_sample_types.append(sample_type) +# endpoint_dict["sample_types"] = kpi_sample_types +# LOGGER.info(f"Extracted endpoint dict: {endpoint_dict}") +# else: +# LOGGER.info(f"Endpoint not matched") +# LOGGER.info(f"Device Type: {type(response)}") +# assert response is not None + +# # ----- List Conetxts ----- +# def test_list_contextIds(context_client): +# empty = Empty() +# response = context_client.ListContexts(empty) +# LOGGER.info(f"Contexts: {response}") +# assert response + +# # ----- List Devices ----- +# def test_list_devices(context_client): +# empty = Empty() +# response = context_client.ListDeviceIds(empty) +# LOGGER.info(f"Devices: {response}") +# assert response + +# ----- Get Endpoints ----- TODO: get_endpoint_names method doesn't return KPI samples types +# def test_get_endpoints(context_client): +# device_id = DeviceId() +# device_id.device_uuid.uuid = "1290fb71-bf15-5528-8b69-2d2fabe1fa18" +# endpoint_id = EndPointId() +# endpoint_id.endpoint_uuid.uuid = "43b817fa-246f-5e0a-a2e3-2aad0b3e16ca" +# endpoint_id.device_id.CopyFrom(device_id) +# response = get_endpoint_names(context_client = context_client, endpoint_ids = [endpoint_id]) +# LOGGER.info(f"Endpoints: {response}") +# assert response is not None + +# # ----- List Topologies ----- +# def test_list_topologies(context_client): +# context_id = ContextId() +# context_id.context_uuid.uuid = "e7d46baa-d38d-5b72-a082-f344274b63ef" +# respone = context_client.ListTopologies(context_id) +# LOGGER.info(f"Topologies: {respone}") + +# # ----- Remove Topology ----- +# def test_remove_topology(context_client): +# context_id = ContextId() +# context_id.context_uuid.uuid = "e7d46baa-d38d-5b72-a082-f344274b63ef" +# topology_id = TopologyId() +# topology_id.topology_uuid.uuid = "9ef0118c-4bca-5e81-808b-dc8f60e2cda4" +# topology_id.context_id.CopyFrom(context_id) + +# response = context_client.RemoveTopology(topology_id) +# LOGGER.info(f"Topology removed: {response}") + +# # ----- Remove context ----- +# def test_remove_context(context_client): +# context_id = ContextId() +# context_id.context_uuid.uuid = "e7d46baa-d38d-5b72-a082-f344274b63ef" +# response = context_client.RemoveContext(context_id) +# LOGGER.info(f"Context removed: {response}") + @pytest.fixture def telemetryBackend_service(): LOGGER.info('Initializing TelemetryBackendService...') @@ -54,15 +176,6 @@ def telemetryBackend_service(): def test_InitiateCollectorBackend(telemetryBackend_service): LOGGER.info(" Backend Initiated Successfully. Waiting for timer to finish ...") - time.sleep(300) + time.sleep(30) LOGGER.info(" Backend Timer Finished Successfully. ") -# --- "test_validate_kafka_topics" should be run before the functionality tests --- -# def test_validate_kafka_topics(): -# LOGGER.debug(" >>> test_validate_kafka_topics: START <<< ") -# response = KafkaTopic.create_all_topics() -# assert isinstance(response, bool) - -# # Call load_topology from the add_devices.py file -# def test_load_topology(context_client, device_client): -# load_topology(context_client, device_client) diff --git a/src/telemetry/backend/tests/topology.json b/src/telemetry/backend/tests/topology.json new file mode 100644 index 000000000..6416130b9 --- /dev/null +++ b/src/telemetry/backend/tests/topology.json @@ -0,0 +1,148 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "DE1"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 0, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [101, 102], "type": "copper/internal", "uuid": "1/1"}, + {"sample_types": [103, 102], "type": "copper/internal", "uuid": "1/2"}, + {"sample_types": [201, 202], "type": "copper/internal", "uuid": "2/1"}, + {"sample_types": [202, 203], "type": "copper/internal", "uuid": "2/2"}, + {"sample_types": [201, 203], "type": "copper/internal", "uuid": "2/3"}, + {"sample_types": [101, 103], "type": "copper/internal", "uuid": "2/4"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "DE2"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 0, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [101, 103], "type": "copper/internal", "uuid": "1/1"}, + {"sample_types": [103, 101], "type": "copper/internal", "uuid": "1/2"}, + {"sample_types": [202, 201], "type": "copper/internal", "uuid": "2/1"}, + {"sample_types": [203, 201], "type": "copper/internal", "uuid": "2/2"}, + {"sample_types": [203, 202], "type": "copper/internal", "uuid": "2/3"}, + {"sample_types": [102 ], "type": "copper/internal", "uuid": "2/4"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "DE3"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 0, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [], "type": "copper/internal", "uuid": "1/1"}, + {"sample_types": [], "type": "copper/internal", "uuid": "1/2"}, + {"sample_types": [], "type": "copper/internal", "uuid": "2/1"}, + {"sample_types": [], "type": "copper/internal", "uuid": "2/2"}, + {"sample_types": [], "type": "copper/internal", "uuid": "2/3"}, + {"sample_types": [], "type": "copper/internal", "uuid": "2/4"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "DE4"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 0, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"sample_types": [], "type": "copper/internal", "uuid": "1/1"}, + {"sample_types": [], "type": "copper/internal", "uuid": "1/2"}, + {"sample_types": [], "type": "copper/internal", "uuid": "2/1"}, + {"sample_types": [], "type": "copper/internal", "uuid": "2/2"}, + {"sample_types": [], "type": "copper/internal", "uuid": "2/3"}, + {"sample_types": [], "type": "copper/internal", "uuid": "2/4"} + ]}}} + ]} + } + ], + "links": [ + + { + "link_id": {"link_uuid": {"uuid": "DE1/2/2==DE2/2/1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE1"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "DE2"}}, "endpoint_uuid": {"uuid": "2/1"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "DE1/2/3==DE3/2/1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE1"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "DE3"}}, "endpoint_uuid": {"uuid": "2/1"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "DE1/2/4==DE4/2/1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE1"}}, "endpoint_uuid": {"uuid": "2/4"}}, + {"device_id": {"device_uuid": {"uuid": "DE4"}}, "endpoint_uuid": {"uuid": "2/1"}} + ] + }, + + { + "link_id": {"link_uuid": {"uuid": "DE2/2/1==DE1/2/2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE2"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "DE1"}}, "endpoint_uuid": {"uuid": "2/2"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "DE2/2/3==DE3/2/2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE2"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "DE3"}}, "endpoint_uuid": {"uuid": "2/2"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "DE2/2/4==DE4/2/2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE2"}}, "endpoint_uuid": {"uuid": "2/4"}}, + {"device_id": {"device_uuid": {"uuid": "DE4"}}, "endpoint_uuid": {"uuid": "2/2"}} + ] + }, + + { + "link_id": {"link_uuid": {"uuid": "DE3/2/1==DE1/2/3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE3"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "DE1"}}, "endpoint_uuid": {"uuid": "2/3"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "DE3/2/2==DE2/2/3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE3"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "DE2"}}, "endpoint_uuid": {"uuid": "2/3"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "DE4/2/2==DE2/2/4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE4"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "DE2"}}, "endpoint_uuid": {"uuid": "2/4"}} + ] + }, + + { + "link_id": {"link_uuid": {"uuid": "DE4/2/1==DE1/2/4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE4"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "DE1"}}, "endpoint_uuid": {"uuid": "2/4"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "DE4/2/2==DE2/2/4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE4"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "DE2"}}, "endpoint_uuid": {"uuid": "2/4"}} + ] + }, + { + "link_id": {"link_uuid": {"uuid": "DE4/2/3==DE3/2/4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "DE4"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "DE3"}}, "endpoint_uuid": {"uuid": "2/4"}} + ] + } + ] +} diff --git a/src/telemetry/frontend/service/TelemetryFrontendServiceServicerImpl.py b/src/telemetry/frontend/service/TelemetryFrontendServiceServicerImpl.py index 1ef8ed46b..955036495 100644 --- a/src/telemetry/frontend/service/TelemetryFrontendServiceServicerImpl.py +++ b/src/telemetry/frontend/service/TelemetryFrontendServiceServicerImpl.py @@ -143,58 +143,6 @@ class TelemetryFrontendServiceServicerImpl(TelemetryFrontendServiceServicer): @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def delivery_callback(self, err, msg): - """ - Callback function to handle message delivery status. - Args: - err (KafkaError): Kafka error object. - msg (Message): Kafka message object. - """ if err: LOGGER.debug('Message delivery failed: {:}'.format(err)) - # print('Message delivery failed: {:}'.format(err)) - # else: - # LOGGER.debug('Message delivered to topic {:}'.format(msg.topic())) - # print('Message delivered to topic {:}'.format(msg.topic())) - - # ---------- Independent Method --------------- - # Listener method is independent of any method (same lifetime as service) - # continously listens for responses - def install_servicers(self): - threading.Thread(target=self.ResponseListener).start() - - def ResponseListener(self): - """ - listener for response on Kafka topic. - """ - self.kafka_consumer.subscribe([KafkaTopic.TELEMETRY_RESPONSE.value]) - while True: - receive_msg = self.kafka_consumer.poll(2.0) - if receive_msg is None: - continue - elif receive_msg.error(): - if receive_msg.error().code() == KafkaError._PARTITION_EOF: - continue - else: - # print("Consumer error: {:}".format(receive_msg.error())) - LOGGER.error("Consumer error: {:}".format(receive_msg.error())) - break - try: - collector_id = receive_msg.key().decode('utf-8') - if collector_id in ACTIVE_COLLECTORS: - kpi_value = json.loads(receive_msg.value().decode('utf-8')) - self.process_response(collector_id, kpi_value['kpi_id'], kpi_value['kpi_value']) - else: - # print(f"collector id does not match.\nRespone ID: '{collector_id}' --- Active IDs: '{ACTIVE_COLLECTORS}' ") - LOGGER.info("collector id does not match.\nRespone ID: {:} --- Active IDs: {:}".format(collector_id, ACTIVE_COLLECTORS)) - except Exception as e: - # print(f"Error extarcting msg key or value: {str(e)}") - LOGGER.info("Error extarcting msg key or value: {:}".format(e)) - continue - - def process_response(self, collector_id: str, kpi_id: str, kpi_value: Any): - if kpi_id == "-1" and kpi_value == -1: - # print ("Backend termination confirmation for collector id: ", collector_id) - LOGGER.info("Backend termination confirmation for collector id: {:}".format(collector_id)) - else: - LOGGER.info("Backend termination confirmation for collector id: {:}".format(collector_id)) - # print ("KPI Value: Collector Id:", collector_id, ", Kpi Id:", kpi_id, ", Value:", kpi_value) + diff --git a/src/telemetry/frontend/service/__main__.py b/src/telemetry/frontend/service/__main__.py index e1b9dba4e..874b34b8c 100644 --- a/src/telemetry/frontend/service/__main__.py +++ b/src/telemetry/frontend/service/__main__.py @@ -18,6 +18,8 @@ from common.Settings import get_log_level, get_metrics_port from .TelemetryFrontendService import TelemetryFrontendService from telemetry.database.TelemetryModel import Collector as Model from common.tools.database.GenericDatabase import Database +from common.tools.kafka.Variables import KafkaTopic + terminate = threading.Event() LOGGER = None @@ -43,6 +45,8 @@ def main(): kpiDBobj.create_database() kpiDBobj.create_tables() + KafkaTopic.create_all_topics() + # Start metrics server metrics_port = get_metrics_port() start_http_server(metrics_port) diff --git a/src/telemetry/frontend/tests/Messages.py b/src/telemetry/frontend/tests/Messages.py index 177bcc0b7..d766f68fa 100644 --- a/src/telemetry/frontend/tests/Messages.py +++ b/src/telemetry/frontend/tests/Messages.py @@ -30,16 +30,17 @@ def create_collector_request(): # _create_collector_request.collector_id.collector_id.uuid = str(uuid.uuid4()) _create_collector_request.collector_id.collector_id.uuid = "efef4d95-1cf1-43c4-9742-95c283dddddd" # _create_collector_request.kpi_id.kpi_id.uuid = str(uuid.uuid4()) - _create_collector_request.kpi_id.kpi_id.uuid = "6e22f180-ba28-4641-b190-2287bf448888" + # _create_collector_request.kpi_id.kpi_id.uuid = "6e22f180-ba28-4641-b190-2287bf448888" + _create_collector_request.kpi_id.kpi_id.uuid = "8c5ca114-cdc7-4081-b128-b667fd159832" # _create_collector_request.duration_s = float(random.randint(8, 16)) - _create_collector_request.duration_s = -1 - _create_collector_request.interval_s = float(random.randint(3, 5)) + _create_collector_request.duration_s = float(random.randint(40, 60)) + _create_collector_request.interval_s = float(random.randint(5, 7)) return _create_collector_request def create_collector_filter(): _create_collector_filter = telemetry_frontend_pb2.CollectorFilter() kpi_id_obj = KpiId() # kpi_id_obj.kpi_id.uuid = str(uuid.uuid4()) - kpi_id_obj.kpi_id.uuid = "a7237fa3-caf4-479d-84b6-4d9f9738fb7f" + kpi_id_obj.kpi_id.uuid = "8c5ca114-cdc7-4081-b128-b667fd159832" _create_collector_filter.kpi_id.append(kpi_id_obj) return _create_collector_filter diff --git a/src/telemetry/frontend/tests/test_frontend.py b/src/telemetry/frontend/tests/test_frontend.py index 6c6107152..767a1f73f 100644 --- a/src/telemetry/frontend/tests/test_frontend.py +++ b/src/telemetry/frontend/tests/test_frontend.py @@ -90,13 +90,6 @@ def telemetryFrontend_client( # Tests Implementation of Telemetry Frontend ########################### -# ------- Re-structuring Test --------- -# --- "test_validate_kafka_topics" should be run before the functionality tests --- -def test_validate_kafka_topics(): - # LOGGER.debug(" >>> test_validate_kafka_topics: START <<< ") - response = KafkaTopic.create_all_topics() - assert isinstance(response, bool) - # ----- core funtionality test ----- def test_StartCollector(telemetryFrontend_client): # LOGGER.info(' >>> test_StartCollector START: <<< ') @@ -104,18 +97,17 @@ def test_StartCollector(telemetryFrontend_client): LOGGER.debug(str(response)) assert isinstance(response, CollectorId) +def test_SelectCollectors(telemetryFrontend_client): + LOGGER.info(' >>> test_SelectCollectors START: <<< ') + response = telemetryFrontend_client.SelectCollectors(create_collector_filter()) + LOGGER.debug(str(response)) + assert isinstance(response, CollectorList) def test_StopCollector(telemetryFrontend_client): # LOGGER.info(' >>> test_StopCollector START: <<< ') - LOGGER.info("Waiting before termination...") - time.sleep(30) + # LOGGER.info("Waiting before termination...") + # time.sleep(30) response = telemetryFrontend_client.StopCollector(create_collector_id()) LOGGER.debug(str(response)) assert isinstance(response, Empty) -# def test_SelectCollectors(telemetryFrontend_client): -# LOGGER.info(' >>> test_SelectCollectors START: <<< ') -# response = telemetryFrontend_client.SelectCollectors(create_collector_filter()) -# LOGGER.debug(str(response)) -# assert isinstance(response, CollectorList) - -- GitLab From 87685c9c58a468f4da960e80148158d8c390528a Mon Sep 17 00:00:00 2001 From: Waleed Akbar <wakbar@cttc.es> Date: Fri, 7 Mar 2025 05:47:47 +0000 Subject: [PATCH 081/213] Updated Telemetry Backend and add monitoring deployment script - Minor changes in Telmetry backend service - new script added to deploy Prom. Gateway, Prometheus and Mimir - Configuration file for Prometheus to scrape Gateway. --- .gitignore | 2 - deploy/monitoring.sh | 53 ---- deploy/new_monitoring.sh | 132 ++++++++++ manifests/monitoring/grafana_values.yaml | 235 ++++++++++++++++++ .../prometheus_values.yaml} | 0 .../emulated/SyntheticMetricsGenerator.py | 2 +- .../service/TelemetryBackendService.py | 7 +- 7 files changed, 372 insertions(+), 59 deletions(-) delete mode 100644 deploy/monitoring.sh create mode 100755 deploy/new_monitoring.sh create mode 100644 manifests/monitoring/grafana_values.yaml rename manifests/{prometheus/prometheus.yaml => monitoring/prometheus_values.yaml} (100%) diff --git a/.gitignore b/.gitignore index db47387c8..235d7768a 100644 --- a/.gitignore +++ b/.gitignore @@ -179,5 +179,3 @@ libyang/ # Other logs **/logs/*.log.* -# PySpark checkpoints -src/analytics/.spark/* diff --git a/deploy/monitoring.sh b/deploy/monitoring.sh deleted file mode 100644 index 18992501a..000000000 --- a/deploy/monitoring.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# Copyright 2022-2024 ETSI 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. - -RELEASE_NAME="mon-prometheus" -NAMESPACE="monitoring" -CHART_REPO_NAME="prometheus-community" -CHART_REPO_URL="https://prometheus-community.github.io/helm-charts" -CHART_NAME="prometheus" # Chart name within the repo -VALUES_FILE="manifests/prometheus/prometheus.yaml" - -echo ">>> Deploying Prometheus with the following configuration:" -echo "Adding/updating Helm repo: $CHART_REPO_NAME -> $CHART_REPO_URL" -helm repo add "$CHART_REPO_NAME" "$CHART_REPO_URL" || true -helm repo update - -echo "Creating namespace '$NAMESPACE' if it doesn't exist..." -kubectl get namespace "$NAMESPACE" >/dev/null 2>&1 || kubectl create namespace "$NAMESPACE" - -#------------------------------------------------------------------------------ -# 3. Install or upgrade the Prometheus chart -# - If 'VALUES_FILE' is set, it will use it for custom configuration. -# - Otherwise, it will deploy with the chart defaults. -#------------------------------------------------------------------------------ -if [ -n "$VALUES_FILE" ] && [ -f "$VALUES_FILE" ]; then - echo "Installing/Upgrading Prometheus with custom values from $VALUES_FILE..." - helm upgrade --install "$RELEASE_NAME" "$CHART_REPO_NAME/$CHART_NAME" \ - --namespace "$NAMESPACE" \ - --values "$VALUES_FILE" -else - echo "Installing/Upgrading Prometheus with default chart values..." - helm upgrade --install "$RELEASE_NAME" "$CHART_REPO_NAME/$CHART_NAME" \ - --namespace "$NAMESPACE" -fi - -echo "Waiting for Prometheus pods to be ready..." -kubectl rollout status deployment/"$RELEASE_NAME"-server -n "$NAMESPACE" || true - -# echo "Listing deployed resources in namespace '$NAMESPACE':" -# kubectl get all -n "$NAMESPACE" - -echo "<<< Prometheus deployment completed successfully!" diff --git a/deploy/new_monitoring.sh b/deploy/new_monitoring.sh new file mode 100755 index 000000000..ac1f46723 --- /dev/null +++ b/deploy/new_monitoring.sh @@ -0,0 +1,132 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + +set -euo pipefail + +# ----------------------------------------------------------- +# Global namespace for all deployments +# ----------------------------------------------------------- +NAMESPACE="monitoring" +VALUES_FILE_PATH="manifests/monitoring" + +# ----------------------------------------------------------- +# Prometheus Configuration +# ----------------------------------------------------------- +RELEASE_NAME_PROM="mon-prometheus" +CHART_REPO_NAME_PROM="prometheus-community" +CHART_REPO_URL_PROM="https://prometheus-community.github.io/helm-charts" +CHART_NAME_PROM="prometheus" +VALUES_FILE_PROM="$VALUES_FILE_PATH/prometheus_values.yaml" + +# ----------------------------------------------------------- +# Mimir Configuration +# ----------------------------------------------------------- +RELEASE_NAME_MIMIR="mon-mimir" +CHART_REPO_NAME_MIMIR="grafana" +CHART_REPO_URL_MIMIR="https://grafana.github.io/helm-charts" +CHART_NAME_MIMIR="mimir-distributed" +VALUES_FILE_MIMIR="$VALUES_FILE_PATH/mimir_values.yaml" + +# ----------------------------------------------------------- +# Grafana Configuration +# ----------------------------------------------------------- +# RELEASE_NAME_GRAFANA="mon-grafana" +# CHART_REPO_NAME_GRAFANA="grafana" +# CHART_REPO_URL_GRAFANA="https://grafana.github.io/helm-charts" +# CHART_NAME_GRAFANA="grafana" +# VALUES_FILE_GRAFANA="$VALUES_FILE_PATH/grafana_values.yaml" + + +# ----------------------------------------------------------- +# Function to deploy or upgrade a Helm chart +# ----------------------------------------------------------- +deploy_chart() { + local release_name="$1" + local chart_repo_name="$2" + local chart_repo_url="$3" + local chart_name="$4" + local values_file="$5" + local namespace="$6" + + echo ">>> Deploying [${release_name}] from repo [${chart_repo_name}]..." + + # Add or update the Helm repo + echo "Adding/updating Helm repo: $chart_repo_name -> $chart_repo_url" + helm repo add "$chart_repo_name" "$chart_repo_url" || true + helm repo update + + # Create namespace if needed + echo "Creating namespace '$namespace' if it doesn't exist..." + kubectl get namespace "$namespace" >/dev/null 2>&1 || kubectl create namespace "$namespace" + + # Install or upgrade the chart + if [ -n "$values_file" ] && [ -f "$values_file" ]; then + echo "Installing/Upgrading $release_name using custom values from $values_file..." + helm upgrade --install "$release_name" "$chart_repo_name/$chart_name" \ + --namespace "$namespace" \ + --values "$values_file" + else + echo "Installing/Upgrading $release_name with default chart values..." + helm upgrade --install "$release_name" "$chart_repo_name/$chart_name" \ + --namespace "$namespace" + fi + + echo "<<< Deployment initiated for [$release_name]." + echo +} + + +# ----------------------------------------------------------- +# Actual Deployments +# ----------------------------------------------------------- + +# 1) Deploy Prometheus +deploy_chart "$RELEASE_NAME_PROM" \ + "$CHART_REPO_NAME_PROM" \ + "$CHART_REPO_URL_PROM" \ + "$CHART_NAME_PROM" \ + "$VALUES_FILE_PROM" \ + "$NAMESPACE" + +# Optionally wait for Prometheus server pod to become ready +kubectl rollout status deployment/"$RELEASE_NAME_PROM-server" -n "$NAMESPACE" || true + + +# 2) Deploy Mimir +deploy_chart "$RELEASE_NAME_MIMIR" \ + "$CHART_REPO_NAME_MIMIR" \ + "$CHART_REPO_URL_MIMIR" \ + "$CHART_NAME_MIMIR" \ + "$VALUES_FILE_MIMIR" \ + "$NAMESPACE" + +# Depending on how Mimir runs (StatefulSets, Deployments), you can wait for +# the correct resource to be ready. For example: +# kubectl rollout status statefulset/"$RELEASE_NAME_MIMIR-distributor" -n "$NAMESPACE" || true + + +# 3) Deploy Grafana +# deploy_chart "$RELEASE_NAME_GRAFANA" \ +# "$CHART_REPO_NAME_GRAFANA" \ +# "$CHART_REPO_URL_GRAFANA" \ +# "$CHART_NAME_GRAFANA" \ +# "$VALUES_FILE_GRAFANA" \ +# "$NAMESPACE" + +# kubectl rollout status deployment/"$RELEASE_NAME_GRAFANA" -n "$NAMESPACE" || true + +# ----------------------------------------------------------- +echo "All deployments completed!" + diff --git a/manifests/monitoring/grafana_values.yaml b/manifests/monitoring/grafana_values.yaml new file mode 100644 index 000000000..a2dbd7971 --- /dev/null +++ b/manifests/monitoring/grafana_values.yaml @@ -0,0 +1,235 @@ +rbac: + create: true + ## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true) + # useExistingRole: name-of-some-role + # useExistingClusterRole: name-of-some-clusterRole + pspEnabled: false + pspUseAppArmor: false + namespaced: false + +serviceAccount: + create: true + name: + nameTest: + ## ServiceAccount labels. + automountServiceAccountToken: false + +replicas: 1 + +## Create a headless service for the deployment +headlessService: false + +## Should the service account be auto mounted on the pod +automountServiceAccountToken: true + +## Create HorizontalPodAutoscaler object for deployment type +# +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 3 + targetCPU: "60" + targetMemory: "" + behavior: {} + +deploymentStrategy: + type: RollingUpdate + +readinessProbe: + httpGet: + path: /api/health + port: 3000 + +livenessProbe: + httpGet: + path: /api/health + port: 3000 + initialDelaySeconds: 60 + timeoutSeconds: 30 + failureThreshold: 10 + +image: + registry: docker.io + repository: grafana/grafana + # Overrides the Grafana image tag whose default is the chart appVersion + tag: "" + sha: "" + pullPolicy: IfNotPresent + + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## Can be templated. + ## + pullSecrets: [] + # - myRegistrKeySecretName + +testFramework: + enabled: true + ## The type of Helm hook used to run this test. Defaults to test. + ## ref: https://helm.sh/docs/topics/charts_hooks/#the-available-hooks + ## + # hookType: test + image: + # -- The Docker registry + registry: docker.io + repository: bats/bats + tag: "v1.4.1" + imagePullPolicy: IfNotPresent + +# dns configuration for pod +dnsPolicy: ~ +dnsConfig: {} + # nameservers: + # - 8.8.8.8 + # options: + # - name: ndots + # value: "2" + # - name: edns0 + +securityContext: + runAsNonRoot: true + runAsUser: 472 + runAsGroup: 472 + fsGroup: 472 + +containerSecurityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + seccompProfile: + type: RuntimeDefault + +# Enable creating the grafana configmap +createConfigmap: true + +downloadDashboardsImage: + registry: docker.io + repository: curlimages/curl + tag: 8.9.1 + sha: "" + pullPolicy: IfNotPresent + +downloadDashboards: + env: {} + envFromSecret: "" + resources: {} + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + seccompProfile: + type: RuntimeDefault + envValueFrom: {} + # ENV_NAME: + # configMapKeyRef: + # name: configmap-name + # key: value_key + +## Pod Annotations +# podAnnotations: {} + +## ConfigMap Annotations +# configMapAnnotations: {} + # argocd.argoproj.io/sync-options: Replace=true + +## Pod Labels +# podLabels: {} + +podPortName: grafana +gossipPortName: gossip +## Deployment annotations +# annotations: {} + +service: + enabled: true + type: NodePort + port: 80 + targetPort: 3000 + nodePort: 30080 + portName: service + +## Enable persistence using Persistent Volume Claims +## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/ +## +persistence: + type: pvc + enabled: true + # storageClassName: default + accessModes: + - ReadWriteOnce + size: 10Gi + # annotations: {} + finalizers: + - kubernetes.io/pvc-protection + + disableWarning: false + + ## If 'lookupVolumeName' is set to true, Helm will attempt to retrieve + ## the current value of 'spec.volumeName' and incorporate it into the template. + lookupVolumeName: true + +# Administrator credentials when not using an existing secret (see below) +adminUser: admin +# adminPassword: strongpassword + +# Use an existing secret for the admin user. +admin: + ## Name of the secret. Can be templated. + existingSecret: "" + userKey: admin-user + passwordKey: admin-password + +## Configure grafana datasources +## ref: http://docs.grafana.org/administration/provisioning/#datasources +## +datasources: + datasources.yaml: + apiVersion: 1 + datasources: + - name: Prometheus + type: prometheus + url: http://mon-prometheus-server.monitoring.svc.cluster.local + access: proxy + isDefault: true + - name: Mimir + type: prometheus + url: http://mimir-nginx.mon-mimir.svc:80/prometheus + access: proxy + isDefault: false + +## Grafana's primary configuration +## NOTE: values in map will be converted to ini format +## ref: http://docs.grafana.org/installation/configuration/ +## +grafana.ini: + paths: + data: /var/lib/grafana/ + logs: /var/log/grafana + plugins: /var/lib/grafana/plugins + provisioning: /etc/grafana/provisioning + analytics: + check_for_updates: true + log: + mode: console + grafana_net: + url: https://grafana.net + server: + domain: "{{ if (and .Values.ingress.enabled .Values.ingress.hosts) }}{{ tpl (.Values.ingress.hosts | first) . }}{{ else }}''{{ end }}" + +## Number of old ReplicaSets to retain +## +revisionHistoryLimit: 5 + +# assertNoLeakedSecrets is a helper function defined in _helpers.tpl that checks if secret +# values are not exposed in the rendered grafana.ini configmap. It is enabled by default. +# +# To pass values into grafana.ini without exposing them in a configmap, use variable expansion: +# https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#variable-expansion +# +# Alternatively, if you wish to allow secret values to be exposed in the rendered grafana.ini configmap, +# you can disable this check by setting assertNoLeakedSecrets to false. +assertNoLeakedSecrets: true + diff --git a/manifests/prometheus/prometheus.yaml b/manifests/monitoring/prometheus_values.yaml similarity index 100% rename from manifests/prometheus/prometheus.yaml rename to manifests/monitoring/prometheus_values.yaml diff --git a/src/telemetry/backend/collectors/emulated/SyntheticMetricsGenerator.py b/src/telemetry/backend/collectors/emulated/SyntheticMetricsGenerator.py index a01e2c0e6..77d998432 100644 --- a/src/telemetry/backend/collectors/emulated/SyntheticMetricsGenerator.py +++ b/src/telemetry/backend/collectors/emulated/SyntheticMetricsGenerator.py @@ -98,7 +98,7 @@ class SyntheticMetricsGenerator(): return (time.time(), resource_key, requested_metrics) - def metric_id_mapper(self, sample_type_ids, metric_dict): + def metric_id_mapper(self, sample_type_ids, metric_dict): # TODO: Add a dynamic mappper from kpi_sample_type ID to name... """ Maps the sample type IDs to the corresponding metric names. diff --git a/src/telemetry/backend/service/TelemetryBackendService.py b/src/telemetry/backend/service/TelemetryBackendService.py index 40cd1443a..3aeee8238 100755 --- a/src/telemetry/backend/service/TelemetryBackendService.py +++ b/src/telemetry/backend/service/TelemetryBackendService.py @@ -49,7 +49,7 @@ class TelemetryBackendService(GenericGrpcService): self.kafka_consumer = KafkaConsumer({'bootstrap.servers' : KafkaConfig.get_kafka_address(), 'group.id' : 'backend', 'auto.offset.reset' : 'latest'}) - self.collector = EmulatedCollector(address="127.0.0.1", port=8000) + self.collector = None self.context_client = ContextClient() self.kpi_manager_client = KpiManagerClient() self.active_jobs = {} @@ -124,11 +124,11 @@ class TelemetryBackendService(GenericGrpcService): Method to handle collector request. """ device_type, end_points = self.get_endpoint_detail(kpi_id) - # end_points : dict = self.get_endpoints_from_kpi_id(kpi_id) + if end_points is None: LOGGER.warning("KPI ID: {:} - Endpoints not found. Skipping...".format(kpi_id)) return - # device_type : str = self.get_device_type_from_kpi_id(kpi_id) + if device_type and "emu" in device_type: LOGGER.info("KPI ID: {:} - Device Type: {:} - Endpoints: {:}".format(kpi_id, device_type, end_points)) subscription = [collector_id, end_points, duration, interval] @@ -139,6 +139,7 @@ class TelemetryBackendService(GenericGrpcService): def EmulatedCollectorHandler(self, subscription, duration, collector_id, kpi_id, stop_event): # EmulatedCollector + self.collector = EmulatedCollector(address="127.0.0.1", port=8000) self.collector.Connect() if not self.collector.SubscribeState(subscription): LOGGER.warning("KPI ID: {:} - Subscription failed. Skipping...".format(kpi_id)) -- GitLab From c688687d990fad4bfb8364af58ad05669d00b66c Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 10 Mar 2025 13:25:40 +0000 Subject: [PATCH 082/213] Minor bug fixes --- src/kpi_value_writer/service/KpiValueWriter.py | 10 ++++------ src/telemetry/backend/Dockerfile | 2 ++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/kpi_value_writer/service/KpiValueWriter.py b/src/kpi_value_writer/service/KpiValueWriter.py index 25b8ca2e8..74291bba3 100644 --- a/src/kpi_value_writer/service/KpiValueWriter.py +++ b/src/kpi_value_writer/service/KpiValueWriter.py @@ -55,11 +55,9 @@ class KpiValueWriter(GenericGrpcService): if raw_kpi is None: continue elif raw_kpi.error(): - if raw_kpi.error().code() == KafkaError._PARTITION_EOF: - continue - else: + if raw_kpi.error().code() != KafkaError._PARTITION_EOF: print("Consumer error: {}".format(raw_kpi.error())) - continue + continue try: kpi_value = json.loads(raw_kpi.value().decode('utf-8')) LOGGER.info("Received KPI : {:}".format(kpi_value)) @@ -79,5 +77,5 @@ class KpiValueWriter(GenericGrpcService): metric_writer.create_and_expose_cooked_kpi(kpi_descriptor_object, kpi_value) else: LOGGER.info("No KPI Descriptor found in Database for Kpi ID: {:}".format(kpi_id)) - except Exception as e: - LOGGER.info("Unable to get KpiDescriptor. Error: {:}".format(e)) + except: + LOGGER.exception("Unable to get KpiDescriptor") diff --git a/src/telemetry/backend/Dockerfile b/src/telemetry/backend/Dockerfile index 7448f1ebc..81f8bba4b 100644 --- a/src/telemetry/backend/Dockerfile +++ b/src/telemetry/backend/Dockerfile @@ -64,6 +64,8 @@ RUN python3 -m pip install -r requirements.txt WORKDIR /var/teraflow 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/kpi_manager/client/. kpi_manager/client/ COPY src/kpi_manager/__init__.py kpi_manager/__init__.py COPY src/telemetry/__init__.py telemetry/__init__.py -- GitLab From 2d4b9d8c1ef7978aeb69f287987b2a93f67665bd Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 10 Mar 2025 13:27:15 +0000 Subject: [PATCH 083/213] Renamed new_monitoring.sh to monitoring.sh --- deploy/{new_monitoring.sh => monitoring.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename deploy/{new_monitoring.sh => monitoring.sh} (100%) diff --git a/deploy/new_monitoring.sh b/deploy/monitoring.sh similarity index 100% rename from deploy/new_monitoring.sh rename to deploy/monitoring.sh -- GitLab From cef03c41983bee4d572d018c949ade6bb14886c7 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 10 Mar 2025 13:29:35 +0000 Subject: [PATCH 084/213] Disable for now Mimir --- deploy/monitoring.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/deploy/monitoring.sh b/deploy/monitoring.sh index ac1f46723..6fa633a37 100755 --- a/deploy/monitoring.sh +++ b/deploy/monitoring.sh @@ -33,11 +33,11 @@ VALUES_FILE_PROM="$VALUES_FILE_PATH/prometheus_values.yaml" # ----------------------------------------------------------- # Mimir Configuration # ----------------------------------------------------------- -RELEASE_NAME_MIMIR="mon-mimir" -CHART_REPO_NAME_MIMIR="grafana" -CHART_REPO_URL_MIMIR="https://grafana.github.io/helm-charts" -CHART_NAME_MIMIR="mimir-distributed" -VALUES_FILE_MIMIR="$VALUES_FILE_PATH/mimir_values.yaml" +# RELEASE_NAME_MIMIR="mon-mimir" +# CHART_REPO_NAME_MIMIR="grafana" +# CHART_REPO_URL_MIMIR="https://grafana.github.io/helm-charts" +# CHART_NAME_MIMIR="mimir-distributed" +# VALUES_FILE_MIMIR="$VALUES_FILE_PATH/mimir_values.yaml" # ----------------------------------------------------------- # Grafana Configuration @@ -105,12 +105,12 @@ kubectl rollout status deployment/"$RELEASE_NAME_PROM-server" -n "$NAMESPACE" || # 2) Deploy Mimir -deploy_chart "$RELEASE_NAME_MIMIR" \ - "$CHART_REPO_NAME_MIMIR" \ - "$CHART_REPO_URL_MIMIR" \ - "$CHART_NAME_MIMIR" \ - "$VALUES_FILE_MIMIR" \ - "$NAMESPACE" +# deploy_chart "$RELEASE_NAME_MIMIR" \ +# "$CHART_REPO_NAME_MIMIR" \ +# "$CHART_REPO_URL_MIMIR" \ +# "$CHART_NAME_MIMIR" \ +# "$VALUES_FILE_MIMIR" \ +# "$NAMESPACE" # Depending on how Mimir runs (StatefulSets, Deployments), you can wait for # the correct resource to be ready. For example: -- GitLab From 5c64c58bc6d89d767ed5c894e6ab0585e6beb1f9 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 10 Mar 2025 13:40:46 +0000 Subject: [PATCH 085/213] KPI Manager: - Corrected exception handling --- .../service/KpiManagerServiceServicerImpl.py | 85 ++++++++----------- 1 file changed, 34 insertions(+), 51 deletions(-) diff --git a/src/kpi_manager/service/KpiManagerServiceServicerImpl.py b/src/kpi_manager/service/KpiManagerServiceServicerImpl.py index 1dd214506..38e6a1fe1 100644 --- a/src/kpi_manager/service/KpiManagerServiceServicerImpl.py +++ b/src/kpi_manager/service/KpiManagerServiceServicerImpl.py @@ -18,7 +18,7 @@ from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_m from common.proto.context_pb2 import Empty from common.proto.kpi_manager_pb2_grpc import KpiManagerServiceServicer from common.proto.kpi_manager_pb2 import KpiId, KpiDescriptor, KpiDescriptorFilter, KpiDescriptorList -# from kpi_manager.database.Kpi_DB import KpiDB +from common.method_wrappers.ServiceExceptions import NotFoundException from kpi_manager.database.KpiDB import KpiDB from kpi_manager.database.KpiModel import Kpi as KpiModel @@ -31,65 +31,48 @@ class KpiManagerServiceServicerImpl(KpiManagerServiceServicer): self.kpi_db_obj = KpiDB(KpiModel) @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def SetKpiDescriptor(self, request: KpiDescriptor, grpc_context: grpc.ServicerContext # type: ignore - ) -> KpiId: # type: ignore + def SetKpiDescriptor( + self, request: KpiDescriptor, grpc_context: grpc.ServicerContext # type: ignore + ) -> KpiId: # type: ignore response = KpiId() LOGGER.info("Received gRPC message object: {:}".format(request)) - try: - kpi_to_insert = KpiModel.convert_KpiDescriptor_to_row(request) - if(self.kpi_db_obj.add_row_to_db(kpi_to_insert)): - response.kpi_id.uuid = request.kpi_id.kpi_id.uuid - # LOGGER.info("Added Row: {:}".format(response)) - return response - except Exception as e: - LOGGER.info("Unable to create KpiModel class object. {:}".format(e)) - + kpi_to_insert = KpiModel.convert_KpiDescriptor_to_row(request) + if self.kpi_db_obj.add_row_to_db(kpi_to_insert): + response.kpi_id.uuid = request.kpi_id.kpi_id.uuid + # LOGGER.info("Added Row: {:}".format(response)) + return response + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def GetKpiDescriptor(self, request: KpiId, grpc_context: grpc.ServicerContext # type: ignore - ) -> KpiDescriptor: # type: ignore + def GetKpiDescriptor( + self, request: KpiId, grpc_context: grpc.ServicerContext # type: ignore + ) -> KpiDescriptor: # type: ignore response = KpiDescriptor() - print("--> Received gRPC message object: {:}".format(request)) LOGGER.info("Received gRPC message object: {:}".format(request)) - try: - kpi_id_to_search = request.kpi_id.uuid - row = self.kpi_db_obj.search_db_row_by_id(KpiModel, 'kpi_id', kpi_id_to_search) - if row is None: - print ('No matching row found for kpi id: {:}'.format(kpi_id_to_search)) - LOGGER.info('No matching row found kpi id: {:}'.format(kpi_id_to_search)) - return Empty() - else: - response = KpiModel.convert_row_to_KpiDescriptor(row) - return response - except Exception as e: - print ('Unable to search kpi id. {:}'.format(e)) - LOGGER.info('Unable to search kpi id. {:}'.format(e)) - raise e + kpi_id_to_search = request.kpi_id.uuid + row = self.kpi_db_obj.search_db_row_by_id(KpiModel, 'kpi_id', kpi_id_to_search) + if row is None: + LOGGER.info('No matching row found kpi id: {:}'.format(kpi_id_to_search)) + raise NotFoundException('KpiDescriptor', kpi_id_to_search) + response = KpiModel.convert_row_to_KpiDescriptor(row) + return response @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def DeleteKpiDescriptor(self, request: KpiId, grpc_context: grpc.ServicerContext # type: ignore - ) -> Empty: # type: ignore + def DeleteKpiDescriptor( + self, request: KpiId, grpc_context: grpc.ServicerContext # type: ignore + ) -> Empty: # type: ignore LOGGER.info("Received gRPC message object: {:}".format(request)) - try: - kpi_id_to_search = request.kpi_id.uuid - self.kpi_db_obj.delete_db_row_by_id(KpiModel, 'kpi_id', kpi_id_to_search) - except Exception as e: - LOGGER.info('Unable to search kpi id. {:}'.format(e)) - finally: - return Empty() + kpi_id_to_search = request.kpi_id.uuid + self.kpi_db_obj.delete_db_row_by_id(KpiModel, 'kpi_id', kpi_id_to_search) + return Empty() @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def SelectKpiDescriptor(self, filter: KpiDescriptorFilter, grpc_context: grpc.ServicerContext # type: ignore - ) -> KpiDescriptorList: # type: ignore + def SelectKpiDescriptor( + self, filter: KpiDescriptorFilter, grpc_context: grpc.ServicerContext # type: ignore + ) -> KpiDescriptorList: # type: ignore LOGGER.info("Received gRPC message object: {:}".format(filter)) response = KpiDescriptorList() - try: - rows = self.kpi_db_obj.select_with_filter(KpiModel, filter) - except Exception as e: - LOGGER.info('Unable to apply filter on kpi descriptor. {:}'.format(e)) - try: - for row in rows: - kpiDescriptor_obj = KpiModel.convert_row_to_KpiDescriptor(row) - response.kpi_descriptor_list.append(kpiDescriptor_obj) - return response - except Exception as e: - LOGGER.info('Unable to process filter response {:}'.format(e)) + rows = self.kpi_db_obj.select_with_filter(KpiModel, filter) + for row in rows: + kpiDescriptor_obj = KpiModel.convert_row_to_KpiDescriptor(row) + response.kpi_descriptor_list.append(kpiDescriptor_obj) + return response -- GitLab From f0a69d8f14e1012065ea0d842b71edb9269ecc0a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 10 Mar 2025 13:42:39 +0000 Subject: [PATCH 086/213] Telemetry Backend: - Added missing Dockerfile dependencies --- src/telemetry/backend/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/telemetry/backend/Dockerfile b/src/telemetry/backend/Dockerfile index 81f8bba4b..a0fa2f803 100644 --- a/src/telemetry/backend/Dockerfile +++ b/src/telemetry/backend/Dockerfile @@ -68,6 +68,8 @@ COPY src/device/__init__.py device/__init__.py COPY src/device/client/. device/client/ COPY src/kpi_manager/client/. kpi_manager/client/ COPY src/kpi_manager/__init__.py kpi_manager/__init__.py +COPY src/service/__init__.py service/__init__.py +COPY src/service/client/. service/client/ COPY src/telemetry/__init__.py telemetry/__init__.py COPY src/telemetry/backend/. telemetry/backend/ -- GitLab From 469032c3e71d7765201155e918fc6ee0d3d65d86 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 10 Mar 2025 13:58:15 +0000 Subject: [PATCH 087/213] CI/CD pipeline code fixes --- src/kpi_manager/tests/test_messages.py | 4 ++-- src/kpi_value_writer/service/MetricWriterToPrometheus.py | 6 ++++-- src/telemetry/backend/Dockerfile | 2 ++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/kpi_manager/tests/test_messages.py b/src/kpi_manager/tests/test_messages.py index 811661a4e..094c56df8 100644 --- a/src/kpi_manager/tests/test_messages.py +++ b/src/kpi_manager/tests/test_messages.py @@ -26,9 +26,9 @@ def create_kpi_id_request(): def create_kpi_descriptor_request(descriptor_name: str = "Test_name"): _create_kpi_request = kpi_manager_pb2.KpiDescriptor() - # _create_kpi_request.kpi_id.kpi_id.uuid = str(uuid.uuid4()) + _create_kpi_request.kpi_id.kpi_id.uuid = str(uuid.uuid4()) # _create_kpi_request.kpi_id.kpi_id.uuid = "6e22f180-ba28-4641-b190-2287bf448888" - _create_kpi_request.kpi_id.kpi_id.uuid = "f974b6cc-095f-4767-b8c1-3457b383fb99" + # _create_kpi_request.kpi_id.kpi_id.uuid = "f974b6cc-095f-4767-b8c1-3457b383fb99" _create_kpi_request.kpi_description = descriptor_name _create_kpi_request.kpi_sample_type = KpiSampleType.KPISAMPLETYPE_PACKETS_RECEIVED _create_kpi_request.device_id.device_uuid.uuid = str(uuid.uuid4()) diff --git a/src/kpi_value_writer/service/MetricWriterToPrometheus.py b/src/kpi_value_writer/service/MetricWriterToPrometheus.py index 3238516c9..595d025b3 100644 --- a/src/kpi_value_writer/service/MetricWriterToPrometheus.py +++ b/src/kpi_value_writer/service/MetricWriterToPrometheus.py @@ -51,8 +51,10 @@ class MetricWriterToPrometheus: 'slice_id' : kpi_descriptor.slice_id.slice_uuid.uuid, 'connection_id' : kpi_descriptor.connection_id.connection_uuid.uuid, 'link_id' : kpi_descriptor.link_id.link_uuid.uuid, - 'time_stamp' : kpi_value["time_stamp"], - 'kpi_value' : kpi_value["kpi_value"] + 'time_stamp' : kpi_value.timestamp.timestamp, + #'time_stamp' : kpi_value["time_stamp"], + 'kpi_value' : kpi_value.kpi_value_type.floatVal + #'kpi_value' : kpi_value["kpi_value"] } LOGGER.debug("Cooked Kpi: {:}".format(cooked_kpi)) return cooked_kpi diff --git a/src/telemetry/backend/Dockerfile b/src/telemetry/backend/Dockerfile index a0fa2f803..07459986d 100644 --- a/src/telemetry/backend/Dockerfile +++ b/src/telemetry/backend/Dockerfile @@ -70,6 +70,8 @@ COPY src/kpi_manager/client/. kpi_manager/client/ COPY src/kpi_manager/__init__.py kpi_manager/__init__.py COPY src/service/__init__.py service/__init__.py COPY src/service/client/. service/client/ +COPY src/slice/__init__.py slice/__init__.py +COPY src/slice/client/. slice/client/ COPY src/telemetry/__init__.py telemetry/__init__.py COPY src/telemetry/backend/. telemetry/backend/ -- GitLab From 17228dd56138c9bdd77c58cd772229315e12b7e0 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 10 Mar 2025 14:16:03 +0000 Subject: [PATCH 088/213] CI/CD pipeline code fixes --- src/kpi_manager/tests/test_kpi_manager.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/kpi_manager/tests/test_kpi_manager.py b/src/kpi_manager/tests/test_kpi_manager.py index fedc3f94c..17a1c8d77 100755 --- a/src/kpi_manager/tests/test_kpi_manager.py +++ b/src/kpi_manager/tests/test_kpi_manager.py @@ -13,6 +13,7 @@ # limitations under the License. +import grpc import os, pytest import logging from typing import Union @@ -109,13 +110,19 @@ def test_DeleteKpiDescriptor(kpi_manager_client): LOGGER.info(" >>> test_DeleteKpiDescriptor: START <<< ") # adding KPI response_id = kpi_manager_client.SetKpiDescriptor(create_kpi_descriptor_request()) + # deleting KPI del_response = kpi_manager_client.DeleteKpiDescriptor(response_id) - # select KPI - kpi_manager_client.GetKpiDescriptor(response_id) LOGGER.info("Response of delete method gRPC message object: {:}".format(del_response)) assert isinstance(del_response, Empty) + # select KPI and check it does not exist + with pytest.raises(grpc.RpcError) as e: + kpi_manager_client.GetKpiDescriptor(response_id) + assert e.value.code() == grpc.StatusCode.NOT_FOUND + MSG = 'KpiDescriptor({:s}) not found' + assert e.value.details() == MSG.format(response_id.kpi_id.uuid) + def test_GetKpiDescriptor(kpi_manager_client): LOGGER.info(" >>> test_GetKpiDescriptor: START <<< ") # adding KPI @@ -123,11 +130,6 @@ def test_GetKpiDescriptor(kpi_manager_client): # get KPI response = kpi_manager_client.GetKpiDescriptor(response_id) LOGGER.info("Response gRPC message object: {:}".format(response)) - - LOGGER.info(" >>> calling GetKpiDescriptor with random ID") - rand_response = kpi_manager_client.GetKpiDescriptor(create_kpi_id_request()) - LOGGER.info("Response gRPC message object: {:}".format(rand_response)) - assert isinstance(response, KpiDescriptor) def test_SelectKpiDescriptor(kpi_manager_client): -- GitLab From d531f6aeb87fc68887458b0978569e137daab305 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Mar 2025 13:13:22 +0000 Subject: [PATCH 089/213] OFC25 Test: - Renamed test ECOC24 to OFC25 - Added deploy.sh and undeploy.sh scripts - Corrected test parameters and settings --- ecoc24 | 1 - ofc25 | 1 + src/tests/.gitlab-ci.yml | 2 +- src/tests/ecoc24/dump_logs.sh | 39 ------ src/tests/{ecoc24 => ofc25}/.gitlab-ci.yml | 28 ++--- src/tests/{ecoc24 => ofc25}/Dockerfile | 28 ++--- src/tests/{ecoc24 => ofc25}/__init__.py | 0 src/tests/ofc25/deploy.sh | 117 ++++++++++++++++++ src/tests/{ecoc24 => ofc25}/deploy_e2e.sh | 8 +- src/tests/{ecoc24 => ofc25}/deploy_ip.sh | 8 +- src/tests/{ecoc24 => ofc25}/deploy_opt.sh | 6 +- .../{ecoc24 => ofc25}/deploy_specs_e2e.sh | 6 +- .../{ecoc24 => ofc25}/deploy_specs_ip.sh | 6 +- .../{ecoc24 => ofc25}/deploy_specs_opt.sh | 4 +- .../descriptors/descriptor_e2e.json | 0 .../descriptors/descriptor_ip.json | 0 .../descriptors/descriptor_opt.json | 0 src/tests/ofc25/dump_logs.sh | 51 ++++++++ .../nginx-ingress-controller-e2e.yaml | 0 .../nginx-ingress-controller-ip.yaml | 0 .../nginx-ingress-controller-opt.yaml | 0 src/tests/{ecoc24 => ofc25}/show_deploy.sh | 0 .../{ecoc24 => ofc25}/subscription_ws_e2e.sh | 0 .../{ecoc24 => ofc25}/subscription_ws_ip.sh | 0 src/tests/{ecoc24 => ofc25}/tests/__init__.py | 0 .../{ecoc24 => ofc25}/tests/create_service.py | 0 .../{ecoc24 => ofc25}/tests/delete_service.py | 0 .../tests/test_functional_bootstrap_e2e.py | 0 .../tests/test_functional_bootstrap_ip.py | 0 .../tests/test_functional_bootstrap_opt.py | 0 .../tests/test_functional_cleanup.py | 0 .../tests/test_functional_create_service.py | 0 .../tests/test_functional_delete_service.py | 0 .../{ecoc24 => ofc25}/tfs-ingress-e2e.yaml | 0 .../{ecoc24 => ofc25}/tfs-ingress-ip.yaml | 0 .../{ecoc24 => ofc25}/tfs-ingress-opt.yaml | 0 src/tests/ofc25/undeploy.sh | 38 ++++++ 37 files changed, 255 insertions(+), 88 deletions(-) delete mode 120000 ecoc24 create mode 120000 ofc25 delete mode 100755 src/tests/ecoc24/dump_logs.sh rename src/tests/{ecoc24 => ofc25}/.gitlab-ci.yml (93%) rename src/tests/{ecoc24 => ofc25}/Dockerfile (73%) rename src/tests/{ecoc24 => ofc25}/__init__.py (100%) create mode 100755 src/tests/ofc25/deploy.sh rename src/tests/{ecoc24 => ofc25}/deploy_e2e.sh (84%) rename src/tests/{ecoc24 => ofc25}/deploy_ip.sh (84%) rename src/tests/{ecoc24 => ofc25}/deploy_opt.sh (86%) rename src/tests/{ecoc24 => ofc25}/deploy_specs_e2e.sh (98%) rename src/tests/{ecoc24 => ofc25}/deploy_specs_ip.sh (98%) rename src/tests/{ecoc24 => ofc25}/deploy_specs_opt.sh (98%) rename src/tests/{ecoc24 => ofc25}/descriptors/descriptor_e2e.json (100%) rename src/tests/{ecoc24 => ofc25}/descriptors/descriptor_ip.json (100%) rename src/tests/{ecoc24 => ofc25}/descriptors/descriptor_opt.json (100%) create mode 100755 src/tests/ofc25/dump_logs.sh rename src/tests/{ecoc24 => ofc25}/nginx-ingress-controller-e2e.yaml (100%) rename src/tests/{ecoc24 => ofc25}/nginx-ingress-controller-ip.yaml (100%) rename src/tests/{ecoc24 => ofc25}/nginx-ingress-controller-opt.yaml (100%) rename src/tests/{ecoc24 => ofc25}/show_deploy.sh (100%) rename src/tests/{ecoc24 => ofc25}/subscription_ws_e2e.sh (100%) rename src/tests/{ecoc24 => ofc25}/subscription_ws_ip.sh (100%) rename src/tests/{ecoc24 => ofc25}/tests/__init__.py (100%) rename src/tests/{ecoc24 => ofc25}/tests/create_service.py (100%) rename src/tests/{ecoc24 => ofc25}/tests/delete_service.py (100%) rename src/tests/{ecoc24 => ofc25}/tests/test_functional_bootstrap_e2e.py (100%) rename src/tests/{ecoc24 => ofc25}/tests/test_functional_bootstrap_ip.py (100%) rename src/tests/{ecoc24 => ofc25}/tests/test_functional_bootstrap_opt.py (100%) rename src/tests/{ecoc24 => ofc25}/tests/test_functional_cleanup.py (100%) rename src/tests/{ecoc24 => ofc25}/tests/test_functional_create_service.py (100%) rename src/tests/{ecoc24 => ofc25}/tests/test_functional_delete_service.py (100%) rename src/tests/{ecoc24 => ofc25}/tfs-ingress-e2e.yaml (100%) rename src/tests/{ecoc24 => ofc25}/tfs-ingress-ip.yaml (100%) rename src/tests/{ecoc24 => ofc25}/tfs-ingress-opt.yaml (100%) create mode 100755 src/tests/ofc25/undeploy.sh diff --git a/ecoc24 b/ecoc24 deleted file mode 120000 index 37c97d3a7..000000000 --- a/ecoc24 +++ /dev/null @@ -1 +0,0 @@ -src/tests/ecoc24/ \ No newline at end of file diff --git a/ofc25 b/ofc25 new file mode 120000 index 000000000..346ba6d2c --- /dev/null +++ b/ofc25 @@ -0,0 +1 @@ +src/tests/ofc25/ \ No newline at end of file diff --git a/src/tests/.gitlab-ci.yml b/src/tests/.gitlab-ci.yml index 06578bea8..787b25ee1 100644 --- a/src/tests/.gitlab-ci.yml +++ b/src/tests/.gitlab-ci.yml @@ -23,6 +23,6 @@ include: - local: '/src/tests/eucnc24/.gitlab-ci.yml' - local: '/src/tests/ofc25-camara-agg-net-controller/.gitlab-ci.yml' - local: '/src/tests/ofc25-camara-e2e-controller/.gitlab-ci.yml' - #- local: '/src/tests/ecoc24/.gitlab-ci.yml' + #- local: '/src/tests/ofc25/.gitlab-ci.yml' - local: '/src/tests/tools/mock_tfs_nbi_dependencies/.gitlab-ci.yml' diff --git a/src/tests/ecoc24/dump_logs.sh b/src/tests/ecoc24/dump_logs.sh deleted file mode 100755 index 48ac8e9a0..000000000 --- a/src/tests/ecoc24/dump_logs.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# Copyright 2022-2024 ETSI 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. - - -rm -rf tmp/exec - -echo "Collecting logs for E2E..." -mkdir -p tmp/exec/e2e -kubectl --namespace tfs-e2e logs deployments/contextservice server > tmp/exec/e2e/context.log -kubectl --namespace tfs-e2e logs deployments/deviceservice server > tmp/exec/e2e/device.log -kubectl --namespace tfs-e2e logs deployments/serviceservice server > tmp/exec/e2e/service.log -kubectl --namespace tfs-e2e logs deployments/pathcompservice frontend > tmp/exec/e2e/pathcomp-frontend.log -kubectl --namespace tfs-e2e logs deployments/pathcompservice backend > tmp/exec/e2e/pathcomp-backend.log -kubectl --namespace tfs-e2e logs deployments/sliceservice server > tmp/exec/e2e/slice.log -printf "\n" - -echo "Collecting logs for IP..." -mkdir -p tmp/exec/ip -kubectl --namespace tfs-ip logs deployments/contextservice server > tmp/exec/ip/context.log -kubectl --namespace tfs-ip logs deployments/deviceservice server > tmp/exec/ip/device.log -kubectl --namespace tfs-ip logs deployments/serviceservice server > tmp/exec/ip/service.log -kubectl --namespace tfs-ip logs deployments/pathcompservice frontend > tmp/exec/ip/pathcomp-frontend.log -kubectl --namespace tfs-ip logs deployments/pathcompservice backend > tmp/exec/ip/pathcomp-backend.log -kubectl --namespace tfs-ip logs deployments/sliceservice server > tmp/exec/ip/slice.log -printf "\n" - -echo "Done!" diff --git a/src/tests/ecoc24/.gitlab-ci.yml b/src/tests/ofc25/.gitlab-ci.yml similarity index 93% rename from src/tests/ecoc24/.gitlab-ci.yml rename to src/tests/ofc25/.gitlab-ci.yml index 8e3f7e71a..52ea2e3a4 100644 --- a/src/tests/ecoc24/.gitlab-ci.yml +++ b/src/tests/ofc25/.gitlab-ci.yml @@ -13,9 +13,9 @@ # limitations under the License. # Build, tag, and push the Docker image to the GitLab Docker registry -build ecoc24: +build ofc25: variables: - TEST_NAME: 'ecoc24' + TEST_NAME: 'ofc25' stage: build before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY @@ -36,13 +36,13 @@ build ecoc24: - .gitlab-ci.yml # Deploy TeraFlowSDN and Execute end-2-end test -end2end_test ecoc24: +end2end_test ofc25: variables: - TEST_NAME: 'ecoc24' + TEST_NAME: 'ofc25' stage: end2end_test # Disable to force running it after all other tasks #needs: - # - build ecoc24 + # - build ofc25 before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - docker network rm -f na-br @@ -85,11 +85,11 @@ end2end_test ecoc24: # Delete secondary ingress controllers - - kubectl delete -f src/tests/ecoc24/nginx-ingress-controller-opt.yaml --ignore-not-found + - kubectl delete -f src/tests/ofc25/nginx-ingress-controller-opt.yaml --ignore-not-found # Create secondary ingress controllers - - kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-opt.yaml + - kubectl apply -f src/tests/ofc25/nginx-ingress-controller-opt.yaml # Deploy TFS for OPT - - source src/tests/ecoc24/deploy_specs_opt.sh + - source src/tests/ofc25/deploy_specs_opt.sh # Change the name for the database - cp manifests/contextservice.yaml manifests/contextservice.yaml.bak @@ -115,13 +115,13 @@ end2end_test ecoc24: # Deploy IP TeraFlowSDN # Delete secondary ingress controllers - - kubectl delete -f src/tests/ecoc24/nginx-ingress-controller-ip.yaml --ignore-not-found + - kubectl delete -f src/tests/ofc25/nginx-ingress-controller-ip.yaml --ignore-not-found # Create secondary ingress controllers - - kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-ip.yaml + - kubectl apply -f src/tests/ofc25/nginx-ingress-controller-ip.yaml # Deploy TFS for IP - - source src/tests/ecoc24/deploy_specs_ip.sh + - source src/tests/ofc25/deploy_specs_ip.sh # Change the name for the database - cp manifests/contextservice.yaml manifests/contextservice.yaml.bak @@ -151,10 +151,10 @@ end2end_test ecoc24: # Delete secondary ingress controllers - - kubectl delete -f src/tests/ecoc24/nginx-ingress-controller-e2e.yaml --ignore-not-found + - kubectl delete -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml --ignore-not-found # Create secondary ingress controllers - - kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-e2e.yaml + - kubectl apply -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml # Change the name for the database - cp manifests/contextservice.yaml manifests/contextservice.yaml.bak @@ -175,7 +175,7 @@ end2end_test ecoc24: - mv manifests/contextservice.yaml.bak manifests/contextservice.yaml #Configure Subscription WS - - ./src/tests/ecoc24/subscription_ws_e2e.sh + - ./src/tests/ofc25/subscription_ws_e2e.sh - mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_e2e.sh diff --git a/src/tests/ecoc24/Dockerfile b/src/tests/ofc25/Dockerfile similarity index 73% rename from src/tests/ecoc24/Dockerfile rename to src/tests/ofc25/Dockerfile index 8fca59f57..cebf66695 100644 --- a/src/tests/ecoc24/Dockerfile +++ b/src/tests/ofc25/Dockerfile @@ -49,9 +49,9 @@ RUN rm *.proto RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; # Create component sub-folders, get specific Python packages -RUN mkdir -p /var/teraflow/tests/ecoc24 -WORKDIR /var/teraflow/tests/ecoc24 -COPY src/tests/ofc24/requirements.in requirements.in +RUN mkdir -p /var/teraflow/tests/ofc25 +WORKDIR /var/teraflow/tests/ofc25 +COPY src/tests/ofc25/requirements.in requirements.in RUN pip-compile --quiet --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt @@ -74,23 +74,23 @@ COPY src/service/client/. service/client/ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ COPY src/tests/*.py ./tests/ -COPY src/tests/ecoc24/__init__.py ./tests/ecoc24/__init__.py -COPY src/tests/ecoc24/descriptors/descriptor_ip.json ./tests/ecoc24/descriptors/descriptor_ip.json -COPY src/tests/ecoc24/descriptors/descriptor_opt.json ./tests/ecoc24/descriptors/descriptor_opt.json -COPY src/tests/ecoc24/descriptors/descriptor_e2e.json ./tests/ecoc24/descriptors/descriptor_e2e.json -COPY src/tests/ecoc24/tests/. ./tests/ecoc24/tests/ +COPY src/tests/ofc25/__init__.py ./tests/ofc25/__init__.py +COPY src/tests/ofc25/descriptors/descriptor_ip.json ./tests/ofc25/descriptors/descriptor_ip.json +COPY src/tests/ofc25/descriptors/descriptor_opt.json ./tests/ofc25/descriptors/descriptor_opt.json +COPY src/tests/ofc25/descriptors/descriptor_e2e.json ./tests/ofc25/descriptors/descriptor_e2e.json +COPY src/tests/ofc25/tests/. ./tests/ofc25/tests/ RUN tee ./run_tests.sh <<EOF !/bin/bash source /var/teraflow/tfs_runtime_env_vars.sh export PYTHONPATH=/var/teraflow -pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_opt.py --junitxml=/opt/results/report_bootstrap_opt.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_ip.py --junitxml=/opt/results/report_bootstrap_ip.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc25/tests/test_functional_bootstrap_opt.py --junitxml=/opt/results/report_bootstrap_opt.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc25/tests/test_functional_bootstrap_ip.py --junitxml=/opt/results/report_bootstrap_ip.xml sleep 5 -pytest --verbose --log-level=INFO /var/teraflow/tests/ecoc24/tests/test_functional_bootstrap_e2e.py --junitxml=/opt/results/report_bootstrap_e2e.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_create_service.py --junitxml=/opt/results/report_create_service.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_delete_service.py --junitxml=/opt/results/report_delete_service.xml -pytest --verbose --log-level=INFO /var/teraflow/tests/ofc24/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc25/tests/test_functional_bootstrap_e2e.py --junitxml=/opt/results/report_bootstrap_e2e.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc25/tests/test_functional_create_service.py --junitxml=/opt/results/report_create_service.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc25/tests/test_functional_delete_service.py --junitxml=/opt/results/report_delete_service.xml +pytest --verbose --log-level=INFO /var/teraflow/tests/ofc25/tests/test_functional_cleanup.py --junitxml=/opt/results/report_cleanup.xml EOF RUN chmod ug+x ./run_tests.sh diff --git a/src/tests/ecoc24/__init__.py b/src/tests/ofc25/__init__.py similarity index 100% rename from src/tests/ecoc24/__init__.py rename to src/tests/ofc25/__init__.py diff --git a/src/tests/ofc25/deploy.sh b/src/tests/ofc25/deploy.sh new file mode 100755 index 000000000..0aff24885 --- /dev/null +++ b/src/tests/ofc25/deploy.sh @@ -0,0 +1,117 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + +# ===== Check Microk8s is ready ============================== +microk8s status --wait-ready +kubectl get pods --all-namespaces + +# ===== Cleanup old deployments ============================== +helm3 uninstall --namespace nats-e2e nats-e2e 2>/dev/null || true +helm3 uninstall --namespace nats-ip nats-ip 2>/dev/null || true +helm3 uninstall --namespace nats-opt nats-opt 2>/dev/null || true +helm3 uninstall --namespace nats nats 2>/dev/null || true +kubectl delete namespaces tfs tfs-ip tfs-opt tfs-e2e --ignore-not-found +kubectl delete namespaces qdb qdb-e2e qdb-opt qdb-ip --ignore-not-found +kubectl delete namespaces kafka kafka-ip kafka-opt kafka-e2e --ignore-not-found +kubectl delete namespaces nats nats-ip nats-opt nats-e2e --ignore-not-found + +kubectl delete -f src/tests/ofc25/nginx-ingress-controller-opt.yaml --ignore-not-found +kubectl delete -f src/tests/ofc25/nginx-ingress-controller-ip.yaml --ignore-not-found +kubectl delete -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml --ignore-not-found + +sleep 5 + +# ===== Check Microk8s is ready ============================== +microk8s status --wait-ready +kubectl get pods --all-namespaces + +# 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 +#yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/deviceservice.yaml +#yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="frontend").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/pathcompservice.yaml +#yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/serviceservice.yaml +#yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/sliceservice.yaml +#yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/nbiservice.yaml +#yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/e2eorchestratorservice.yaml +#yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/vntmservice.yaml + +# Create secondary ingress controllers +kubectl apply -f src/tests/ofc25/nginx-ingress-controller-opt.yaml +kubectl apply -f src/tests/ofc25/nginx-ingress-controller-ip.yaml +kubectl apply -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml + +cp manifests/contextservice.yaml manifests/contextservice.yaml.bak + +# ===== Deploy Optical TeraFlowSDN ============================== +source src/tests/ofc25/deploy_specs_opt.sh +cp manifests/contextservice.yaml.bak manifests/contextservice.yaml +sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_opt_context"/}' manifests/contextservice.yaml + +./deploy/crdb.sh +./deploy/nats.sh +./deploy/kafka.sh +#./deploy/qdb.sh +#./deploy/expose_dashboard.sh +./deploy/tfs.sh +./deploy/show.sh + +mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_opt.sh + + +## ===== Deploy IP TeraFlowSDN ============================== +#source src/tests/ofc25/deploy_specs_ip.sh +#cp manifests/contextservice.yaml.bak manifests/contextservice.yaml +#sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_ip_context"/}' manifests/contextservice.yaml +# +#./deploy/crdb.sh +#./deploy/nats.sh +#./deploy/kafka.sh +##./deploy/qdb.sh +##./deploy/expose_dashboard.sh +#./deploy/tfs.sh +#./deploy/show.sh +# +#mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_ip.sh + + +## ===== Deploy End-to-End TeraFlowSDN ==================== +#source src/tests/ofc25/deploy_specs_e2e.sh +#cp manifests/contextservice.yaml.bak manifests/contextservice.yaml +#sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_e2e_context"/}' manifests/contextservice.yaml +# +#./deploy/crdb.sh +#./deploy/nats.sh +#./deploy/kafka.sh +##./deploy/qdb.sh +##./deploy/expose_dashboard.sh +#./deploy/tfs.sh +#./deploy/show.sh +# +#mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_e2e.sh + + +# ===== Recovering files ========================= +mv manifests/contextservice.yaml.bak manifests/contextservice.yaml + +# ===== Onboarding topologies ========================= +# TODO: pending... + +# ===== Configure subscriptions ========================= +# This should not be needed +#./src/tests/ofc25/subscription_ws_ip.sh +#./src/tests/ofc25/subscription_ws_e2e.sh + +echo "Done!" diff --git a/src/tests/ecoc24/deploy_e2e.sh b/src/tests/ofc25/deploy_e2e.sh similarity index 84% rename from src/tests/ecoc24/deploy_e2e.sh rename to src/tests/ofc25/deploy_e2e.sh index cbfcfdc21..943487ae5 100755 --- a/src/tests/ecoc24/deploy_e2e.sh +++ b/src/tests/ofc25/deploy_e2e.sh @@ -18,13 +18,13 @@ kubectl delete namespace tfs-e2e # Delete secondary ingress controllers -kubectl delete -f src/tests/ecoc24/nginx-ingress-controller-e2e.yaml +kubectl delete -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml # Create secondary ingress controllers -kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-e2e.yaml +kubectl apply -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml # Deploy TFS for E2E -source src/tests/ecoc24/deploy_specs_e2e.sh +source src/tests/ofc25/deploy_specs_e2e.sh # Change the name for the database cp manifests/contextservice.yaml manifests/contextservice.yaml.bak @@ -33,6 +33,6 @@ sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_e2e_context"/}' manifest mv manifests/contextservice.yaml.bak manifests/contextservice.yaml #Configure Subscription WS -./src/tests/ecoc24/subscription_ws_e2e.sh +./src/tests/ofc25/subscription_ws_e2e.sh mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_e2e.sh diff --git a/src/tests/ecoc24/deploy_ip.sh b/src/tests/ofc25/deploy_ip.sh similarity index 84% rename from src/tests/ecoc24/deploy_ip.sh rename to src/tests/ofc25/deploy_ip.sh index 694b24698..7cd145946 100755 --- a/src/tests/ecoc24/deploy_ip.sh +++ b/src/tests/ofc25/deploy_ip.sh @@ -18,13 +18,13 @@ kubectl delete namespace tfs-ip # Delete secondary ingress controllers -kubectl delete -f src/tests/ecoc24/nginx-ingress-controller-ip.yaml +kubectl delete -f src/tests/ofc25/nginx-ingress-controller-ip.yaml # Create secondary ingress controllers -kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-ip.yaml +kubectl apply -f src/tests/ofc25/nginx-ingress-controller-ip.yaml # Deploy TFS for IP -source src/tests/ecoc24/deploy_specs_ip.sh +source src/tests/ofc25/deploy_specs_ip.sh # Change the name for the database cp manifests/contextservice.yaml manifests/contextservice.yaml.bak @@ -33,6 +33,6 @@ sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_ip_context"/}' manifests mv manifests/contextservice.yaml.bak manifests/contextservice.yaml #Configure Subscription WS -./src/tests/ecoc24/subscription_ws_ip.sh +./src/tests/ofc25/subscription_ws_ip.sh mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_ip.sh diff --git a/src/tests/ecoc24/deploy_opt.sh b/src/tests/ofc25/deploy_opt.sh similarity index 86% rename from src/tests/ecoc24/deploy_opt.sh rename to src/tests/ofc25/deploy_opt.sh index c85b6e08b..a38645e41 100755 --- a/src/tests/ecoc24/deploy_opt.sh +++ b/src/tests/ofc25/deploy_opt.sh @@ -18,13 +18,13 @@ kubectl delete namespace tfs-opt # Delete secondary ingress controllers -kubectl delete -f src/tests/ecoc24/nginx-ingress-controller-opt.yaml +kubectl delete -f src/tests/ofc25/nginx-ingress-controller-opt.yaml # Create secondary ingress controllers -kubectl apply -f src/tests/ecoc24/nginx-ingress-controller-opt.yaml +kubectl apply -f src/tests/ofc25/nginx-ingress-controller-opt.yaml # Deploy TFS for OPT -source src/tests/ecoc24/deploy_specs_opt.sh +source src/tests/ofc25/deploy_specs_opt.sh # Change the name for the database cp manifests/contextservice.yaml manifests/contextservice.yaml.bak diff --git a/src/tests/ecoc24/deploy_specs_e2e.sh b/src/tests/ofc25/deploy_specs_e2e.sh similarity index 98% rename from src/tests/ecoc24/deploy_specs_e2e.sh rename to src/tests/ofc25/deploy_specs_e2e.sh index 2792f9fd3..e276410df 100755 --- a/src/tests/ecoc24/deploy_specs_e2e.sh +++ b/src/tests/ofc25/deploy_specs_e2e.sh @@ -97,7 +97,7 @@ export TFS_IMAGE_TAG="dev" export TFS_K8S_NAMESPACE="tfs-e2e" # Set additional manifest files to be applied after the deployment -export TFS_EXTRA_MANIFESTS="src/tests/ecoc24/tfs-ingress-e2e.yaml" +export TFS_EXTRA_MANIFESTS="src/tests/ofc25/tfs-ingress-e2e.yaml" # Uncomment to monitor performance of components #export TFS_EXTRA_MANIFESTS="${TFS_EXTRA_MANIFESTS} manifests/servicemonitors.yaml" @@ -134,7 +134,7 @@ export CRDB_PASSWORD="tfs123" export CRDB_DEPLOY_MODE="single" # Disable flag for dropping database, if it exists. -export CRDB_DROP_DATABASE_IF_EXISTS="YES" +export CRDB_DROP_DATABASE_IF_EXISTS="" # Disable flag for re-deploying CockroachDB from scratch. export CRDB_REDEPLOY="" @@ -204,7 +204,7 @@ export GRAF_EXT_PORT_HTTP="3000" # ----- Apache Kafka ----------------------------------------------------------- # Set the namespace where Apache Kafka will be deployed. -export KFK_NAMESPACE="kafka" +export KFK_NAMESPACE="kafka-e2e" # Set the port Apache Kafka server will be exposed to. export KFK_SERVER_PORT="9092" diff --git a/src/tests/ecoc24/deploy_specs_ip.sh b/src/tests/ofc25/deploy_specs_ip.sh similarity index 98% rename from src/tests/ecoc24/deploy_specs_ip.sh rename to src/tests/ofc25/deploy_specs_ip.sh index 1e105557b..247b9353c 100755 --- a/src/tests/ecoc24/deploy_specs_ip.sh +++ b/src/tests/ofc25/deploy_specs_ip.sh @@ -97,7 +97,7 @@ export TFS_IMAGE_TAG="dev" export TFS_K8S_NAMESPACE="tfs-ip" # Set additional manifest files to be applied after the deployment -export TFS_EXTRA_MANIFESTS="src/tests/ecoc24/tfs-ingress-ip.yaml" +export TFS_EXTRA_MANIFESTS="src/tests/ofc25/tfs-ingress-ip.yaml" # Uncomment to monitor performance of components #export TFS_EXTRA_MANIFESTS="${TFS_EXTRA_MANIFESTS} manifests/servicemonitors.yaml" @@ -134,7 +134,7 @@ export CRDB_PASSWORD="tfs123" export CRDB_DEPLOY_MODE="single" # Disable flag for dropping database, if it exists. -export CRDB_DROP_DATABASE_IF_EXISTS="YES" +export CRDB_DROP_DATABASE_IF_EXISTS="" # Disable flag for re-deploying CockroachDB from scratch. export CRDB_REDEPLOY="" @@ -204,7 +204,7 @@ export GRAF_EXT_PORT_HTTP="3000" # ----- Apache Kafka ----------------------------------------------------------- # Set the namespace where Apache Kafka will be deployed. -export KFK_NAMESPACE="kafka" +export KFK_NAMESPACE="kafka-ip" # Set the port Apache Kafka server will be exposed to. export KFK_SERVER_PORT="9092" diff --git a/src/tests/ecoc24/deploy_specs_opt.sh b/src/tests/ofc25/deploy_specs_opt.sh similarity index 98% rename from src/tests/ecoc24/deploy_specs_opt.sh rename to src/tests/ofc25/deploy_specs_opt.sh index 5c2467831..3535f50fe 100755 --- a/src/tests/ecoc24/deploy_specs_opt.sh +++ b/src/tests/ofc25/deploy_specs_opt.sh @@ -97,7 +97,7 @@ export TFS_IMAGE_TAG="dev" export TFS_K8S_NAMESPACE="tfs-opt" # Set additional manifest files to be applied after the deployment -export TFS_EXTRA_MANIFESTS="src/tests/ecoc24/tfs-ingress-opt.yaml" +export TFS_EXTRA_MANIFESTS="src/tests/ofc25/tfs-ingress-opt.yaml" # Uncomment to monitor performance of components #export TFS_EXTRA_MANIFESTS="${TFS_EXTRA_MANIFESTS} manifests/servicemonitors.yaml" @@ -204,7 +204,7 @@ export GRAF_EXT_PORT_HTTP="3000" # ----- Apache Kafka ----------------------------------------------------------- # Set the namespace where Apache Kafka will be deployed. -export KFK_NAMESPACE="kafka" +export KFK_NAMESPACE="kafka-opt" # Set the port Apache Kafka server will be exposed to. export KFK_SERVER_PORT="9092" diff --git a/src/tests/ecoc24/descriptors/descriptor_e2e.json b/src/tests/ofc25/descriptors/descriptor_e2e.json similarity index 100% rename from src/tests/ecoc24/descriptors/descriptor_e2e.json rename to src/tests/ofc25/descriptors/descriptor_e2e.json diff --git a/src/tests/ecoc24/descriptors/descriptor_ip.json b/src/tests/ofc25/descriptors/descriptor_ip.json similarity index 100% rename from src/tests/ecoc24/descriptors/descriptor_ip.json rename to src/tests/ofc25/descriptors/descriptor_ip.json diff --git a/src/tests/ecoc24/descriptors/descriptor_opt.json b/src/tests/ofc25/descriptors/descriptor_opt.json similarity index 100% rename from src/tests/ecoc24/descriptors/descriptor_opt.json rename to src/tests/ofc25/descriptors/descriptor_opt.json diff --git a/src/tests/ofc25/dump_logs.sh b/src/tests/ofc25/dump_logs.sh new file mode 100755 index 000000000..02b1f524c --- /dev/null +++ b/src/tests/ofc25/dump_logs.sh @@ -0,0 +1,51 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + + +rm -rf tmp/exec + +echo "Collecting logs for IP..." +mkdir -p tmp/exec/ip +kubectl --namespace tfs-ip logs deployment/contextservice -c server > tmp/exec/ip/context.log +kubectl --namespace tfs-ip logs deployment/deviceservice -c server > tmp/exec/ip/device.log +kubectl --namespace tfs-ip logs deployment/pathcompservice -c frontend > tmp/exec/ip/pathcomp-frontend.log +kubectl --namespace tfs-ip logs deployment/pathcompservice -c backend > tmp/exec/ip/pathcomp-backend.log +kubectl --namespace tfs-ip logs deployment/serviceservice -c server > tmp/exec/ip/service.log +kubectl --namespace tfs-ip logs deployment/nbiservice -c server > tmp/exec/ip/nbi.log +kubectl --namespace tfs-ip logs deployment/vnt-managerservice -c server > tmp/exec/ip/vntm.log +printf "\n" + +echo "Collecting logs for IP..." +mkdir -p tmp/exec/opt +kubectl --namespace tfs-opt logs deployment/contextservice -c server > tmp/exec/opt/context.log +kubectl --namespace tfs-opt logs deployment/deviceservice -c server > tmp/exec/opt/device.log +kubectl --namespace tfs-opt logs deployment/pathcompservice -c frontend > tmp/exec/opt/pathcomp-frontend.log +kubectl --namespace tfs-opt logs deployment/pathcompservice -c backend > tmp/exec/opt/pathcomp-backend.log +kubectl --namespace tfs-opt logs deployment/serviceservice -c server > tmp/exec/opt/service.log +kubectl --namespace tfs-opt logs deployment/nbiservice -c server > tmp/exec/opt/nbi.log +printf "\n" + +echo "Collecting logs for E2E..." +mkdir -p tmp/exec/e2e +kubectl --namespace tfs-e2e logs deployment/contextservice -c server > tmp/exec/e2e/context.log +kubectl --namespace tfs-e2e logs deployment/deviceservice -c server > tmp/exec/e2e/device.log +kubectl --namespace tfs-e2e logs deployment/pathcompservice -c frontend > tmp/exec/e2e/pathcomp-frontend.log +kubectl --namespace tfs-e2e logs deployment/pathcompservice -c backend > tmp/exec/e2e/pathcomp-backend.log +kubectl --namespace tfs-e2e logs deployment/serviceservice -c server > tmp/exec/e2e/service.log +kubectl --namespace tfs-e2e logs deployment/nbiservice -c server > tmp/exec/e2e/nbi.log +kubectl --namespace tfs-e2e logs deployment/e2e-orchestratorservice -c server > tmp/exec/e2e/e2eorch.log +printf "\n" + +echo "Done!" diff --git a/src/tests/ecoc24/nginx-ingress-controller-e2e.yaml b/src/tests/ofc25/nginx-ingress-controller-e2e.yaml similarity index 100% rename from src/tests/ecoc24/nginx-ingress-controller-e2e.yaml rename to src/tests/ofc25/nginx-ingress-controller-e2e.yaml diff --git a/src/tests/ecoc24/nginx-ingress-controller-ip.yaml b/src/tests/ofc25/nginx-ingress-controller-ip.yaml similarity index 100% rename from src/tests/ecoc24/nginx-ingress-controller-ip.yaml rename to src/tests/ofc25/nginx-ingress-controller-ip.yaml diff --git a/src/tests/ecoc24/nginx-ingress-controller-opt.yaml b/src/tests/ofc25/nginx-ingress-controller-opt.yaml similarity index 100% rename from src/tests/ecoc24/nginx-ingress-controller-opt.yaml rename to src/tests/ofc25/nginx-ingress-controller-opt.yaml diff --git a/src/tests/ecoc24/show_deploy.sh b/src/tests/ofc25/show_deploy.sh similarity index 100% rename from src/tests/ecoc24/show_deploy.sh rename to src/tests/ofc25/show_deploy.sh diff --git a/src/tests/ecoc24/subscription_ws_e2e.sh b/src/tests/ofc25/subscription_ws_e2e.sh similarity index 100% rename from src/tests/ecoc24/subscription_ws_e2e.sh rename to src/tests/ofc25/subscription_ws_e2e.sh diff --git a/src/tests/ecoc24/subscription_ws_ip.sh b/src/tests/ofc25/subscription_ws_ip.sh similarity index 100% rename from src/tests/ecoc24/subscription_ws_ip.sh rename to src/tests/ofc25/subscription_ws_ip.sh diff --git a/src/tests/ecoc24/tests/__init__.py b/src/tests/ofc25/tests/__init__.py similarity index 100% rename from src/tests/ecoc24/tests/__init__.py rename to src/tests/ofc25/tests/__init__.py diff --git a/src/tests/ecoc24/tests/create_service.py b/src/tests/ofc25/tests/create_service.py similarity index 100% rename from src/tests/ecoc24/tests/create_service.py rename to src/tests/ofc25/tests/create_service.py diff --git a/src/tests/ecoc24/tests/delete_service.py b/src/tests/ofc25/tests/delete_service.py similarity index 100% rename from src/tests/ecoc24/tests/delete_service.py rename to src/tests/ofc25/tests/delete_service.py diff --git a/src/tests/ecoc24/tests/test_functional_bootstrap_e2e.py b/src/tests/ofc25/tests/test_functional_bootstrap_e2e.py similarity index 100% rename from src/tests/ecoc24/tests/test_functional_bootstrap_e2e.py rename to src/tests/ofc25/tests/test_functional_bootstrap_e2e.py diff --git a/src/tests/ecoc24/tests/test_functional_bootstrap_ip.py b/src/tests/ofc25/tests/test_functional_bootstrap_ip.py similarity index 100% rename from src/tests/ecoc24/tests/test_functional_bootstrap_ip.py rename to src/tests/ofc25/tests/test_functional_bootstrap_ip.py diff --git a/src/tests/ecoc24/tests/test_functional_bootstrap_opt.py b/src/tests/ofc25/tests/test_functional_bootstrap_opt.py similarity index 100% rename from src/tests/ecoc24/tests/test_functional_bootstrap_opt.py rename to src/tests/ofc25/tests/test_functional_bootstrap_opt.py diff --git a/src/tests/ecoc24/tests/test_functional_cleanup.py b/src/tests/ofc25/tests/test_functional_cleanup.py similarity index 100% rename from src/tests/ecoc24/tests/test_functional_cleanup.py rename to src/tests/ofc25/tests/test_functional_cleanup.py diff --git a/src/tests/ecoc24/tests/test_functional_create_service.py b/src/tests/ofc25/tests/test_functional_create_service.py similarity index 100% rename from src/tests/ecoc24/tests/test_functional_create_service.py rename to src/tests/ofc25/tests/test_functional_create_service.py diff --git a/src/tests/ecoc24/tests/test_functional_delete_service.py b/src/tests/ofc25/tests/test_functional_delete_service.py similarity index 100% rename from src/tests/ecoc24/tests/test_functional_delete_service.py rename to src/tests/ofc25/tests/test_functional_delete_service.py diff --git a/src/tests/ecoc24/tfs-ingress-e2e.yaml b/src/tests/ofc25/tfs-ingress-e2e.yaml similarity index 100% rename from src/tests/ecoc24/tfs-ingress-e2e.yaml rename to src/tests/ofc25/tfs-ingress-e2e.yaml diff --git a/src/tests/ecoc24/tfs-ingress-ip.yaml b/src/tests/ofc25/tfs-ingress-ip.yaml similarity index 100% rename from src/tests/ecoc24/tfs-ingress-ip.yaml rename to src/tests/ofc25/tfs-ingress-ip.yaml diff --git a/src/tests/ecoc24/tfs-ingress-opt.yaml b/src/tests/ofc25/tfs-ingress-opt.yaml similarity index 100% rename from src/tests/ecoc24/tfs-ingress-opt.yaml rename to src/tests/ofc25/tfs-ingress-opt.yaml diff --git a/src/tests/ofc25/undeploy.sh b/src/tests/ofc25/undeploy.sh new file mode 100755 index 000000000..e86fa14b2 --- /dev/null +++ b/src/tests/ofc25/undeploy.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + +# ===== Check Microk8s is ready ============================== +microk8s status --wait-ready +kubectl get pods --all-namespaces + +# ===== Cleanup old deployments ============================== +helm3 uninstall --namespace nats-e2e nats-e2e 2>/dev/null || true +helm3 uninstall --namespace nats-ip nats-ip 2>/dev/null || true +helm3 uninstall --namespace nats-opt nats-opt 2>/dev/null || true +helm3 uninstall --namespace nats nats 2>/dev/null || true +kubectl delete namespaces tfs tfs-ip tfs-opt tfs-e2e --ignore-not-found +kubectl delete namespaces qdb qdb-e2e qdb-opt qdb-ip --ignore-not-found +kubectl delete namespaces kafka kafka-ip kafka-opt kafka-e2e --ignore-not-found +kubectl delete namespaces nats nats-ip nats-opt nats-e2e --ignore-not-found + +kubectl delete -f src/tests/ofc25/nginx-ingress-controller-opt.yaml --ignore-not-found +kubectl delete -f src/tests/ofc25/nginx-ingress-controller-ip.yaml --ignore-not-found +kubectl delete -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml --ignore-not-found + +# ===== Check Microk8s is ready ============================== +microk8s status --wait-ready +kubectl get pods --all-namespaces + +echo "Done!" -- GitLab From b7e6b6984483409b74ddd90372bf2a78532ba611 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Mar 2025 13:19:40 +0000 Subject: [PATCH 090/213] Deployment: - Corrected deployment of kafka so that it can be deployed multiple times in different namespaces --- deploy/kafka.sh | 9 +++++---- manifests/kafka/01-zookeeper.yaml | 10 ++++------ manifests/kafka/02-kafka.yaml | 7 +++---- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/deploy/kafka.sh b/deploy/kafka.sh index e42606903..4f522df1a 100755 --- a/deploy/kafka.sh +++ b/deploy/kafka.sh @@ -42,7 +42,7 @@ export KFK_REDEPLOY=${KFK_REDEPLOY:-""} mkdir -p ${TMP_MANIFESTS_FOLDER} function kafka_deploy() { - # copy zookeeper and kafka manifest files to temporary manifest location + # copy zookeeper and kafka manifest files to temporary manifest location cp "${KFK_MANIFESTS_PATH}/${KFK_ZOOKEEPER_MANIFEST}" "${TMP_MANIFESTS_FOLDER}/${KFK_ZOOKEEPER_MANIFEST}" cp "${KFK_MANIFESTS_PATH}/${KFK_MANIFEST}" "${TMP_MANIFESTS_FOLDER}/${KFK_MANIFEST}" @@ -57,11 +57,12 @@ function kafka_deploy() { # Kafka zookeeper service should be deployed before the kafka service kubectl --namespace ${KFK_NAMESPACE} apply -f "${TMP_MANIFESTS_FOLDER}/${KFK_ZOOKEEPER_MANIFEST}" - KFK_ZOOKEEPER_SERVICE="zookeeper-service" # this command may be replaced with command to extract service name automatically - KFK_ZOOKEEPER_IP=$(kubectl --namespace ${KFK_NAMESPACE} get service ${KFK_ZOOKEEPER_SERVICE} -o 'jsonpath={.spec.clusterIP}') + #KFK_ZOOKEEPER_SERVICE="zookeeper-service" # this command may be replaced with command to extract service name automatically + #KFK_ZOOKEEPER_IP=$(kubectl --namespace ${KFK_NAMESPACE} get service ${KFK_ZOOKEEPER_SERVICE} -o 'jsonpath={.spec.clusterIP}') # Kafka service should be deployed after the zookeeper service - sed -i "s/<ZOOKEEPER_INTERNAL_IP>/${KFK_ZOOKEEPER_IP}/" "${TMP_MANIFESTS_FOLDER}/$KFK_MANIFEST" + #sed -i "s/<ZOOKEEPER_INTERNAL_IP>/${KFK_ZOOKEEPER_IP}/" "${TMP_MANIFESTS_FOLDER}/$KFK_MANIFEST" + sed -i "s/<KAFKA_NAMESPACE>/${KFK_NAMESPACE}/" "${TMP_MANIFESTS_FOLDER}/$KFK_MANIFEST" # echo ">>> Deploying Apache Kafka Broker" kubectl --namespace ${KFK_NAMESPACE} apply -f "${TMP_MANIFESTS_FOLDER}/$KFK_MANIFEST" diff --git a/manifests/kafka/01-zookeeper.yaml b/manifests/kafka/01-zookeeper.yaml index c0e87ae0c..f2cfb4f38 100644 --- a/manifests/kafka/01-zookeeper.yaml +++ b/manifests/kafka/01-zookeeper.yaml @@ -19,14 +19,13 @@ metadata: labels: app: zookeeper-service name: zookeeper-service - namespace: kafka spec: - type: NodePort + type: ClusterIP ports: - name: zookeeper-port port: 2181 - nodePort: 30181 - targetPort: 2181 + #nodePort: 30181 + #targetPort: 2181 selector: app: zookeeper --- @@ -36,7 +35,6 @@ metadata: labels: app: zookeeper name: zookeeper - namespace: kafka spec: replicas: 1 selector: @@ -52,4 +50,4 @@ spec: imagePullPolicy: IfNotPresent name: zookeeper ports: - - containerPort: 2181 \ No newline at end of file + - containerPort: 2181 diff --git a/manifests/kafka/02-kafka.yaml b/manifests/kafka/02-kafka.yaml index 8400f5944..066f0151a 100644 --- a/manifests/kafka/02-kafka.yaml +++ b/manifests/kafka/02-kafka.yaml @@ -19,7 +19,6 @@ metadata: labels: app: kafka-broker name: kafka-service - namespace: kafka spec: ports: - port: 9092 @@ -32,7 +31,6 @@ metadata: labels: app: kafka-broker name: kafka-broker - namespace: kafka spec: replicas: 1 selector: @@ -49,11 +47,12 @@ spec: - name: KAFKA_BROKER_ID value: "1" - name: KAFKA_ZOOKEEPER_CONNECT - value: <ZOOKEEPER_INTERNAL_IP>:2181 + #value: <ZOOKEEPER_INTERNAL_IP>:2181 + value: zookeeper-service.<KAFKA_NAMESPACE>.svc.cluster.local:2181 - name: KAFKA_LISTENERS value: PLAINTEXT://:9092 - name: KAFKA_ADVERTISED_LISTENERS - value: PLAINTEXT://kafka-service.kafka.svc.cluster.local:9092 + value: PLAINTEXT://kafka-service.<KAFKA_NAMESPACE>.svc.cluster.local:9092 image: wurstmeister/kafka imagePullPolicy: IfNotPresent name: kafka-broker -- GitLab From 5f7a012b5e1b522514083e4281bdf814fd16444e Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Mar 2025 20:00:34 +0000 Subject: [PATCH 091/213] Common - Kafka Tools: - Corrected logic to create kafka topics --- src/common/tools/kafka/Variables.py | 121 ++++++++++++++++++---------- 1 file changed, 77 insertions(+), 44 deletions(-) diff --git a/src/common/tools/kafka/Variables.py b/src/common/tools/kafka/Variables.py index 5c7501b6c..159d7dac1 100644 --- a/src/common/tools/kafka/Variables.py +++ b/src/common/tools/kafka/Variables.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging +import logging, time from enum import Enum from confluent_kafka.admin import AdminClient, NewTopic from common.Settings import get_setting @@ -21,6 +21,12 @@ from common.Settings import get_setting LOGGER = logging.getLogger(__name__) KFK_SERVER_ADDRESS_TEMPLATE = 'kafka-service.{:s}.svc.cluster.local:{:s}' +KAFKA_TOPIC_NUM_PARTITIONS = 1 +KAFKA_TOPIC_REPLICATION_FACTOR = 1 +KAFKA_TOPIC_LIST_TIMEOUT = 5 +TOPIC_CREATE_WAIT_ITERATIONS = 10 +TOPIC_CREATE_WAIT_TIME = 1 + class KafkaConfig(Enum): @staticmethod @@ -35,59 +41,86 @@ class KafkaConfig(Enum): @staticmethod def get_admin_client(): SERVER_ADDRESS = KafkaConfig.get_kafka_address() - ADMIN_CLIENT = AdminClient({'bootstrap.servers': SERVER_ADDRESS }) + ADMIN_CLIENT = AdminClient({'bootstrap.servers': SERVER_ADDRESS}) return ADMIN_CLIENT class KafkaTopic(Enum): # TODO: Later to be populated from ENV variable. - TELEMETRY_REQUEST = 'topic_telemetry_request' - TELEMETRY_RESPONSE = 'topic_telemetry_response' - RAW = 'topic_raw' - LABELED = 'topic_labeled' - VALUE = 'topic_value' - ALARMS = 'topic_alarms' - ANALYTICS_REQUEST = 'topic_analytics_request' - ANALYTICS_RESPONSE = 'topic_analytics_response' + TELEMETRY_REQUEST = 'topic_telemetry_request' + TELEMETRY_RESPONSE = 'topic_telemetry_response' + RAW = 'topic_raw' + LABELED = 'topic_labeled' + VALUE = 'topic_value' + ALARMS = 'topic_alarms' + ANALYTICS_REQUEST = 'topic_analytics_request' + ANALYTICS_RESPONSE = 'topic_analytics_response' + VNTMANAGER_REQUEST = 'topic_vntmanager_request' + VNTMANAGER_RESPONSE = 'topic_vntmanager_response' @staticmethod def create_all_topics() -> bool: - """ + ''' Method to create Kafka topics defined as class members - """ - all_topics = [member.value for member in KafkaTopic] - LOGGER.debug("Kafka server address is: {:} ".format(KafkaConfig.get_kafka_address())) - if( KafkaTopic.create_new_topic_if_not_exists( all_topics )): - LOGGER.debug("All topics are created sucsessfully or Already Exists") + ''' + LOGGER.debug('Kafka server address: {:s} '.format(str(KafkaConfig.get_kafka_address()))) + kafka_admin_client = KafkaConfig.get_admin_client() + + topic_metadata = kafka_admin_client.list_topics(timeout=KAFKA_TOPIC_LIST_TIMEOUT) + existing_topics = set(topic_metadata.topics.keys()) + LOGGER.debug('Existing Kafka topics: {:s}'.format(str(existing_topics))) + + missing_topics = [ + NewTopic(topic.value, KAFKA_TOPIC_NUM_PARTITIONS, KAFKA_TOPIC_REPLICATION_FACTOR) + for topic in KafkaTopic + if topic.value not in existing_topics + ] + LOGGER.debug('Missing Kafka topics: {:s}'.format(str(missing_topics))) + + if len(missing_topics) == 0: + LOGGER.debug('All topics already existed.') return True - else: - LOGGER.debug("Error creating all topics") - return False - - @staticmethod - def create_new_topic_if_not_exists(new_topics: list) -> bool: - """ - Method to create Kafka topic if it does not exist. - Args: - list of topic: containing the topic name(s) to be created on Kafka - """ - LOGGER.debug("Topics names to be verified and created: {:}".format(new_topics)) - for topic in new_topics: + + create_topic_future_map = kafka_admin_client.create_topics(missing_topics) + LOGGER.debug('create_topic_future_map: {:s}'.format(str(create_topic_future_map))) + failed_topic_creations = set() + for topic, future in create_topic_future_map.items(): try: - topic_metadata = KafkaConfig.get_admin_client().list_topics(timeout=5) - # LOGGER.debug("Existing topic list: {:}".format(topic_metadata.topics)) - if topic not in topic_metadata.topics: - # If the topic does not exist, create a new topic - print("Topic {:} does not exist. Creating...".format(topic)) - LOGGER.debug("Topic {:} does not exist. Creating...".format(topic)) - new_topic = NewTopic(topic, num_partitions=1, replication_factor=1) - KafkaConfig.get_admin_client().create_topics([new_topic]) - else: - print("Topic name already exists: {:}".format(topic)) - LOGGER.debug("Topic name already exists: {:}".format(topic)) - except Exception as e: - LOGGER.debug("Failed to create topic: {:}".format(e)) - return False - return True + LOGGER.info('Waiting for Topic({:s})...'.format(str(topic))) + future.result() # Blocks until topic is created or raises an exception + LOGGER.info('Topic({:s}) successfully created.'.format(str(topic))) + except: # pylint: disable=bare-except + LOGGER.exception('Failed to create Topic({:s})'.format(str(topic))) + failed_topic_creations.add(topic) + + if len(failed_topic_creations) > 0: return False + + LOGGER.debug('All topics created.') + + # Wait until topics appear in metadata + desired_topics = {topic.value for topic in KafkaTopic} + missing_topics = set() + for _ in range(TOPIC_CREATE_WAIT_ITERATIONS): + topic_metadata = kafka_admin_client.list_topics(timeout=KAFKA_TOPIC_LIST_TIMEOUT) + existing_topics = set(topic_metadata.topics.keys()) + missing_topics = desired_topics.difference(existing_topics) + if len(missing_topics) == 0: break + MSG = 'Waiting for Topics({:s}) to appear in metadata...' + LOGGER.debug(MSG.format(str(missing_topics))) + time.sleep(TOPIC_CREATE_WAIT_TIME) + + if len(missing_topics) > 0: + MSG = 'Something went wrong... Topics({:s}) does not appear in metadata' + LOGGER.error(MSG.format(str(missing_topics))) + return False + else: + LOGGER.debug('All topics created and available.') + return True # TODO: create all topics after the deployments (Telemetry and Analytics) + +if __name__ == '__main__': + import os + if 'KFK_SERVER_ADDRESS' not in os.environ: + os.environ['KFK_SERVER_ADDRESS'] = 'kafka-service.kafka.svc.cluster.local:9092' + KafkaTopic.create_all_topics() -- GitLab From e8477b023f7f272a088bd96864d8a92c804a992f Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Mar 2025 20:02:12 +0000 Subject: [PATCH 092/213] NBI component: - Added Kafka secret in manifest file and updated readiness/liveness probes - Corrected logs in health_probes connector - Updated requirements.in / Dockerfile / README.md - Added creation of required Kafka topics - Improved overall logging framework - Added VNT Manager Recommendation endpoint - Added Topology Updates endpoint --- manifests/nbiservice.yaml | 11 ++- src/nbi/Dockerfile | 3 +- src/nbi/README.md | 9 ++ src/nbi/requirements.in | 5 +- src/nbi/service/app.py | 43 ++++++--- .../service/health_probes/HeartbeatThread.py | 12 +-- src/nbi/service/health_probes/Namespaces.py | 4 +- src/nbi/service/topology_updates/Constants.py | 17 ++++ .../service/topology_updates/Namespaces.py | 63 +++++++++++++ .../topology_updates/TopoUpdatesThread.py | 92 +++++++++++++++++++ src/nbi/service/topology_updates/__init__.py | 20 ++++ src/nbi/service/vntm_recommend/Constants.py | 17 ++++ src/nbi/service/vntm_recommend/Namespaces.py | 40 ++++++++ .../service/vntm_recommend/VntRecommThread.py | 86 +++++++++++++++++ src/nbi/service/vntm_recommend/__init__.py | 20 ++++ 15 files changed, 411 insertions(+), 31 deletions(-) create mode 100644 src/nbi/service/topology_updates/Constants.py create mode 100644 src/nbi/service/topology_updates/Namespaces.py create mode 100644 src/nbi/service/topology_updates/TopoUpdatesThread.py create mode 100644 src/nbi/service/topology_updates/__init__.py create mode 100644 src/nbi/service/vntm_recommend/Constants.py create mode 100644 src/nbi/service/vntm_recommend/Namespaces.py create mode 100644 src/nbi/service/vntm_recommend/VntRecommThread.py create mode 100644 src/nbi/service/vntm_recommend/__init__.py diff --git a/manifests/nbiservice.yaml b/manifests/nbiservice.yaml index d2d65c719..3e6d1de84 100644 --- a/manifests/nbiservice.yaml +++ b/manifests/nbiservice.yaml @@ -44,20 +44,23 @@ spec: value: "production" # change to "development" if developing - name: IETF_NETWORK_RENDERER value: "LIBYANG" + envFrom: + - secretRef: + name: kfk-kpi-data readinessProbe: httpGet: path: /healthz port: 8080 - initialDelaySeconds: 5 + initialDelaySeconds: 30 # NBI's gunicorn takes 30~40 seconds to bootstrap periodSeconds: 10 - failureThreshold: 3 + failureThreshold: 6 livenessProbe: httpGet: path: /healthz port: 8080 - initialDelaySeconds: 5 + initialDelaySeconds: 30 # NBI's gunicorn takes 30~40 seconds to bootstrap periodSeconds: 10 - failureThreshold: 3 + failureThreshold: 6 resources: requests: cpu: 150m diff --git a/src/nbi/Dockerfile b/src/nbi/Dockerfile index c56dff12b..6bca1c81a 100644 --- a/src/nbi/Dockerfile +++ b/src/nbi/Dockerfile @@ -89,5 +89,4 @@ RUN mkdir -p /var/teraflow/tests/tools COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ # Start the service -ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "eventlet", "-b", "0.0.0.0:8080", "nbi.service.app:app"] -#ENTRYPOINT ["gunicorn", "-w", "4", "--worker-class", "geventwebsocket.gunicorn.workers.GeventWebSocketWorker", "-b", "0.0.0.0:8080", "nbi.service.app:app"] +ENTRYPOINT ["gunicorn", "--workers", "4", "--worker-class", "eventlet", "--bind", "0.0.0.0:8080", "nbi.service.app:app"] diff --git a/src/nbi/README.md b/src/nbi/README.md index f997ce21c..5dc5be29b 100644 --- a/src/nbi/README.md +++ b/src/nbi/README.md @@ -2,6 +2,15 @@ The NBI component uses libyang to validate and process messages. Follow instructions below to install it. + +## IMPORTANT +**TL;DR**: Use kafka-python for consuming from kafka in the NBI component. + +Why: + +`confluent-kafka` is written in C, thus, it bypasses eventlet monkey_patches that convert normal threads into green_threads. +That implies methods such as consumer.poll() become blocking in eventlet scenario used by gunicorn web server. + ## Install libyang - Ref: https://github.com/CESNET/libyang - Ref: https://github.com/CESNET/libyang-python/ diff --git a/src/nbi/requirements.in b/src/nbi/requirements.in index 401a6de30..e21aee4f6 100644 --- a/src/nbi/requirements.in +++ b/src/nbi/requirements.in @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +confluent-kafka==2.3.* # only for creating topics and compatibility deepdiff==6.7.* deepmerge==1.1.* eventlet==0.39.0 @@ -19,16 +20,18 @@ Flask==2.1.3 Flask-HTTPAuth==4.5.0 Flask-RESTful==0.3.9 flask-socketio==5.5.1 -jsonschema==4.4.0 #gevent==24.11.1 #gevent-websocket==0.10.1 #greenlet==3.1.1 gunicorn==23.0.0 +jsonschema==4.4.0 +kafka-python==2.0.6 # for publishing and consuming messages in an eventlet-compatible way libyang==2.8.4 netaddr==0.9.0 pyang==2.6.0 git+https://github.com/robshakir/pyangbind.git pydantic==2.6.3 +python-socketio==5.12.1 requests==2.27.1 werkzeug==2.3.7 #websockets==12.0 diff --git a/src/nbi/service/app.py b/src/nbi/service/app.py index a413c6db8..a0206cdd6 100644 --- a/src/nbi/service/app.py +++ b/src/nbi/service/app.py @@ -20,6 +20,7 @@ eventlet.monkey_patch() #pylint: disable=wrong-import-position import logging +from common.tools.kafka.Variables import KafkaTopic from common.Constants import ServiceNameEnum from common.Settings import ( ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, @@ -39,14 +40,21 @@ from .ietf_network_slice import register_ietf_nss from .qkd_app import register_qkd_app from .restconf_root import register_restconf_root from .tfs_api import register_tfs_api +#from .topology_updates import register_topology_updates +from .vntm_recommend import register_vntm_recommend from .well_known_meta import register_well_known LOG_LEVEL = get_log_level() -logging.basicConfig(level=LOG_LEVEL) +logging.basicConfig( + level=LOG_LEVEL, + format="[Worker-%(process)d][%(asctime)s] %(levelname)s:%(name)s:%(message)s", +) logging.getLogger('socketio.server').setLevel(logging.WARNING) LOGGER = logging.getLogger(__name__) +LOGGER.info('Starting...') + wait_for_environment_variables([ get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), @@ -58,23 +66,32 @@ wait_for_environment_variables([ BASE_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' +LOGGER.info('Creating missing Kafka topics...') +KafkaTopic.create_all_topics() +LOGGER.info('Created required Kafka topics') + nbi_app = NbiApplication(base_url=BASE_URL) -register_health_probes(nbi_app) -register_restconf_root(nbi_app) -register_well_known (nbi_app) -register_tfs_api (nbi_app) -register_etsi_bwm_api (nbi_app) -register_ietf_hardware(nbi_app) -register_ietf_l2vpn (nbi_app) -register_ietf_l3vpn (nbi_app) -register_ietf_network (nbi_app) -register_ietf_nss (nbi_app) -register_ietf_acl (nbi_app) -register_qkd_app (nbi_app) +register_health_probes (nbi_app) +register_restconf_root (nbi_app) +register_well_known (nbi_app) +register_tfs_api (nbi_app) +register_etsi_bwm_api (nbi_app) +register_ietf_hardware (nbi_app) +register_ietf_l2vpn (nbi_app) +register_ietf_l3vpn (nbi_app) +register_ietf_network (nbi_app) +register_ietf_nss (nbi_app) +register_ietf_acl (nbi_app) +register_qkd_app (nbi_app) +#register_topology_updates(nbi_app) # does not work; check if eventlet-grpc side effects +register_vntm_recommend (nbi_app) +LOGGER.info('All connectors registered') nbi_app.dump_configuration() app = nbi_app.get_flask_app() +LOGGER.info('Initialization completed!') + if __name__ == '__main__': # Only used to run it locally during development stage; # otherwise, app is directly launched by gunicorn. diff --git a/src/nbi/service/health_probes/HeartbeatThread.py b/src/nbi/service/health_probes/HeartbeatThread.py index c49f4ab49..67da0b55e 100644 --- a/src/nbi/service/health_probes/HeartbeatThread.py +++ b/src/nbi/service/health_probes/HeartbeatThread.py @@ -31,20 +31,14 @@ class HeartbeatThread(threading.Thread): self._terminate.set() def run(self): - LOGGER.debug('[HeartbeatThread::run] begin') try: + LOGGER.info('[run] Running...') while not self._terminate.is_set(): - LOGGER.debug('[HeartbeatThread::run] Running...') time.sleep(HEARTHBEAT_INTERVAL) - LOGGER.debug('[HeartbeatThread::run] Interval elapsed') - server : socketio.Server = self._namespace.server if server is None: continue - - LOGGER.debug('[HeartbeatThread::run] emitting...') data = {'uptime_seconds': time.time() - START_TIME} server.emit('uptime', data, namespace=SIO_NAMESPACE, to=SIO_ROOM) - LOGGER.debug('[HeartbeatThread::run] emitted') except: # pylint: disable=bare-except - LOGGER.exception('[HeartbeatThread::run] thread failed') - LOGGER.debug('[HeartbeatThread::run] end') + LOGGER.exception('[run] Unexpected Thread Exception') + LOGGER.info('[run] Terminated') diff --git a/src/nbi/service/health_probes/Namespaces.py b/src/nbi/service/health_probes/Namespaces.py index 9f7517d9b..8a3f9323c 100644 --- a/src/nbi/service/health_probes/Namespaces.py +++ b/src/nbi/service/health_probes/Namespaces.py @@ -30,11 +30,11 @@ class HeartbeatServerNamespace(Namespace): self._thread.stop() def on_connect(self, auth): - MSG = '[HeartbeatServerNamespace::on_connect] Client connect: sid={:s}, auth={:s}' + MSG = '[on_connect] Client connect: sid={:s}, auth={:s}' LOGGER.info(MSG.format(str(request.sid), str(auth))) join_room(SIO_ROOM, namespace=SIO_NAMESPACE) def on_disconnect(self, reason): - MSG = '[HeartbeatServerNamespace::on_disconnect] Client disconnect: sid={:s}, reason={:s}' + MSG = '[on_disconnect] Client disconnect: sid={:s}, reason={:s}' LOGGER.info(MSG.format(str(request.sid), str(reason))) leave_room(SIO_ROOM, namespace=SIO_NAMESPACE) diff --git a/src/nbi/service/topology_updates/Constants.py b/src/nbi/service/topology_updates/Constants.py new file mode 100644 index 000000000..3e4dada3a --- /dev/null +++ b/src/nbi/service/topology_updates/Constants.py @@ -0,0 +1,17 @@ +# Copyright 2022-2024 ETSI 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. + + +SIO_NAMESPACE = '/topo-updates' +SIO_ROOM = 'topo-updates' diff --git a/src/nbi/service/topology_updates/Namespaces.py b/src/nbi/service/topology_updates/Namespaces.py new file mode 100644 index 000000000..963a1f26c --- /dev/null +++ b/src/nbi/service/topology_updates/Namespaces.py @@ -0,0 +1,63 @@ +# Copyright 2022-2024 ETSI 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 logging +from flask import request +from flask_socketio import Namespace, join_room, leave_room +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.proto.context_pb2 import TopologyId +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.Topology import json_topology_id +from context.client.ContextClient import ContextClient +from .Constants import SIO_NAMESPACE, SIO_ROOM +from .TopoUpdatesThread import TopoUpdatesThread + +LOGGER = logging.getLogger(__name__) + +class TopoUpdatesServerNamespace(Namespace): + def __init__(self): + super().__init__(namespace=SIO_NAMESPACE) + self._thread = TopoUpdatesThread(self) + self._thread.start() + + def stop_thread(self) -> None: + self._thread.stop() + + def on_connect(self, auth): + MSG = '[on_connect] Client connect: sid={:s}, auth={:s}' + LOGGER.info(MSG.format(str(request.sid), str(auth))) + join_room(SIO_ROOM, namespace=SIO_NAMESPACE) + + LOGGER.debug('[on_connect] emitting topology snapshot...') + + context_id = json_context_id(DEFAULT_CONTEXT_NAME) + topology_id = json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id) + + try: + context_client = ContextClient() + topology_details = context_client.GetTopologyDetails( + TopologyId(**topology_id) + ) + except: # pylint: disable=bare-except + MSG = 'Unable to retrieve topology snapshot: {:s}' + LOGGER.exception(MSG.format(str(topology_id))) + else: + topology_snapshot = grpc_message_to_json_string(topology_details) + self.emit('topology-snapshot', topology_snapshot) + + def on_disconnect(self, reason): + MSG = '[on_disconnect] Client disconnect: sid={:s}, reason={:s}' + LOGGER.info(MSG.format(str(request.sid), str(reason))) + leave_room(SIO_ROOM, namespace=SIO_NAMESPACE) diff --git a/src/nbi/service/topology_updates/TopoUpdatesThread.py b/src/nbi/service/topology_updates/TopoUpdatesThread.py new file mode 100644 index 000000000..dd9f96cd6 --- /dev/null +++ b/src/nbi/service/topology_updates/TopoUpdatesThread.py @@ -0,0 +1,92 @@ +# Copyright 2022-2024 ETSI 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 logging, socketio, threading +from common.proto.context_pb2 import TopologyId +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.Topology import json_topology_id +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from context.client.ContextClient import ContextClient +from context.client.EventsCollector import EventsCollector +from .Constants import SIO_NAMESPACE, SIO_ROOM + +LOGGER = logging.getLogger(__name__) + +ADMIN_TOPOLOGY_ID = TopologyId( + **json_topology_id( + DEFAULT_TOPOLOGY_NAME, + context_id=json_context_id(DEFAULT_CONTEXT_NAME) + ) +) + +GET_EVENT_TIMEOUT = 1.0 + +class TopoUpdatesThread(threading.Thread): + def __init__(self, namespace : socketio.Namespace): + super().__init__(daemon=True) + self._terminate = threading.Event() + self._namespace = namespace + + def start(self): + self._terminate.clear() + return super().start() + + def stop(self) -> None: + self._terminate.set() + + def run(self): + LOGGER.info('[run] Starting...') + try: + context_client = ContextClient() + events_collector = EventsCollector( + context_client, + log_events_received = True, + activate_context_collector = True, + activate_topology_collector = True, + activate_device_collector = True, + activate_link_collector = True, + activate_service_collector = False, + activate_slice_collector = False, + activate_connection_collector = False, + ) + events_collector.start() + + LOGGER.info('[run] Running...') + while not self._terminate.is_set(): + event = events_collector.get_event(block=True, timeout=GET_EVENT_TIMEOUT) + if event is None: continue + MSG = '[run] Event: {:s}' + LOGGER.debug(MSG.format(grpc_message_to_json_string(event))) + + # TODO: ideally, each event should trigger a notification containing + # the type of event and the relevant data for the event. To simplify, + # for now, the entire topology is sent. + + topology_details = context_client.GetTopologyDetails(ADMIN_TOPOLOGY_ID) + topology_update = grpc_message_to_json_string(topology_details) + + LOGGER.debug('[run] checking server namespace...') + server : socketio.Server = self._namespace.server + if server is None: continue + + LOGGER.debug('[run] emitting topology update...') + server.emit('topology-update', topology_update, namespace=SIO_NAMESPACE, to=SIO_ROOM) + LOGGER.debug('[run] emitted') + + LOGGER.info('[run] Exiting') + events_collector.stop() + except: # pylint: disable=bare-except + LOGGER.exception('[run] Unexpected Thread Exception') + LOGGER.info('[run] Terminated') diff --git a/src/nbi/service/topology_updates/__init__.py b/src/nbi/service/topology_updates/__init__.py new file mode 100644 index 000000000..6a3d33228 --- /dev/null +++ b/src/nbi/service/topology_updates/__init__.py @@ -0,0 +1,20 @@ +# Copyright 2022-2024 ETSI 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. + + +from nbi.service.NbiApplication import NbiApplication +from .Namespaces import TopoUpdatesServerNamespace + +def register_topology_updates(nbi_app : NbiApplication): + nbi_app.add_websocket_namespace(TopoUpdatesServerNamespace()) diff --git a/src/nbi/service/vntm_recommend/Constants.py b/src/nbi/service/vntm_recommend/Constants.py new file mode 100644 index 000000000..99438dac3 --- /dev/null +++ b/src/nbi/service/vntm_recommend/Constants.py @@ -0,0 +1,17 @@ +# Copyright 2022-2024 ETSI 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. + + +SIO_NAMESPACE = '/vnt-recomm' +SIO_ROOM = 'vnt-recomm' diff --git a/src/nbi/service/vntm_recommend/Namespaces.py b/src/nbi/service/vntm_recommend/Namespaces.py new file mode 100644 index 000000000..c4cb211a6 --- /dev/null +++ b/src/nbi/service/vntm_recommend/Namespaces.py @@ -0,0 +1,40 @@ +# Copyright 2022-2024 ETSI 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 logging +from flask import request +from flask_socketio import Namespace, join_room, leave_room +from .Constants import SIO_NAMESPACE, SIO_ROOM +from .VntRecommThread import VntRecommThread + +LOGGER = logging.getLogger(__name__) + +class VntRecommServerNamespace(Namespace): + def __init__(self): + super().__init__(namespace=SIO_NAMESPACE) + self._thread = VntRecommThread(self) + self._thread.start() + + def stop_thread(self) -> None: + self._thread.stop() + + def on_connect(self, auth): + MSG = '[on_connect] Client connect: sid={:s}, auth={:s}' + LOGGER.info(MSG.format(str(request.sid), str(auth))) + join_room(SIO_ROOM, namespace=SIO_NAMESPACE) + + def on_disconnect(self, reason): + MSG = '[on_disconnect] Client disconnect: sid={:s}, reason={:s}' + LOGGER.info(MSG.format(str(request.sid), str(reason))) + leave_room(SIO_ROOM, namespace=SIO_NAMESPACE) diff --git a/src/nbi/service/vntm_recommend/VntRecommThread.py b/src/nbi/service/vntm_recommend/VntRecommThread.py new file mode 100644 index 000000000..d52487513 --- /dev/null +++ b/src/nbi/service/vntm_recommend/VntRecommThread.py @@ -0,0 +1,86 @@ +# Copyright 2022-2024 ETSI 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 logging, socketio, threading +from common.tools.kafka.Variables import KafkaConfig, KafkaTopic +from kafka import KafkaConsumer +from .Constants import SIO_NAMESPACE, SIO_ROOM + +logging.getLogger('kafka.client').setLevel(logging.WARNING) +logging.getLogger('kafka.cluster').setLevel(logging.WARNING) +logging.getLogger('kafka.conn').setLevel(logging.WARNING) +logging.getLogger('kafka.consumer.fetcher').setLevel(logging.WARNING) +logging.getLogger('kafka.consumer.group').setLevel(logging.WARNING) +logging.getLogger('kafka.consumer.subscription_state').setLevel(logging.WARNING) +logging.getLogger('kafka.metrics.metrics').setLevel(logging.WARNING) +logging.getLogger('kafka.protocol.parser').setLevel(logging.WARNING) + +LOGGER = logging.getLogger(__name__) + +class VntRecommThread(threading.Thread): + def __init__(self, namespace : socketio.Namespace): + super().__init__(daemon=True) + self._terminate = threading.Event() + self._namespace = namespace + + def start(self): + self._terminate.clear() + return super().start() + + def stop(self) -> None: + self._terminate.set() + + def run(self): + LOGGER.info('[run] Starting...') + try: + kafka_consumer = KafkaConsumer( + bootstrap_servers = KafkaConfig.get_kafka_address(), + group_id = None, # consumer dispatch all messages sent to subscribed topics + auto_offset_reset = 'latest', + ) + + LOGGER.info('[run] Subscribing...') + kafka_consumer.subscribe(topics=[KafkaTopic.VNTMANAGER_REQUEST.value]) + LOGGER.info('[run] Subscribed') + + while not self._terminate.is_set(): + records = kafka_consumer.poll(timeout_ms=1000, max_records=1) + if len(records) == 0: continue # no pending messages... continuing + + MSG = '[run] records={:s}' + LOGGER.debug(MSG.format(str(records))) + raise NotImplementedError('parse kafka records and extract recommendation') + + #if vntm_request.error(): + # if vntm_request.error().code() == KafkaError._PARTITION_EOF: continue + # MSG = '[run] Consumer error: {:s}' + # LOGGER.error(MSG.format(str(vntm_request.error()))) + # break + #message_key = vntm_request.key().decode('utf-8') + #message_value = vntm_request.value().decode('utf-8') + #MSG = '[run] Recommendation: key={:s} value={:s}' + #LOGGER.debug(MSG.format(str(message_key), str(message_value))) + # + #LOGGER.debug('[run] checking server namespace...') + #server : socketio.Server = self._namespace.server + #if server is None: continue + #LOGGER.debug('[run] emitting recommendation...') + #server.emit('recommendation', message_value, namespace=SIO_NAMESPACE, to=SIO_ROOM) + #LOGGER.debug('[run] emitted') + + LOGGER.info('[run] Closing...') + kafka_consumer.close() + except: # pylint: disable=bare-except + LOGGER.exception('[run] Unexpected Thread Exception') + LOGGER.info('[run] Terminated') diff --git a/src/nbi/service/vntm_recommend/__init__.py b/src/nbi/service/vntm_recommend/__init__.py new file mode 100644 index 000000000..21deb31f0 --- /dev/null +++ b/src/nbi/service/vntm_recommend/__init__.py @@ -0,0 +1,20 @@ +# Copyright 2022-2024 ETSI 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. + + +from nbi.service.NbiApplication import NbiApplication +from .Namespaces import VntRecommServerNamespace + +def register_vntm_recommend(nbi_app : NbiApplication): + nbi_app.add_websocket_namespace(VntRecommServerNamespace()) -- GitLab From 736541ca8411c1d391fd960b02a56626f073ef37 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Mar 2025 20:02:50 +0000 Subject: [PATCH 093/213] OFC25 tests: - Updated descriptor files --- .../ofc25/descriptors/descriptor_e2e.json | 163 ++- .../ofc25/descriptors/descriptor_ip.json | 243 +---- .../ofc25/descriptors/descriptor_opt.json | 985 ++++-------------- 3 files changed, 301 insertions(+), 1090 deletions(-) diff --git a/src/tests/ofc25/descriptors/descriptor_e2e.json b/src/tests/ofc25/descriptors/descriptor_e2e.json index 41649d92e..5f1a843a7 100644 --- a/src/tests/ofc25/descriptors/descriptor_e2e.json +++ b/src/tests/ofc25/descriptors/descriptor_e2e.json @@ -1,86 +1,85 @@ { - "contexts":[ - { - "context_id":{ - "context_uuid":{ - "uuid":"admin" - } - } - } + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} ], - "topologies":[ - { - "topology_id":{ - "context_id":{ - "context_uuid":{ - "uuid":"admin" - } - }, - "topology_uuid":{ - "uuid":"admin" - } - } - } + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} ], - "links":[ - { - "link_id":{ - "link_uuid":{ - "uuid":"CSGW1_CTP1-OTP1" - } - }, - "link_endpoint_ids":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"CSGW1" - } - }, - "endpoint_uuid":{ - "uuid":"PORT-xe5" - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP1.1" - } - }, - "endpoint_uuid":{ - "uuid":"P2" - } - } - ] - }, - { - "link_id":{ - "link_uuid":{ - "uuid":"CSGW2_CTP1-OTP1" - } - }, - "link_endpoint_ids":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"CSGW2" - } - }, - "endpoint_uuid":{ - "uuid":"PORT-xe5" - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP2.1" - } - }, - "endpoint_uuid":{ - "uuid":"P2" - } - } - ] - } + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "TFS-PACKET"}}, "device_type": "teraflowsdn", + "device_drivers": ["DEVICEDRIVER_IETF_L3VPN"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8002"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "scheme": "http", "username": "admin", "password": "admin" + }}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TFS-OPTICAL"}}, "device_type": "teraflowsdn", + "device_drivers": ["DEVICEDRIVER_OPTICAL_TFS"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8003"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "scheme": "http", "username": "admin", "password": "admin" + }}} + ]} + } + ], + "links": [ + {"link_id": {"link_uuid": {"uuid": "CSGW1-TP1.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "TP1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "CSGW1-TP1.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "TP1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "CSGW1-TP1.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "TP1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + + {"link_id": {"link_uuid": {"uuid": "CSGW2-TP2.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "CSGW2-TP2.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "CSGW2-TP2.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + + {"link_id": {"link_uuid": {"uuid": "TP1.1-CSGW1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP1.2-CSGW1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP1.3-CSGW1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "TP2.1-CSGW2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP2.2-CSGW2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP2.3-CSGW2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + ]} ] - } - \ No newline at end of file +} diff --git a/src/tests/ofc25/descriptors/descriptor_ip.json b/src/tests/ofc25/descriptors/descriptor_ip.json index 11ad2d5c1..48143f547 100644 --- a/src/tests/ofc25/descriptors/descriptor_ip.json +++ b/src/tests/ofc25/descriptors/descriptor_ip.json @@ -1,213 +1,36 @@ { - "contexts":[ - { - "context_id":{ - "context_uuid":{ - "uuid":"admin" - } - } - } + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} ], - "topologies":[ - { - "topology_id":{ - "context_id":{ - "context_uuid":{ - "uuid":"admin" - } - }, - "topology_uuid":{ - "uuid":"admin" - } - } - } + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} ], - "devices":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"CSGW1" - } - }, - "device_type":"emu-packet-router", - "device_drivers":[ - 0 - ], - - "device_operational_status":2, - - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":0 - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "name":"PORT-xe5", - "type":"copper", - "uuid":"PORT-xe5" - } - ] - } - } - }, - { - "action":1, - "custom":{ - "resource_key":"/endpoints/endpoint[PORT-xe5]", - "resource_value":{ - "name":"PORT-xe5", - "type":"copper", - "uuid":"PORT-xe5" - } - } - } - ] - }, - "device_endpoints":[ - { - "endpoint_id":{ - "device_id":{ - "device_uuid":{ - "uuid":"CSGW1" - } - }, - "endpoint_uuid":{ - "uuid":"PORT-xe5" - }, - "topology_id":{ - "context_id":{ - "context_uuid":{ - "uuid":"admin" - } - }, - "topology_uuid":{ - "uuid":"admin" - } - } - }, - "endpoint_location":{ - - }, - "endpoint_type":"optical", - "kpi_sample_types":[ - - ], - "name":"PORT-xe5" - } - ], - - "name":"CSGW1" - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"CSGW2" - } - }, - "device_type":"emu-packet-router", - "device_drivers":[ - 0 - ], - - "device_operational_status":2, - - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":0 - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "name":"PORT-xe5", - "type":"copper", - "uuid":"PORT-xe5" - } - ] - } - } - }, - { - "action":1, - "custom":{ - "resource_key":"/endpoints/endpoint[PORT-xe5]", - "resource_value":{ - "name":"PORT-xe5", - "type":"copper", - "uuid":"PORT-xe5" - } - } - } - ] - }, - "device_endpoints":[ - { - "endpoint_id":{ - "device_id":{ - "device_uuid":{ - "uuid":"CSGW2" - } - }, - "endpoint_uuid":{ - "uuid":"PORT-xe5" - }, - "topology_id":{ - "context_id":{ - "context_uuid":{ - "uuid":"admin" - } - }, - "topology_uuid":{ - "uuid":"admin" - } - } - }, - "endpoint_location":{ - - }, - "endpoint_type":"optical", - "kpi_sample_types":[ - - ], - "name":"PORT-xe5" - } - ], - - "name":"CSGW2" - } - ], - "dummy_mode":true - } - \ No newline at end of file + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "CSGW1"}}, "device_type": "emu-packet-router", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "PORT-xe1", "type": "copper"}, + {"uuid": "PORT-xe2", "type": "copper"}, + {"uuid": "PORT-xe3", "type": "copper"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "CSGW2"}}, "device_type": "emu-packet-router", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "PORT-xe1", "type": "copper"}, + {"uuid": "PORT-xe2", "type": "copper"}, + {"uuid": "PORT-xe3", "type": "copper"} + ]}}} + ]} + } + ] +} diff --git a/src/tests/ofc25/descriptors/descriptor_opt.json b/src/tests/ofc25/descriptors/descriptor_opt.json index cfb86b966..dffa68ed2 100644 --- a/src/tests/ofc25/descriptors/descriptor_opt.json +++ b/src/tests/ofc25/descriptors/descriptor_opt.json @@ -1,803 +1,192 @@ { - "contexts":[ - { - "context_id":{ - "context_uuid":{ - "uuid":"admin" - } - } - } + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} ], - "topologies":[ - { - "topology_id":{ - "context_id":{ - "context_uuid":{ - "uuid":"admin" - } - }, - "topology_uuid":{ - "uuid":"admin" - } - } - } + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} ], - "devices":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP1.1" - } - }, - "device_type":"emu-optical-transponder", - "device_drivers":[ - 0 - ], - "device_endpoints":[ - - ], - "device_operational_status":0, - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":"0" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P1" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P2" - } - ] - } - } - } - ] - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP1.2" - } - }, - "device_type":"emu-optical-transponder", - "device_drivers":[ - 0 - ], - "device_endpoints":[ - - ], - "device_operational_status":0, - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":"0" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P1" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P2" - } - ] - } - } - } - ] - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP1.3" - } - }, - "device_type":"emu-optical-transponder", - "device_drivers":[ - 0 - ], - "device_endpoints":[ - - ], - "device_operational_status":0, - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":"0" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P1" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P2" - } - ] - } - } - } - ] - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON1" - } - }, - "device_type":"emu-optical-roadm", - "device_drivers":[ - 0 - ], - "device_endpoints":[ - - ], - "device_operational_status":0, - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":"0" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"OTP1" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"OTP2" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"OTP3" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"2" - } - ] - } - } - } - ] - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON2" - } - }, - "device_type":"emu-optical-roadm", - "device_drivers":[ - 0 - ], - "device_endpoints":[ - - ], - "device_operational_status":0, - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":"0" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"1" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"3" - } - ] - } - } - } - ] - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON3" - } - }, - "device_type":"emu-optical-roadm", - "device_drivers":[ - 0 - ], - "device_endpoints":[ - - ], - "device_operational_status":0, - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":"0" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"OTP1" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"OTP2" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"OTP3" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"2" - } - ] - } - } - } - ] - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP2.1" - } - }, - "device_type":"emu-optical-transponder", - "device_drivers":[ - 0 - ], - "device_endpoints":[ - - ], - "device_operational_status":0, - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":"0" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P1" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P2" - } - ] - } - } - } - ] - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP2.2" - } - }, - "device_type":"emu-optical-transponder", - "device_drivers":[ - 0 - ], - "device_endpoints":[ - - ], - "device_operational_status":0, - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":"0" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P1" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P2" - } - ] - } - } - } - ] - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP2.3" - } - }, - "device_type":"emu-optical-transponder", - "device_drivers":[ - 0 - ], - "device_endpoints":[ - - ], - "device_operational_status":0, - "device_config":{ - "config_rules":[ - { - "action":1, - "custom":{ - "resource_key":"_connect/address", - "resource_value":"127.0.0.1" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/port", - "resource_value":"0" - } - }, - { - "action":1, - "custom":{ - "resource_key":"_connect/settings", - "resource_value":{ - "endpoints":[ - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P1" - }, - { - "sample_types":[ - - ], - "type":"copper/internal", - "uuid":"P2" - } - ] - } - } - } - ] - } - } + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "TP1.1"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TP1.2"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TP1.3"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + }, + + { + "device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "device_type": "emu-optical-roadm", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "ADP1", "type": "optical/add-drop"}, + {"uuid": "ADP2", "type": "optical/add-drop"}, + {"uuid": "ADP3", "type": "optical/add-drop"}, + {"uuid": "LINE2", "type": "optical/line" } + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "device_type": "emu-optical-roadm", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "LINE1", "type": "optical/line"}, + {"uuid": "LINE3", "type": "optical/line"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "device_type": "emu-optical-roadm", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "ADP1", "type": "optical/add-drop"}, + {"uuid": "ADP2", "type": "optical/add-drop"}, + {"uuid": "ADP3", "type": "optical/add-drop"}, + {"uuid": "LINE2", "type": "optical/line" } + ]}}} + ]} + }, + + { + "device_id": {"device_uuid": {"uuid": "TP2.1"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TP2.2"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TP2.3"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + } ], - "links":[ - { - "link_id":{ - "link_uuid":{ - "uuid":"MG-ON1->MG-ON2" - } - }, - "link_endpoint_ids":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON1" - } - }, - "endpoint_uuid":{ - "uuid":"2" - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON2" - } - }, - "endpoint_uuid":{ - "uuid":"1" - } - } - ] - }, - { - "link_id":{ - "link_uuid":{ - "uuid":"MG-ON2->MG-ON3" - } - }, - "link_endpoint_ids":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON2" - } - }, - "endpoint_uuid":{ - "uuid":"3" - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON3" - } - }, - "endpoint_uuid":{ - "uuid":"2" - } - } - ] - }, - { - "link_id":{ - "link_uuid":{ - "uuid":"OTP1.1->MG-ON1" - } - }, - "link_endpoint_ids":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP1.1" - } - }, - "endpoint_uuid":{ - "uuid":"P1" - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON1" - } - }, - "endpoint_uuid":{ - "uuid":"OTP1" - } - } - ] - }, - { - "link_id":{ - "link_uuid":{ - "uuid":"OTP1.2->MG-ON1" - } - }, - "link_endpoint_ids":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP1.2" - } - }, - "endpoint_uuid":{ - "uuid":"P1" - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON1" - } - }, - "endpoint_uuid":{ - "uuid":"OTP2" - } - } - ] - }, - { - "link_id":{ - "link_uuid":{ - "uuid":"OTP1.3->MG-ON1" - } - }, - "link_endpoint_ids":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP1.3" - } - }, - "endpoint_uuid":{ - "uuid":"P1" - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON1" - } - }, - "endpoint_uuid":{ - "uuid":"OTP3" - } - } - ] - }, - { - "link_id":{ - "link_uuid":{ - "uuid":"OTP2.1->MG-ON3" - } - }, - "link_endpoint_ids":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP2.1" - } - }, - "endpoint_uuid":{ - "uuid":"P1" - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON3" - } - }, - "endpoint_uuid":{ - "uuid":"OTP1" - } - } - ] - }, - { - "link_id":{ - "link_uuid":{ - "uuid":"OTP2.2->MG-ON3" - } - }, - "link_endpoint_ids":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP2.2" - } - }, - "endpoint_uuid":{ - "uuid":"P1" - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON3" - } - }, - "endpoint_uuid":{ - "uuid":"OTP2" - } - } - ] - }, - { - "link_id":{ - "link_uuid":{ - "uuid":"OTP2.3->MG-ON3" - } - }, - "link_endpoint_ids":[ - { - "device_id":{ - "device_uuid":{ - "uuid":"OTP2.3" - } - }, - "endpoint_uuid":{ - "uuid":"P1" - } - }, - { - "device_id":{ - "device_uuid":{ - "uuid":"MG-ON3" - } - }, - "endpoint_uuid":{ - "uuid":"OTP3" - } - } - ] - } + "links": [ + {"link_id": {"link_uuid": {"uuid": "MG-ON1->MG-ON2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "LINE2"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON2->MG-ON1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE1"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "LINE2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON2->MG-ON3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE3"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "LINE2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON3->MG-ON2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "LINE2"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE3"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "TP1.1->MG-ON1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP1.1" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP1.2->MG-ON1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP1.2" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP1.3->MG-ON1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP1.3" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP2.1->MG-ON3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.1" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP2.2->MG-ON3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.2" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP2.3->MG-ON3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.3" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP3"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "MG-ON1->TP1.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP1"}}, + {"device_id": {"device_uuid": {"uuid": "TP1.1" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON1->TP1.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP2"}}, + {"device_id": {"device_uuid": {"uuid": "TP1.2" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON1->TP1.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP3"}}, + {"device_id": {"device_uuid": {"uuid": "TP1.3" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON3->TP2.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP1"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.1" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON3->TP2.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP2"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.2" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON3->TP2.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP3"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.3" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]} ] - } - \ No newline at end of file +} -- GitLab From d3a529f0765b4fd672d3e9ec0a56246bd0e065cd Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Mar 2025 20:29:07 +0000 Subject: [PATCH 094/213] OFC25 tests: - Updated topology descriptor files - Updated test scripts - Moved old files to separate folder --- src/tests/ofc25/{ => _old}/deploy_e2e.sh | 0 src/tests/ofc25/{ => _old}/deploy_ip.sh | 0 src/tests/ofc25/{ => _old}/deploy_opt.sh | 0 .../ofc25/{ => _old}/subscription_ws_e2e.sh | 0 .../ofc25/{ => _old}/subscription_ws_ip.sh | 0 ...{descriptor_e2e.json => topology_e2e.json} | 0 .../{descriptor_ip.json => topology_ip.json} | 0 ...{descriptor_opt.json => topology_opt.json} | 0 .../tests/test_functional_bootstrap_e2e.py | 19 +++++--- .../tests/test_functional_bootstrap_ip.py | 10 ++--- .../tests/test_functional_bootstrap_opt.py | 2 +- .../tests/test_functional_cleanup_e2e.py | 44 +++++++++++++++++++ ...eanup.py => test_functional_cleanup_ip.py} | 2 +- .../tests/test_functional_cleanup_opt.py | 44 +++++++++++++++++++ 14 files changed, 106 insertions(+), 15 deletions(-) rename src/tests/ofc25/{ => _old}/deploy_e2e.sh (100%) rename src/tests/ofc25/{ => _old}/deploy_ip.sh (100%) rename src/tests/ofc25/{ => _old}/deploy_opt.sh (100%) rename src/tests/ofc25/{ => _old}/subscription_ws_e2e.sh (100%) rename src/tests/ofc25/{ => _old}/subscription_ws_ip.sh (100%) rename src/tests/ofc25/descriptors/{descriptor_e2e.json => topology_e2e.json} (100%) rename src/tests/ofc25/descriptors/{descriptor_ip.json => topology_ip.json} (100%) rename src/tests/ofc25/descriptors/{descriptor_opt.json => topology_opt.json} (100%) create mode 100644 src/tests/ofc25/tests/test_functional_cleanup_e2e.py rename src/tests/ofc25/tests/{test_functional_cleanup.py => test_functional_cleanup_ip.py} (97%) create mode 100644 src/tests/ofc25/tests/test_functional_cleanup_opt.py diff --git a/src/tests/ofc25/deploy_e2e.sh b/src/tests/ofc25/_old/deploy_e2e.sh similarity index 100% rename from src/tests/ofc25/deploy_e2e.sh rename to src/tests/ofc25/_old/deploy_e2e.sh diff --git a/src/tests/ofc25/deploy_ip.sh b/src/tests/ofc25/_old/deploy_ip.sh similarity index 100% rename from src/tests/ofc25/deploy_ip.sh rename to src/tests/ofc25/_old/deploy_ip.sh diff --git a/src/tests/ofc25/deploy_opt.sh b/src/tests/ofc25/_old/deploy_opt.sh similarity index 100% rename from src/tests/ofc25/deploy_opt.sh rename to src/tests/ofc25/_old/deploy_opt.sh diff --git a/src/tests/ofc25/subscription_ws_e2e.sh b/src/tests/ofc25/_old/subscription_ws_e2e.sh similarity index 100% rename from src/tests/ofc25/subscription_ws_e2e.sh rename to src/tests/ofc25/_old/subscription_ws_e2e.sh diff --git a/src/tests/ofc25/subscription_ws_ip.sh b/src/tests/ofc25/_old/subscription_ws_ip.sh similarity index 100% rename from src/tests/ofc25/subscription_ws_ip.sh rename to src/tests/ofc25/_old/subscription_ws_ip.sh diff --git a/src/tests/ofc25/descriptors/descriptor_e2e.json b/src/tests/ofc25/descriptors/topology_e2e.json similarity index 100% rename from src/tests/ofc25/descriptors/descriptor_e2e.json rename to src/tests/ofc25/descriptors/topology_e2e.json diff --git a/src/tests/ofc25/descriptors/descriptor_ip.json b/src/tests/ofc25/descriptors/topology_ip.json similarity index 100% rename from src/tests/ofc25/descriptors/descriptor_ip.json rename to src/tests/ofc25/descriptors/topology_ip.json diff --git a/src/tests/ofc25/descriptors/descriptor_opt.json b/src/tests/ofc25/descriptors/topology_opt.json similarity index 100% rename from src/tests/ofc25/descriptors/descriptor_opt.json rename to src/tests/ofc25/descriptors/topology_opt.json diff --git a/src/tests/ofc25/tests/test_functional_bootstrap_e2e.py b/src/tests/ofc25/tests/test_functional_bootstrap_e2e.py index 27648969b..54225ea3f 100644 --- a/src/tests/ofc25/tests/test_functional_bootstrap_e2e.py +++ b/src/tests/ofc25/tests/test_functional_bootstrap_e2e.py @@ -16,6 +16,7 @@ import logging, os, time from common.Constants import DEFAULT_CONTEXT_NAME from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum, Empty from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.tools.grpc.Tools import grpc_message_to_json, grpc_message_to_json_string from common.tools.object_factory.Context import json_context_id from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient @@ -24,7 +25,7 @@ from tests.Fixtures import context_client, device_client # pylint: disable=unuse LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) -DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'descriptor_e2e.json') +DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'topology_e2e.json') ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) def test_scenario_bootstrap( @@ -50,7 +51,7 @@ def test_scenario_devices_enabled( """ This test validates that the devices are enabled. """ - """ DEVICE_OP_STATUS_ENABLED = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED + DEVICE_OP_STATUS_ENABLED = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED num_devices = -1 num_devices_enabled, num_retry = 0, 0 @@ -59,9 +60,15 @@ def test_scenario_devices_enabled( response = context_client.ListDevices(Empty()) num_devices = len(response.devices) num_devices_enabled = 0 + disabled_devices = list() for device in response.devices: - if device.device_operational_status != DEVICE_OP_STATUS_ENABLED: continue - num_devices_enabled += 1 + if device.device_operational_status == DEVICE_OP_STATUS_ENABLED: + num_devices_enabled += 1 + else: + disabled_devices.append(grpc_message_to_json(device)) LOGGER.info('Num Devices enabled: {:d}/{:d}'.format(num_devices_enabled, num_devices)) - num_retry += 1 """ - assert 1 == 1 + num_retry += 1 + if num_devices_enabled != num_devices: + LOGGER.info('Disabled Devices: {:s}'.format(str(disabled_devices))) + LOGGER.info('Devices: {:s}'.format(grpc_message_to_json_string(response))) + assert num_devices_enabled == num_devices diff --git a/src/tests/ofc25/tests/test_functional_bootstrap_ip.py b/src/tests/ofc25/tests/test_functional_bootstrap_ip.py index 668213a56..e4ace756f 100644 --- a/src/tests/ofc25/tests/test_functional_bootstrap_ip.py +++ b/src/tests/ofc25/tests/test_functional_bootstrap_ip.py @@ -24,7 +24,7 @@ from tests.Fixtures import context_client, device_client # pylint: disable=unuse LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) -DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'descriptor_ip.json') +DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'topology_ip.json') ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) def test_scenario_bootstrap( @@ -47,10 +47,7 @@ def test_scenario_bootstrap( def test_scenario_devices_enabled( context_client : ContextClient, # pylint: disable=redefined-outer-name ) -> None: - """ - This test validates that the devices are enabled. - """ - """ DEVICE_OP_STATUS_ENABLED = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED + DEVICE_OP_STATUS_ENABLED = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED num_devices = -1 num_devices_enabled, num_retry = 0, 0 @@ -63,5 +60,4 @@ def test_scenario_devices_enabled( if device.device_operational_status != DEVICE_OP_STATUS_ENABLED: continue num_devices_enabled += 1 LOGGER.info('Num Devices enabled: {:d}/{:d}'.format(num_devices_enabled, num_devices)) - num_retry += 1 """ - assert 1 == 1 + num_retry += 1 diff --git a/src/tests/ofc25/tests/test_functional_bootstrap_opt.py b/src/tests/ofc25/tests/test_functional_bootstrap_opt.py index f3097519a..32893e5dd 100644 --- a/src/tests/ofc25/tests/test_functional_bootstrap_opt.py +++ b/src/tests/ofc25/tests/test_functional_bootstrap_opt.py @@ -24,7 +24,7 @@ from tests.Fixtures import context_client, device_client # pylint: disable=unuse LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) -DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'descriptor_opt.json') +DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'topology_opt.json') ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) def test_scenario_bootstrap( diff --git a/src/tests/ofc25/tests/test_functional_cleanup_e2e.py b/src/tests/ofc25/tests/test_functional_cleanup_e2e.py new file mode 100644 index 000000000..cd294ae90 --- /dev/null +++ b/src/tests/ofc25/tests/test_functional_cleanup_e2e.py @@ -0,0 +1,44 @@ +# Copyright 2022-2024 ETSI 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 logging, os +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from tests.Fixtures import context_client, device_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', 'topology_e2e.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_scenario_cleanup( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name +) -> None: + # 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, device_client=device_client) + descriptor_loader.validate() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/tests/ofc25/tests/test_functional_cleanup.py b/src/tests/ofc25/tests/test_functional_cleanup_ip.py similarity index 97% rename from src/tests/ofc25/tests/test_functional_cleanup.py rename to src/tests/ofc25/tests/test_functional_cleanup_ip.py index a482c6e46..87c5e2e38 100644 --- a/src/tests/ofc25/tests/test_functional_cleanup.py +++ b/src/tests/ofc25/tests/test_functional_cleanup_ip.py @@ -24,7 +24,7 @@ from tests.Fixtures import context_client, device_client # pylint: disable=un LOGGER = logging.getLogger(__name__) LOGGER.setLevel(logging.DEBUG) -DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'topology.json') +DESCRIPTOR_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'descriptors', 'topology_ip.json') ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) def test_scenario_cleanup( diff --git a/src/tests/ofc25/tests/test_functional_cleanup_opt.py b/src/tests/ofc25/tests/test_functional_cleanup_opt.py new file mode 100644 index 000000000..03fa50fff --- /dev/null +++ b/src/tests/ofc25/tests/test_functional_cleanup_opt.py @@ -0,0 +1,44 @@ +# Copyright 2022-2024 ETSI 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 logging, os +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from tests.Fixtures import context_client, device_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', 'topology_opt.json') +ADMIN_CONTEXT_ID = ContextId(**json_context_id(DEFAULT_CONTEXT_NAME)) + +def test_scenario_cleanup( + context_client : ContextClient, # pylint: disable=redefined-outer-name + device_client : DeviceClient, # pylint: disable=redefined-outer-name +) -> None: + # 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, device_client=device_client) + descriptor_loader.validate() + descriptor_loader.unload() + validate_empty_scenario(context_client) -- GitLab From 40718a4c59bbe96052ca79aa91f51c5a91de0df3 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Fri, 14 Mar 2025 20:32:30 +0000 Subject: [PATCH 095/213] VNT Manager component: - Added creation of Kafka topics - Updated requirements.in - Updated proto file - Updated client script --- proto/vnt_manager.proto | 22 +++++--------------- src/vnt_manager/client/VNTManagerClient.py | 24 +++++----------------- src/vnt_manager/requirements.in | 3 ++- src/vnt_manager/service/__main__.py | 3 +++ 4 files changed, 15 insertions(+), 37 deletions(-) diff --git a/proto/vnt_manager.proto b/proto/vnt_manager.proto index 6442e7b90..14126528c 100644 --- a/proto/vnt_manager.proto +++ b/proto/vnt_manager.proto @@ -12,26 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -// protocol buffers documentation: https://developers.google.com/protocol-buffers/docs/proto3 syntax = "proto3"; package vnt_manager; import "context.proto"; - service VNTManagerService { - rpc VNTSubscript (VNTSubscriptionRequest) returns (VNTSubscriptionReply) {} - rpc ListVirtualLinkIds (context.Empty) returns (context.LinkIdList) {} - rpc ListVirtualLinks (context.Empty) returns (context.LinkList) {} - rpc GetVirtualLink (context.LinkId) returns (context.Link) {} - rpc SetVirtualLink (context.Link) returns (context.LinkId) {} - rpc RemoveVirtualLink (context.LinkId) returns (context.Empty) {} -} - -message VNTSubscriptionRequest { - string host = 1; - string port = 2; -} - -message VNTSubscriptionReply { - string subscription = 1; + rpc ListVirtualLinkIds(context.Empty ) returns (context.LinkIdList) {} + rpc ListVirtualLinks (context.Empty ) returns (context.LinkList ) {} + rpc GetVirtualLink (context.LinkId) returns (context.Link ) {} + rpc SetVirtualLink (context.Link ) returns (context.LinkId ) {} + rpc RemoveVirtualLink (context.LinkId) returns (context.Empty ) {} } diff --git a/src/vnt_manager/client/VNTManagerClient.py b/src/vnt_manager/client/VNTManagerClient.py index b313a590f..4ea5d3db1 100644 --- a/src/vnt_manager/client/VNTManagerClient.py +++ b/src/vnt_manager/client/VNTManagerClient.py @@ -12,22 +12,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging - -import grpc +import grpc, logging from common.Constants import ServiceNameEnum from common.proto.context_pb2 import Empty -from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest, VNTSubscriptionReply from common.proto.vnt_manager_pb2_grpc import VNTManagerServiceStub from common.Settings import get_service_host, get_service_port_grpc +from common.proto.context_pb2 import Link, LinkId, LinkIdList, LinkList from common.tools.client.RetryDecorator import delay_exponential, retry -from common.tools.grpc.Tools import grpc_message_to_json -from common.proto.context_pb2 import ( - Link, LinkId, LinkIdList, LinkList, -) from common.tools.grpc.Tools import grpc_message_to_json_string + LOGGER = logging.getLogger(__name__) MAX_RETRIES = 15 DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0) @@ -40,10 +35,8 @@ RETRY_DECORATOR = retry( class VNTManagerClient: def __init__(self, host=None, port=None): - if not host: - host = get_service_host(ServiceNameEnum.VNTMANAGER) - if not port: - port = get_service_port_grpc(ServiceNameEnum.VNTMANAGER) + if not host: host = get_service_host(ServiceNameEnum.VNTMANAGER) + if not port: port = get_service_port_grpc(ServiceNameEnum.VNTMANAGER) self.endpoint = "{:s}:{:s}".format(str(host), str(port)) LOGGER.debug("Creating channel to {:s}...".format(str(self.endpoint))) self.channel = None @@ -61,13 +54,6 @@ class VNTManagerClient: self.channel = None self.stub = None - @RETRY_DECORATOR - def VNTSubscript(self, request: VNTSubscriptionRequest) -> VNTSubscriptionReply: - LOGGER.debug("Subscript request: {:s}".format(str(grpc_message_to_json(request)))) - response = self.stub.VNTSubscript(request) - LOGGER.debug("Subscript result: {:s}".format(str(grpc_message_to_json(response)))) - return response - @RETRY_DECORATOR def ListVirtualLinkIds(self, request: Empty) -> LinkIdList: LOGGER.debug('ListVirtualLinkIds request: {:s}'.format(grpc_message_to_json_string(request))) diff --git a/src/vnt_manager/requirements.in b/src/vnt_manager/requirements.in index 38764add7..d8f9537b4 100644 --- a/src/vnt_manager/requirements.in +++ b/src/vnt_manager/requirements.in @@ -12,4 +12,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -websockets==12.0 +confluent-kafka==2.3.* +#websockets==12.0 diff --git a/src/vnt_manager/service/__main__.py b/src/vnt_manager/service/__main__.py index c36a0ae1f..089a330e1 100644 --- a/src/vnt_manager/service/__main__.py +++ b/src/vnt_manager/service/__main__.py @@ -14,6 +14,7 @@ import logging, signal, sys, threading from prometheus_client import start_http_server +from common.tools.kafka.Variables import KafkaTopic from common.Constants import ServiceNameEnum from common.Settings import ( ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, @@ -49,6 +50,8 @@ def main(): metrics_port = get_metrics_port() start_http_server(metrics_port) + KafkaTopic.create_all_topics() + # Starting VNTManager service grpc_service = VNTManagerService() grpc_service.start() -- GitLab From 32e0c18cc06a3085f151da1f34c311225d25f18a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sat, 15 Mar 2025 15:03:45 +0000 Subject: [PATCH 096/213] Integration Tests, WebUI, PathComp: - Added new dependency on VNT Manager --- src/pathcomp/frontend/Dockerfile | 2 ++ src/tests/ecoc22/Dockerfile | 2 ++ src/tests/eucnc24/Dockerfile | 2 ++ src/tests/ofc22/Dockerfile | 2 ++ src/tests/ofc24/Dockerfile | 2 ++ src/tests/ofc25/Dockerfile | 2 ++ src/webui/Dockerfile | 2 ++ 7 files changed, 14 insertions(+) diff --git a/src/pathcomp/frontend/Dockerfile b/src/pathcomp/frontend/Dockerfile index c96db7293..baecf8f69 100644 --- a/src/pathcomp/frontend/Dockerfile +++ b/src/pathcomp/frontend/Dockerfile @@ -77,6 +77,8 @@ COPY src/service/__init__.py service/__init__.py COPY src/service/client/. service/client/ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ +COPY src/vnt_manager/__init__.py vnt_manager/__init__.py +COPY src/vnt_manager/client/. vnt_manager/client/ # Start the service ENTRYPOINT ["python", "-m", "pathcomp.frontend.service"] diff --git a/src/tests/ecoc22/Dockerfile b/src/tests/ecoc22/Dockerfile index b0489e023..996d515f3 100644 --- a/src/tests/ecoc22/Dockerfile +++ b/src/tests/ecoc22/Dockerfile @@ -78,6 +78,8 @@ COPY src/service/__init__.py service/__init__.py COPY src/service/client/. service/client/ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ +COPY src/vnt_manager/__init__.py vnt_manager/__init__.py +COPY src/vnt_manager/client/. vnt_manager/client/ COPY src/tests/*.py ./tests/ COPY src/tests/ecoc22/__init__.py ./tests/ecoc22/__init__.py COPY src/tests/ecoc22/descriptors_emulated.json ./tests/ecoc22/descriptors_emulated.json diff --git a/src/tests/eucnc24/Dockerfile b/src/tests/eucnc24/Dockerfile index 3235c74cf..2bf88714e 100644 --- a/src/tests/eucnc24/Dockerfile +++ b/src/tests/eucnc24/Dockerfile @@ -71,6 +71,8 @@ COPY src/service/__init__.py service/__init__.py COPY src/service/client/. service/client/ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ +COPY src/vnt_manager/__init__.py vnt_manager/__init__.py +COPY src/vnt_manager/client/. vnt_manager/client/ COPY src/tests/*.py ./tests/ COPY src/tests/eucnc24/__init__.py ./tests/eucnc24/__init__.py COPY src/tests/eucnc24/data/. ./tests/eucnc24/data/ diff --git a/src/tests/ofc22/Dockerfile b/src/tests/ofc22/Dockerfile index a06f66fd0..6e4ca36ec 100644 --- a/src/tests/ofc22/Dockerfile +++ b/src/tests/ofc22/Dockerfile @@ -78,6 +78,8 @@ COPY src/service/__init__.py service/__init__.py COPY src/service/client/. service/client/ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ +COPY src/vnt_manager/__init__.py vnt_manager/__init__.py +COPY src/vnt_manager/client/. vnt_manager/client/ COPY src/tests/*.py ./tests/ COPY src/tests/ofc22/__init__.py ./tests/ofc22/__init__.py COPY src/tests/ofc22/descriptors_emulated.json ./tests/ofc22/descriptors_emulated.json diff --git a/src/tests/ofc24/Dockerfile b/src/tests/ofc24/Dockerfile index 4e4e9f9e9..f2afcfbb7 100644 --- a/src/tests/ofc24/Dockerfile +++ b/src/tests/ofc24/Dockerfile @@ -78,6 +78,8 @@ COPY src/service/__init__.py service/__init__.py COPY src/service/client/. service/client/ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ +COPY src/vnt_manager/__init__.py vnt_manager/__init__.py +COPY src/vnt_manager/client/. vnt_manager/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 diff --git a/src/tests/ofc25/Dockerfile b/src/tests/ofc25/Dockerfile index cebf66695..0439d980b 100644 --- a/src/tests/ofc25/Dockerfile +++ b/src/tests/ofc25/Dockerfile @@ -73,6 +73,8 @@ COPY src/service/__init__.py service/__init__.py COPY src/service/client/. service/client/ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ +COPY src/vnt_manager/__init__.py vnt_manager/__init__.py +COPY src/vnt_manager/client/. vnt_manager/client/ COPY src/tests/*.py ./tests/ COPY src/tests/ofc25/__init__.py ./tests/ofc25/__init__.py COPY src/tests/ofc25/descriptors/descriptor_ip.json ./tests/ofc25/descriptors/descriptor_ip.json diff --git a/src/webui/Dockerfile b/src/webui/Dockerfile index 0327b68ef..d6e21dd17 100644 --- a/src/webui/Dockerfile +++ b/src/webui/Dockerfile @@ -88,6 +88,8 @@ COPY --chown=webui:webui src/qkd_app/__init__.py qkd_app/__init__.py COPY --chown=webui:webui src/qkd_app/client/. qkd_app/client/ COPY --chown=webui:webui src/bgpls_speaker/__init__.py bgpls_speaker/__init__.py COPY --chown=webui:webui src/bgpls_speaker/client/. bgpls_speaker/client/ +COPY --chown=webui:webui src/vnt_manager/__init__.py vnt_manager/__init__.py +COPY --chown=webui:webui src/vnt_manager/client/. vnt_manager/client/ COPY --chown=webui:webui src/webui/. webui/ # Start the service -- GitLab From 6cd569776615ef0715c1112b94a2be635c119c70 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sat, 15 Mar 2025 15:06:00 +0000 Subject: [PATCH 097/213] Device component: - Cosmetic changes in L2/L3 VPN drivers - Upgraded Optical TFS Driver --- src/device/service/drivers/__init__.py | 5 +- .../drivers/ietf_l2vpn/IetfL2VpnDriver.py | 3 +- .../drivers/ietf_l2vpn/TfsApiClient.py | 43 +++- .../drivers/ietf_l3vpn/TfsApiClient.py | 189 +++++++++--------- .../drivers/optical_tfs/OpticalTfsDriver.py | 126 ++++++------ .../drivers/optical_tfs/TfsApiClient.py | 128 ++++++++++++ .../drivers/optical_tfs/TfsOpticalClient.py | 100 +++++++++ .../service/drivers/optical_tfs/Tools.py | 143 ------------- .../service/drivers/optical_tfs/__init__.py | 6 - 9 files changed, 429 insertions(+), 314 deletions(-) create mode 100644 src/device/service/drivers/optical_tfs/TfsApiClient.py create mode 100644 src/device/service/drivers/optical_tfs/TfsOpticalClient.py delete mode 100644 src/device/service/drivers/optical_tfs/Tools.py diff --git a/src/device/service/drivers/__init__.py b/src/device/service/drivers/__init__.py index e3102cdf5..70ca1764f 100644 --- a/src/device/service/drivers/__init__.py +++ b/src/device/service/drivers/__init__.py @@ -188,7 +188,10 @@ if LOAD_ALL_DEVICE_DRIVERS: DRIVERS.append( (OpticalTfsDriver, [ { - FilterFieldEnum.DEVICE_TYPE: DeviceTypeEnum.OPEN_LINE_SYSTEM, + FilterFieldEnum.DEVICE_TYPE: [ + DeviceTypeEnum.OPEN_LINE_SYSTEM, + DeviceTypeEnum.TERAFLOWSDN_CONTROLLER, + ], FilterFieldEnum.DRIVER: DeviceDriverEnum.DEVICEDRIVER_OPTICAL_TFS, } ])) diff --git a/src/device/service/drivers/ietf_l2vpn/IetfL2VpnDriver.py b/src/device/service/drivers/ietf_l2vpn/IetfL2VpnDriver.py index d756ca89f..ba3cef3d8 100644 --- a/src/device/service/drivers/ietf_l2vpn/IetfL2VpnDriver.py +++ b/src/device/service/drivers/ietf_l2vpn/IetfL2VpnDriver.py @@ -70,9 +70,10 @@ class IetfL2VpnDriver(_Driver): def Connect(self) -> bool: with self.__lock: + if self.__started.is_set(): return True try: self.wim.check_credentials() - except Exception: # pylint: disable=broad-except + except: # pylint: disable=bare-except LOGGER.exception('Exception checking credentials') return False else: diff --git a/src/device/service/drivers/ietf_l2vpn/TfsApiClient.py b/src/device/service/drivers/ietf_l2vpn/TfsApiClient.py index c51e2d6bf..dd6924de0 100644 --- a/src/device/service/drivers/ietf_l2vpn/TfsApiClient.py +++ b/src/device/service/drivers/ietf_l2vpn/TfsApiClient.py @@ -19,6 +19,7 @@ from device.service.driver_api.ImportTopologyEnum import ImportTopologyEnum GET_DEVICES_URL = '{:s}://{:s}:{:d}/tfs-api/devices' GET_LINKS_URL = '{:s}://{:s}:{:d}/tfs-api/links' + TIMEOUT = 30 HTTP_OK_CODES = { @@ -47,6 +48,10 @@ MAPPING_DRIVER = { 'DEVICEDRIVER_OPTICAL_TFS' : 9, 'DEVICEDRIVER_IETF_ACTN' : 10, 'DEVICEDRIVER_OC' : 11, + 'DEVICEDRIVER_QKD' : 12, + 'DEVICEDRIVER_IETF_L3VPN' : 13, + 'DEVICEDRIVER_IETF_SLICE' : 14, + 'DEVICEDRIVER_NCE' : 15, } MSG_ERROR = 'Could not retrieve devices in remote TeraFlowSDN instance({:s}). status_code={:s} reply={:s}' @@ -59,21 +64,31 @@ class TfsApiClient: username : Optional[str] = None, password : Optional[str] = None ) -> None: self._devices_url = GET_DEVICES_URL.format(scheme, address, port) - self._links_url = GET_LINKS_URL.format(scheme, address, port) - self._auth = HTTPBasicAuth(username, password) if username is not None and password is not None else None - - def get_devices_endpoints(self, import_topology : ImportTopologyEnum = ImportTopologyEnum.DEVICES) -> List[Dict]: + self._links_url = GET_LINKS_URL.format(scheme, address, port) + self._auth = ( + HTTPBasicAuth(username, password) + if username is not None and password is not None + else None + ) + + def get_devices_endpoints( + self, import_topology : ImportTopologyEnum = ImportTopologyEnum.DEVICES + ) -> List[Dict]: LOGGER.debug('[get_devices_endpoints] begin') - LOGGER.debug('[get_devices_endpoints] import_topology={:s}'.format(str(import_topology))) + MSG = '[get_devices_endpoints] import_topology={:s}' + LOGGER.debug(MSG.format(str(import_topology))) reply = requests.get(self._devices_url, timeout=TIMEOUT, verify=False, auth=self._auth) if reply.status_code not in HTTP_OK_CODES: - msg = MSG_ERROR.format(str(self._devices_url), str(reply.status_code), str(reply)) + msg = MSG_ERROR.format( + str(self._devices_url), str(reply.status_code), str(reply) + ) LOGGER.error(msg) raise Exception(msg) if import_topology == ImportTopologyEnum.DISABLED: - raise Exception('Unsupported import_topology mode: {:s}'.format(str(import_topology))) + MSG = 'Unsupported import_topology mode: {:s}' + raise Exception(MSG.format(str(import_topology))) result = list() for json_device in reply.json()['devices']: @@ -87,7 +102,10 @@ class TfsApiClient: 'name': json_device['name'], 'type': device_type, 'status': MAPPING_STATUS[device_status], - 'drivers': [MAPPING_DRIVER[driver] for driver in json_device['device_drivers']], + 'drivers': [ + MAPPING_DRIVER[driver] + for driver in json_device['device_drivers'] + ], } result.append((device_url, device_data)) @@ -108,7 +126,9 @@ class TfsApiClient: reply = requests.get(self._links_url, timeout=TIMEOUT, verify=False, auth=self._auth) if reply.status_code not in HTTP_OK_CODES: - msg = MSG_ERROR.format(str(self._links_url), str(reply.status_code), str(reply)) + msg = MSG_ERROR.format( + str(self._links_url), str(reply.status_code), str(reply) + ) LOGGER.error(msg) raise Exception(msg) @@ -116,7 +136,10 @@ class TfsApiClient: link_uuid : str = json_link['link_id']['link_uuid']['uuid'] link_url = '/links/link[{:s}]'.format(link_uuid) link_endpoint_ids = [ - (json_endpoint_id['device_id']['device_uuid']['uuid'], json_endpoint_id['endpoint_uuid']['uuid']) + ( + json_endpoint_id['device_id']['device_uuid']['uuid'], + json_endpoint_id['endpoint_uuid']['uuid'], + ) for json_endpoint_id in json_link['link_endpoint_ids'] ] link_data = { diff --git a/src/device/service/drivers/ietf_l3vpn/TfsApiClient.py b/src/device/service/drivers/ietf_l3vpn/TfsApiClient.py index 1ca965f87..2db898059 100644 --- a/src/device/service/drivers/ietf_l3vpn/TfsApiClient.py +++ b/src/device/service/drivers/ietf_l3vpn/TfsApiClient.py @@ -1,4 +1,4 @@ -# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI 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. @@ -12,80 +12,75 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging -from typing import Dict, List, Optional - -import requests +import logging, requests from requests.auth import HTTPBasicAuth - +from typing import Dict, List, Optional from device.service.driver_api.ImportTopologyEnum import ImportTopologyEnum -GET_DEVICES_URL = "{:s}://{:s}:{:d}/tfs-api/devices" -GET_LINKS_URL = "{:s}://{:s}:{:d}/tfs-api/links" -L3VPN_URL = "{:s}://{:s}:{:d}/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services" +GET_DEVICES_URL = '{:s}://{:s}:{:d}/tfs-api/devices' +GET_LINKS_URL = '{:s}://{:s}:{:d}/tfs-api/links' +L3VPN_URL = '{:s}://{:s}:{:d}/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' + TIMEOUT = 30 HTTP_OK_CODES = { - 200, # OK - 201, # Created - 202, # Accepted - 204, # No Content + 200, # OK + 201, # Created + 202, # Accepted + 204, # No Content } MAPPING_STATUS = { - "DEVICEOPERATIONALSTATUS_UNDEFINED": 0, - "DEVICEOPERATIONALSTATUS_DISABLED": 1, - "DEVICEOPERATIONALSTATUS_ENABLED": 2, + 'DEVICEOPERATIONALSTATUS_UNDEFINED': 0, + 'DEVICEOPERATIONALSTATUS_DISABLED' : 1, + 'DEVICEOPERATIONALSTATUS_ENABLED' : 2, } MAPPING_DRIVER = { - "DEVICEDRIVER_UNDEFINED": 0, - "DEVICEDRIVER_OPENCONFIG": 1, - "DEVICEDRIVER_TRANSPORT_API": 2, - "DEVICEDRIVER_P4": 3, - "DEVICEDRIVER_IETF_NETWORK_TOPOLOGY": 4, - "DEVICEDRIVER_ONF_TR_532": 5, - "DEVICEDRIVER_XR": 6, - "DEVICEDRIVER_IETF_L2VPN": 7, - "DEVICEDRIVER_GNMI_OPENCONFIG": 8, - "DEVICEDRIVER_OPTICAL_TFS": 9, - "DEVICEDRIVER_IETF_ACTN": 10, - "DEVICEDRIVER_OC": 11, + 'DEVICEDRIVER_UNDEFINED' : 0, + 'DEVICEDRIVER_OPENCONFIG' : 1, + 'DEVICEDRIVER_TRANSPORT_API' : 2, + 'DEVICEDRIVER_P4' : 3, + 'DEVICEDRIVER_IETF_NETWORK_TOPOLOGY': 4, + 'DEVICEDRIVER_ONF_TR_532' : 5, + 'DEVICEDRIVER_XR' : 6, + 'DEVICEDRIVER_IETF_L2VPN' : 7, + 'DEVICEDRIVER_GNMI_OPENCONFIG' : 8, + 'DEVICEDRIVER_OPTICAL_TFS' : 9, + 'DEVICEDRIVER_IETF_ACTN' : 10, + 'DEVICEDRIVER_OC' : 11, + 'DEVICEDRIVER_QKD' : 12, + 'DEVICEDRIVER_IETF_L3VPN' : 13, + 'DEVICEDRIVER_IETF_SLICE' : 14, + 'DEVICEDRIVER_NCE' : 15, } -MSG_ERROR = "Could not retrieve devices in remote TeraFlowSDN instance({:s}). status_code={:s} reply={:s}" +MSG_ERROR = 'Could not retrieve devices in remote TeraFlowSDN instance({:s}). status_code={:s} reply={:s}' LOGGER = logging.getLogger(__name__) - class TfsApiClient: def __init__( - self, - address: str, - port: int, - scheme: str = "http", - username: Optional[str] = None, - password: Optional[str] = None, + self, address : str, port : int, scheme : str = 'http', + username : Optional[str] = None, password : Optional[str] = None ) -> None: self._devices_url = GET_DEVICES_URL.format(scheme, address, port) - self._links_url = GET_LINKS_URL.format(scheme, address, port) - self._l3vpn_url = L3VPN_URL.format(scheme, address, port) - self._auth = None - # ( - # HTTPBasicAuth(username, password) - # if username is not None and password is not None - # else None - # ) + self._links_url = GET_LINKS_URL.format(scheme, address, port) + self._l3vpn_url = L3VPN_URL.format(scheme, address, port) + self._auth = ( + HTTPBasicAuth(username, password) + if username is not None and password is not None + else None + ) def get_devices_endpoints( - self, import_topology: ImportTopologyEnum = ImportTopologyEnum.DEVICES + self, import_topology : ImportTopologyEnum = ImportTopologyEnum.DEVICES ) -> List[Dict]: - LOGGER.debug("[get_devices_endpoints] begin") - LOGGER.debug( - "[get_devices_endpoints] import_topology={:s}".format(str(import_topology)) - ) + LOGGER.debug('[get_devices_endpoints] begin') + MSG = '[get_devices_endpoints] import_topology={:s}' + LOGGER.debug(MSG.format(str(import_topology))) - reply = requests.get(self._devices_url, timeout=TIMEOUT, auth=self._auth) + reply = requests.get(self._devices_url, timeout=TIMEOUT, verify=False, auth=self._auth) if reply.status_code not in HTTP_OK_CODES: msg = MSG_ERROR.format( str(self._devices_url), str(reply.status_code), str(reply) @@ -94,43 +89,44 @@ class TfsApiClient: raise Exception(msg) if import_topology == ImportTopologyEnum.DISABLED: - raise Exception( - "Unsupported import_topology mode: {:s}".format(str(import_topology)) - ) + MSG = 'Unsupported import_topology mode: {:s}' + raise Exception(MSG.format(str(import_topology))) result = list() - for json_device in reply.json()["devices"]: - device_uuid: str = json_device["device_id"]["device_uuid"]["uuid"] - device_type: str = json_device["device_type"] - device_status = json_device["device_operational_status"] - device_url = "/devices/device[{:s}]".format(device_uuid) + for json_device in reply.json()['devices']: + device_uuid : str = json_device['device_id']['device_uuid']['uuid'] + device_type : str = json_device['device_type'] + #if not device_type.startswith('emu-'): device_type = 'emu-' + device_type + device_status = json_device['device_operational_status'] + device_url = '/devices/device[{:s}]'.format(device_uuid) device_data = { - "uuid": json_device["device_id"]["device_uuid"]["uuid"], - "name": json_device["name"], - "type": device_type, - "status": MAPPING_STATUS[device_status], - "drivers": [ - MAPPING_DRIVER[driver] for driver in json_device["device_drivers"] + 'uuid': json_device['device_id']['device_uuid']['uuid'], + 'name': json_device['name'], + 'type': device_type, + 'status': MAPPING_STATUS[device_status], + 'drivers': [ + MAPPING_DRIVER[driver] + for driver in json_device['device_drivers'] ], } result.append((device_url, device_data)) - for json_endpoint in json_device["device_endpoints"]: - endpoint_uuid = json_endpoint["endpoint_id"]["endpoint_uuid"]["uuid"] - endpoint_url = "/endpoints/endpoint[{:s}]".format(endpoint_uuid) + for json_endpoint in json_device['device_endpoints']: + endpoint_uuid = json_endpoint['endpoint_id']['endpoint_uuid']['uuid'] + endpoint_url = '/endpoints/endpoint[{:s}]'.format(endpoint_uuid) endpoint_data = { - "device_uuid": device_uuid, - "uuid": endpoint_uuid, - "name": json_endpoint["name"], - "type": json_endpoint["endpoint_type"], + 'device_uuid': device_uuid, + 'uuid': endpoint_uuid, + 'name': json_endpoint['name'], + 'type': json_endpoint['endpoint_type'], } result.append((endpoint_url, endpoint_data)) if import_topology == ImportTopologyEnum.DEVICES: - LOGGER.debug("[get_devices_endpoints] devices only; returning") + LOGGER.debug('[get_devices_endpoints] devices only; returning') return result - reply = requests.get(self._links_url, timeout=TIMEOUT, auth=self._auth) + reply = requests.get(self._links_url, timeout=TIMEOUT, verify=False, auth=self._auth) if reply.status_code not in HTTP_OK_CODES: msg = MSG_ERROR.format( str(self._links_url), str(reply.status_code), str(reply) @@ -138,50 +134,49 @@ class TfsApiClient: LOGGER.error(msg) raise Exception(msg) - for json_link in reply.json()["links"]: - link_uuid: str = json_link["link_id"]["link_uuid"]["uuid"] - link_url = "/links/link[{:s}]".format(link_uuid) + for json_link in reply.json()['links']: + link_uuid : str = json_link['link_id']['link_uuid']['uuid'] + link_url = '/links/link[{:s}]'.format(link_uuid) link_endpoint_ids = [ ( - json_endpoint_id["device_id"]["device_uuid"]["uuid"], - json_endpoint_id["endpoint_uuid"]["uuid"], + json_endpoint_id['device_id']['device_uuid']['uuid'], + json_endpoint_id['endpoint_uuid']['uuid'], ) - for json_endpoint_id in json_link["link_endpoint_ids"] + for json_endpoint_id in json_link['link_endpoint_ids'] ] link_data = { - "uuid": json_link["link_id"]["link_uuid"]["uuid"], - "name": json_link["name"], - "endpoints": link_endpoint_ids, + 'uuid': json_link['link_id']['link_uuid']['uuid'], + 'name': json_link['name'], + 'endpoints': link_endpoint_ids, } result.append((link_url, link_data)) - LOGGER.debug("[get_devices_endpoints] topology; returning") + LOGGER.debug('[get_devices_endpoints] topology; returning') return result def create_connectivity_service(self, l3vpn_data: dict) -> None: try: requests.post(self._l3vpn_url, json=l3vpn_data) - LOGGER.debug( - "[create_connectivity_service] l3vpn_data={:s}".format(str(l3vpn_data)) - ) + MSG = '[create_connectivity_service] l3vpn_data={:s}' + LOGGER.debug(MSG.format(str(l3vpn_data))) except requests.exceptions.ConnectionError: - raise Exception("faild to send post request to TFS L3VPN NBI") + raise Exception('Failed to send POST request to TFS L3VPN NBI') def update_connectivity_service(self, l3vpn_data: dict) -> None: - vpn_id = l3vpn_data['ietf-l3vpn-svc:l3vpn-svc']["vpn-services"]["vpn-service"][0]["vpn-id"] - url = self._l3vpn_url + f"/vpn-service={vpn_id}" + vpn_id = l3vpn_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] + url = self._l3vpn_url + f'/vpn-service={vpn_id}' try: requests.put(url, json=l3vpn_data) - LOGGER.debug( - "[update_connectivity_service] l3vpn_data={:s}".format(str(l3vpn_data)) - ) + MSG = '[update_connectivity_service] l3vpn_data={:s}' + LOGGER.debug(MSG.format(str(l3vpn_data))) except requests.exceptions.ConnectionError: - raise Exception("faild to send post request to TFS L3VPN NBI") + raise Exception('Failed to send PUT request to TFS L3VPN NBI') def delete_connectivity_service(self, service_uuid: str) -> None: - url = self._l3vpn_url + f"/vpn-service={service_uuid}" + url = self._l3vpn_url + f'/vpn-service={service_uuid}' try: - requests.delete(url, auth=self._auth) - LOGGER.debug("[delete_connectivity_service] url={:s}".format(str(url))) + requests.delete(url) + MSG = '[delete_connectivity_service] url={:s}' + LOGGER.debug(MSG.format(str(url))) except requests.exceptions.ConnectionError: - raise Exception("faild to send delete request to TFS L3VPN NBI") + raise Exception('Failed to send DELETE request to TFS L3VPN NBI') diff --git a/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py b/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py index 05c44d2d3..8af800454 100644 --- a/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py +++ b/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py @@ -12,37 +12,43 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json, logging, requests, threading -from requests.auth import HTTPBasicAuth +import json, logging, threading from typing import Any, Iterator, List, Optional, Tuple, Union from common.method_wrappers.Decorator import MetricsPool, metered_subclass_method from common.type_checkers.Checkers import chk_string, chk_type -from device.service.driver_api._Driver import _Driver -from . import ALL_RESOURCE_KEYS -from .Tools import find_key, add_lightpath, del_lightpath, get_lightpaths -from device.service.driver_api._Driver import _Driver, RESOURCE_ENDPOINTS -from device.service.drivers.ietf_l2vpn.TfsApiClient import TfsApiClient +from device.service.driver_api._Driver import _Driver, RESOURCE_ENDPOINTS, RESOURCE_SERVICES from device.service.driver_api.ImportTopologyEnum import ImportTopologyEnum, get_import_topology +from .TfsApiClient import TfsApiClient +from .TfsOpticalClient import TfsOpticalClient LOGGER = logging.getLogger(__name__) +ALL_RESOURCE_KEYS = [ + RESOURCE_ENDPOINTS, + RESOURCE_SERVICES, +] + DRIVER_NAME = 'optical_tfs' METRICS_POOL = MetricsPool('Device', 'Driver', labels={'driver': DRIVER_NAME}) - class OpticalTfsDriver(_Driver): def __init__(self, address: str, port: int, **settings) -> None: super().__init__(DRIVER_NAME, address, port, **settings) self.__lock = threading.Lock() self.__started = threading.Event() self.__terminate = threading.Event() - username = self.settings.get('username') + username = self.settings.get('username') password = self.settings.get('password') - self.__auth = HTTPBasicAuth(username, password) if username is not None and password is not None else None - scheme = self.settings.get('scheme', 'http') - self.tac = TfsApiClient(self.address, int(self.port), scheme=scheme, username=username, password=password) - self.__base_url = '{:s}://{:s}:{:d}'.format(scheme, self.address, int(self.port)) - self.__timeout = int(self.settings.get('timeout', 120)) + scheme = self.settings.get('scheme', 'http') + timeout = int(self.settings.get('timeout', 60)) + self.tac = TfsApiClient( + self.address, int(self.port), scheme=scheme, username=username, + password=password, timeout=timeout + ) + self.toc = TfsOpticalClient( + self.address, int(self.port), scheme=scheme, username=username, + password=password, timeout=timeout + ) # Options are: # disabled --> just import endpoints as usual @@ -51,19 +57,14 @@ class OpticalTfsDriver(_Driver): # topology --> imports sub-devices and links connecting them. # (not supported by XR driver) self.__import_topology = get_import_topology(self.settings, default=ImportTopologyEnum.TOPOLOGY) - def Connect(self) -> bool: - url = self.__base_url + '/OpticalTFS/GetLightpaths' with self.__lock: if self.__started.is_set(): return True try: - requests.get(url, timeout=self.__timeout, verify=False, auth=self.__auth) - except requests.exceptions.Timeout: - LOGGER.exception('Timeout connecting {:s}'.format(str(self.__tapi_root))) - return False - except Exception: # pylint: disable=broad-except - LOGGER.exception('Exception connecting {:s}'.format(str(self.__tapi_root))) + self.toc.check_credentials() + except: # pylint: disable=bare-except + LOGGER.exception('Exception checking credentials') return False else: self.__started.set() @@ -84,68 +85,81 @@ class OpticalTfsDriver(_Driver): chk_type('resources', resource_keys, list) results = [] with self.__lock: + self.toc.check_credentials() if len(resource_keys) == 0: resource_keys = ALL_RESOURCE_KEYS for i, resource_key in enumerate(resource_keys): str_resource_name = 'resource_key[#{:d}]'.format(i) - chk_string(str_resource_name, resource_key, allow_empty=False) - - if resource_key == RESOURCE_ENDPOINTS: - # return endpoints through TFS NBI API and list-devices method - results.extend(self.tac.get_devices_endpoints(self.__import_topology)) - - # results.extend(get_lightpaths( - # self.__base_url, resource_key, timeout=self.__timeout, auth=self.__auth)) + try: + chk_string(str_resource_name, resource_key, allow_empty=False) + if resource_key == RESOURCE_ENDPOINTS: + # return endpoints through TFS NBI API and list-devices method + results.extend(self.tac.get_devices_endpoints(self.__import_topology)) + elif resource_key == RESOURCE_SERVICES: + # return all services through + results.extend(self.toc.get_lightpaths()) + else: + MSG = 'ResourceKey({:s}) not implemented' + LOGGER.warning(MSG.format(str(resource_key))) + except Exception as e: + LOGGER.exception('Unhandled error processing resource_key({:s})'.format(str(resource_key))) + results.append((resource_key, e)) return results @metered_subclass_method(METRICS_POOL) def SetConfig(self, resources: List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: results = [] - if len(resources) == 0: - return results + if len(resources) == 0: return results with self.__lock: - for _, resource in resources: + self.toc.check_credentials() + for resource in resources: LOGGER.info('resource = {:s}'.format(str(resource))) - - src_node = find_key(resource, 'src_node') - dst_node = find_key(resource, 'dst_node') - bitrate = find_key(resource, 'bitrate') - - response = add_lightpath(self.__base_url, src_node, dst_node, bitrate, - auth=self.__auth, timeout=self.__timeout) - - results.extend(response) + resource_key,resource_value = resource + try: + resource_value = json.loads(resource_value) + src_node = resource_value['src_node'] + dst_node = resource_value['dst_node'] + bitrate = resource_value['bitrate' ] + results.extend(self.toc.add_lightpath(src_node, dst_node, bitrate)) + results.append((resource_key, True)) + except Exception as e: + LOGGER.exception('Unhandled error processing resource_key({:s})'.format(str(resource_key))) + results.append((resource_key, e)) return results @metered_subclass_method(METRICS_POOL) def DeleteConfig(self, resources: List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: results = [] - if len(resources) == 0: - return results + if len(resources) == 0: return results with self.__lock: - for _, resource in resources: + self.toc.check_credentials() + for resource in resources: LOGGER.info('resource = {:s}'.format(str(resource))) - flow_id = find_key(resource, 'flow_id') - src_node = find_key(resource, 'src_node') - dst_node = find_key(resource, 'dst_node') - bitrate = find_key(resource, 'bitrate') - - response = del_lightpath(self.__base_url, flow_id, src_node, dst_node, bitrate) - results.extend(response) - + resource_key,resource_value = resource + try: + resource_value = json.loads(resource_value) + flow_id = resource_value['flow_id' ] + src_node = resource_value['src_node'] + dst_node = resource_value['dst_node'] + bitrate = resource_value['bitrate' ] + self.toc.del_lightpath(flow_id, src_node, dst_node, bitrate) + results.append((resource_key, True)) + except Exception as e: + LOGGER.exception('Unhandled error processing resource_key({:s})'.format(str(resource_key))) + results.append((resource_key, e)) return results @metered_subclass_method(METRICS_POOL) def SubscribeState(self, subscriptions : List[Tuple[str, float, float]]) -> List[Union[bool, Exception]]: - # Optical TFS does not support monitoring by now + # TODO: Optical TFS does not support monitoring by now return [False for _ in subscriptions] @metered_subclass_method(METRICS_POOL) def UnsubscribeState(self, subscriptions : List[Tuple[str, float, float]]) -> List[Union[bool, Exception]]: - # Optical TFS does not support monitoring by now + # TODO: Optical TFS does not support monitoring by now return [False for _ in subscriptions] def GetState( self, blocking=False, terminate : Optional[threading.Event] = None ) -> Iterator[Tuple[float, str, Any]]: - # Optical TFS does not support monitoring by now + # TODO: Optical TFS does not support monitoring by now return [] diff --git a/src/device/service/drivers/optical_tfs/TfsApiClient.py b/src/device/service/drivers/optical_tfs/TfsApiClient.py new file mode 100644 index 000000000..8df8e5261 --- /dev/null +++ b/src/device/service/drivers/optical_tfs/TfsApiClient.py @@ -0,0 +1,128 @@ +# Copyright 2022-2024 ETSI 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 logging, requests +from typing import Dict, List, Optional +from common.tools.client.RestClient import RestClient +from device.service.driver_api.ImportTopologyEnum import ImportTopologyEnum + +GET_DEVICES_URL = '/tfs-api/devices' +GET_LINKS_URL = '/tfs-api/links' + +MAPPING_STATUS = { + 'DEVICEOPERATIONALSTATUS_UNDEFINED': 0, + 'DEVICEOPERATIONALSTATUS_DISABLED' : 1, + 'DEVICEOPERATIONALSTATUS_ENABLED' : 2, +} + +MAPPING_DRIVER = { + 'DEVICEDRIVER_UNDEFINED' : 0, + 'DEVICEDRIVER_OPENCONFIG' : 1, + 'DEVICEDRIVER_TRANSPORT_API' : 2, + 'DEVICEDRIVER_P4' : 3, + 'DEVICEDRIVER_IETF_NETWORK_TOPOLOGY': 4, + 'DEVICEDRIVER_ONF_TR_532' : 5, + 'DEVICEDRIVER_XR' : 6, + 'DEVICEDRIVER_IETF_L2VPN' : 7, + 'DEVICEDRIVER_GNMI_OPENCONFIG' : 8, + 'DEVICEDRIVER_OPTICAL_TFS' : 9, + 'DEVICEDRIVER_IETF_ACTN' : 10, + 'DEVICEDRIVER_OC' : 11, + 'DEVICEDRIVER_QKD' : 12, + 'DEVICEDRIVER_IETF_L3VPN' : 13, + 'DEVICEDRIVER_IETF_SLICE' : 14, + 'DEVICEDRIVER_NCE' : 15, +} + +LOGGER = logging.getLogger(__name__) + +class TfsApiClient(RestClient): + def __init__( + self, address : str, port : int, scheme : str = 'http', + username : Optional[str] = None, password : Optional[str] = None, + timeout : Optional[int] = 30 + ) -> None: + super().__init__( + address, port, scheme=scheme, username=username, password=password, + timeout=timeout, verify_certs=False, allow_redirects=True, logger=LOGGER + ) + + def get_devices_endpoints( + self, import_topology : ImportTopologyEnum = ImportTopologyEnum.DEVICES + ) -> List[Dict]: + LOGGER.debug('[get_devices_endpoints] begin') + MSG = '[get_devices_endpoints] import_topology={:s}' + LOGGER.debug(MSG.format(str(import_topology))) + + if import_topology == ImportTopologyEnum.DISABLED: + MSG = 'Unsupported import_topology mode: {:s}' + raise Exception(MSG.format(str(import_topology))) + + devices = self.get(GET_DEVICES_URL, expected_status_codes={requests.codes['OK']}) + + result = list() + for json_device in devices['devices']: + device_uuid : str = json_device['device_id']['device_uuid']['uuid'] + device_type : str = json_device['device_type'] + #if not device_type.startswith('emu-'): device_type = 'emu-' + device_type + device_status = json_device['device_operational_status'] + device_url = '/devices/device[{:s}]'.format(device_uuid) + device_data = { + 'uuid': json_device['device_id']['device_uuid']['uuid'], + 'name': json_device['name'], + 'type': device_type, + 'status': MAPPING_STATUS[device_status], + 'drivers': [ + MAPPING_DRIVER[driver] + for driver in json_device['device_drivers'] + ], + } + result.append((device_url, device_data)) + + for json_endpoint in json_device['device_endpoints']: + endpoint_uuid = json_endpoint['endpoint_id']['endpoint_uuid']['uuid'] + endpoint_url = '/endpoints/endpoint[{:s}]'.format(endpoint_uuid) + endpoint_data = { + 'device_uuid': device_uuid, + 'uuid': endpoint_uuid, + 'name': json_endpoint['name'], + 'type': json_endpoint['endpoint_type'], + } + result.append((endpoint_url, endpoint_data)) + + if import_topology == ImportTopologyEnum.DEVICES: + LOGGER.debug('[get_devices_endpoints] devices only; returning') + return result + + links = self.get(GET_LINKS_URL, expected_status_codes={requests.codes['OK']}) + + for json_link in links['links']: + link_uuid : str = json_link['link_id']['link_uuid']['uuid'] + link_url = '/links/link[{:s}]'.format(link_uuid) + link_endpoint_ids = [ + ( + json_endpoint_id['device_id']['device_uuid']['uuid'], + json_endpoint_id['endpoint_uuid']['uuid'], + ) + for json_endpoint_id in json_link['link_endpoint_ids'] + ] + link_data = { + 'uuid': json_link['link_id']['link_uuid']['uuid'], + 'name': json_link['name'], + 'endpoints': link_endpoint_ids, + } + result.append((link_url, link_data)) + + LOGGER.debug('[get_devices_endpoints] topology; returning') + return result diff --git a/src/device/service/drivers/optical_tfs/TfsOpticalClient.py b/src/device/service/drivers/optical_tfs/TfsOpticalClient.py new file mode 100644 index 000000000..f5749ae56 --- /dev/null +++ b/src/device/service/drivers/optical_tfs/TfsOpticalClient.py @@ -0,0 +1,100 @@ +# Copyright 2022-2024 ETSI 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 logging, requests +from typing import Dict, List, Optional, Union +from common.tools.client.RestClient import RestClient + + +LOGGER = logging.getLogger(__name__) + +GET_OPTICAL_LINKS_URL = '/OpticalTFS/GetLinks' +GET_LIGHTPATHS_URL = '/OpticalTFS/GetLightpaths' +ADD_LIGHTPATH_URL = '/OpticalTFS/AddLightpath/{src_node:s}/{dst_node:s}/{bitrate:s}' +DEL_LIGHTPATH_URL = '/OpticalTFS/DelLightpath/{flow_id:s}/{src_node:s}/{dst_node:s}/{bitrate:s}' + + +class TfsOpticalClient(RestClient): + def __init__( + self, address : str, port : int, scheme : str = 'http', + username : Optional[str] = None, password : Optional[str] = None, + timeout : Optional[int] = 30 + ) -> None: + super().__init__( + address, port, scheme=scheme, username=username, password=password, + timeout=timeout, verify_certs=False, allow_redirects=True, logger=LOGGER + ) + + def check_credentials(self) -> None: + self.get(GET_LIGHTPATHS_URL, expected_status_codes={requests.codes['OK']}) + LOGGER.info('Credentials checked') + + def get_optical_links(self) -> Union[List[Dict], Exception]: + try: + return self.get(GET_OPTICAL_LINKS_URL, expected_status_codes={requests.codes['OK']}) + except Exception as e: + LOGGER.exception('Exception retrieving optical links') + return e + + def get_lightpaths(self) -> Union[List[Dict], Exception]: + try: + lightpaths : List[Dict] = self.get( + GET_LIGHTPATHS_URL, expected_status_codes={requests.codes['OK']} + ) + except Exception as e: + LOGGER.exception('Exception retrieving lightpaths') + return e + + result = [] + for lightpath in lightpaths: + assert 'flow_id' in lightpath + assert 'src' in lightpath + assert 'dst' in lightpath + assert 'bitrate' in lightpath + resource_key = '/lightpaths/lightpath[{:s}]'.format(lightpath['flow_id']) + result.append((resource_key, lightpath)) + return result + + def add_lightpath( + self, src_node : str, dst_node : str, bitrate : int + ) -> Union[List[Dict], Exception]: + MSG = 'Add Lightpath: {:s} <-> {:s} with {:d} bitrate' + LOGGER.info(MSG.format(str(src_node), str(dst_node), int(bitrate))) + request_endpoint = ADD_LIGHTPATH_URL.format( + src_node=str(src_node), dst_node=str(dst_node), bitrate=int(bitrate) + ) + expected_status_codes = {requests.codes['CREATED'], requests.codes['NO_CONTENT']} + try: + return self.put(request_endpoint, expected_status_codes=expected_status_codes) + except Exception as e: + MSG = 'Exception requesting Lightpath: {:s} <-> {:s} with {:s} bitrate' + LOGGER.exception(MSG.format(str(src_node), str(dst_node), str(bitrate))) + return e + + def del_lightpath( + self, flow_id : str, src_node : str, dst_node : str, bitrate : int + ) -> Union[List[Dict], Exception]: + MSG = 'Delete Lightpath {:s}: {:s} <-> {:s} with {:d} bitrate' + LOGGER.info(MSG.format(str(flow_id), str(src_node), str(dst_node), int(bitrate))) + request_endpoint = DEL_LIGHTPATH_URL.format( + src_node=str(src_node), dst_node=str(dst_node), bitrate=int(bitrate) + ) + expected_status_codes = {requests.codes['NO_CONTENT']} + try: + return self.delete(request_endpoint, expected_status_codes=expected_status_codes) + except Exception as e: + MSG = 'Exception deleting Lightpath {:s}: {:s} <-> {:s} with {:s} bitrate' + LOGGER.exception(MSG.format(str(flow_id), str(src_node), str(dst_node), str(bitrate))) + return e diff --git a/src/device/service/drivers/optical_tfs/Tools.py b/src/device/service/drivers/optical_tfs/Tools.py deleted file mode 100644 index 3714672f8..000000000 --- a/src/device/service/drivers/optical_tfs/Tools.py +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright 2022-2024 ETSI 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 - -LOGGER = logging.getLogger(__name__) - -HTTP_OK_CODES = { - 200, # OK - 201, # Created - 202, # Accepted - 204, # No Content -} - -def find_key(resource, key): - return json.loads(resource[1])[key] - -def get_lightpaths(root_url : str, resource_key : str,auth : Optional[HTTPBasicAuth] = None, - timeout : Optional[int] = None): - headers = {'accept': 'application/json'} - url = '{:s}/OpticalTFS/GetLightpaths'.format(root_url) - - result = [] - try: - response = requests.get(url, timeout=timeout, headers=headers, verify=False, auth=auth) - except requests.exceptions.Timeout: - LOGGER.exception('Timeout connecting {:s}'.format(url)) - return result - except Exception as e: # pylint: disable=broad-except - LOGGER.exception('Exception retrieving {:s}'.format(resource_key)) - result.append((resource_key, e)) - return result - - try: - flows = json.loads(response.content) - except Exception as e: # pylint: disable=broad-except - LOGGER.warning('Unable to decode reply: {:s}'.format(str(response.content))) - result.append((resource_key, e)) - return result - - for flow in flows: - flow_id = flow.get('flow_id') - source = flow.get('src') - destination = flow.get('dst') - bitrate = flow.get('bitrate') - - endpoint_url = '/flows/flow[{:s}]'.format(flow_id) - endpoint_data = {'flow_id': flow_id, 'src': source, 'dst': destination, 'bitrate': bitrate} - result.append((endpoint_url, endpoint_data)) - - return result - - -def add_lightpath(root_url, src_node, dst_node, bitrate, - auth : Optional[HTTPBasicAuth] = None, timeout : Optional[int] = None): - - headers = {'accept': 'application/json'} - url = '{:s}/OpticalTFS/AddLightpath/{:s}/{:s}/{:s}'.format( - root_url, src_node, dst_node, bitrate) - - results = [] - try: - LOGGER.info('Lightpath request: {:s} <-> {:s} with {:s} bitrate'.format( - str(src_node), str(dst_node), str(bitrate))) - response = requests.put(url=url, timeout=timeout, headers=headers, verify=False, auth=auth) - results.append(response.json()) - LOGGER.info('Response: {:s}'.format(str(response))) - - except Exception as e: # pylint: disable=broad-except - LOGGER.exception('Exception requesting Lightpath: {:s} <-> {:s} with {:s} bitrate'.format( - str(src_node), str(dst_node), str(bitrate))) - results.append(e) - else: - if response.status_code not in HTTP_OK_CODES: - msg = 'Could not create Lightpath(status_code={:s} reply={:s}' - LOGGER.error(msg.format(str(response.status_code), str(response))) - results.append(response.status_code in HTTP_OK_CODES) - - return results - - - -def del_lightpath(root_url, flow_id, src_node, dst_node, bitrate, - auth : Optional[HTTPBasicAuth] = None, timeout : Optional[int] = None): - url = '{:s}/OpticalTFS/DelLightpath/{:s}/{:s}/{:s}/{:s}'.format( - root_url, flow_id, src_node, dst_node, bitrate) - headers = {'accept': 'application/json'} - - results = [] - - try: - response = requests.delete( - url=url, timeout=timeout, headers=headers, verify=False, auth=auth) - except Exception as e: # pylint: disable=broad-except - LOGGER.exception('Exception deleting Lightpath(uuid={:s})'.format(str(flow_id))) - results.append(e) - else: - if response.status_code not in HTTP_OK_CODES: - msg = 'Could not delete Lightpath(flow_id={:s}). status_code={:s} reply={:s}' - LOGGER.error(msg.format(str(flow_id), str(response.status_code), str(response))) - results.append(response.status_code in HTTP_OK_CODES) - - return results - - -def get_topology(root_url : str, resource_key : str,auth : Optional[HTTPBasicAuth] = None, - timeout : Optional[int] = None): - headers = {'accept': 'application/json'} - url = '{:s}/OpticalTFS/GetLinks'.format(root_url) - - result = [] - try: - response = requests.get(url, timeout=timeout, headers=headers, verify=False, auth=auth) - except requests.exceptions.Timeout: - LOGGER.exception('Timeout connecting {:s}'.format(url)) - return result - except Exception as e: # pylint: disable=broad-except - LOGGER.exception('Exception retrieving {:s}'.format(resource_key)) - result.append((resource_key, e)) - return result - - try: - response = json.loads(response.content) - except Exception as e: # pylint: disable=broad-except - LOGGER.warning('Unable to decode reply: {:s}'.format(str(response.content))) - result.append((resource_key, e)) - return result - - result.append(response) - return result diff --git a/src/device/service/drivers/optical_tfs/__init__.py b/src/device/service/drivers/optical_tfs/__init__.py index 97ec0dd42..53d5157f7 100644 --- a/src/device/service/drivers/optical_tfs/__init__.py +++ b/src/device/service/drivers/optical_tfs/__init__.py @@ -12,9 +12,3 @@ # See the License for the specific language governing permissions and # limitations under the License. -from device.service.driver_api._Driver import RESOURCE_ENDPOINTS, RESOURCE_SERVICES - -ALL_RESOURCE_KEYS = [ - RESOURCE_ENDPOINTS, - RESOURCE_SERVICES, -] -- GitLab From ba1f72202822a5aab10d5782e7f624cad8ac3ac1 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sat, 15 Mar 2025 15:06:16 +0000 Subject: [PATCH 098/213] Common framework: - Added generic RestClient class --- src/common/tools/client/RestClient.py | 162 ++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 src/common/tools/client/RestClient.py diff --git a/src/common/tools/client/RestClient.py b/src/common/tools/client/RestClient.py new file mode 100644 index 000000000..321f14ed4 --- /dev/null +++ b/src/common/tools/client/RestClient.py @@ -0,0 +1,162 @@ +# Copyright 2022-2024 ETSI 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 enum, logging, requests +from requests.auth import HTTPBasicAuth +from typing import Any, Optional, Set + +class RestRequestMethod(enum.Enum): + GET = 'get' + POST = 'post' + PUT = 'put' + PATCH = 'patch' + DELETE = 'delete' + +EXPECTED_STATUS_CODES : Set[int] = { + requests.codes['OK' ], # 200 - OK + requests.codes['CREATED' ], # 201 - Created + requests.codes['ACCEPTED' ], # 202 - Accepted + requests.codes['NO_CONTENT'], # 204 - No Content +} + +URL_TEMPLATE = '{:s}://{:s}:{:d}/{:s}' + +def compose_basic_auth( + username : Optional[str] = None, password : Optional[str] = None +) -> Optional[HTTPBasicAuth]: + if username is None or password is None: return None + return HTTPBasicAuth(username, password) + +class SchemeEnum(enum.Enum): + HTTP = 'http' + HTTPS = 'https' + +def check_scheme(scheme : str) -> str: + str_scheme = str(scheme).lower() + enm_scheme = SchemeEnum._value2member_map_[str_scheme] + return enm_scheme.value + + +class RestClient: + def __init__( + self, address : str, port : int, scheme : str = 'http', + username : Optional[str] = None, password : Optional[str] = None, + timeout : int = 30, verify_certs : bool = True, allow_redirects : bool = True, + logger : Optional[logging.Logger] = None + ) -> None: + self._address = address + self._port = int(port) + self._scheme = check_scheme(scheme) + self._auth = compose_basic_auth(username=username, password=password) + self._timeout = int(timeout) + self._verify_certs = verify_certs + self._allow_redirects = allow_redirects + self._logger = logger + + def _compose_url(self, endpoint : str) -> str: + endpoint = endpoint.lstrip('/') + return URL_TEMPLATE.format(self._scheme, self._address, self._port, endpoint) + + def _log_msg_request( + self, method : RestRequestMethod, request_url : str, body : Optional[Any], + log_level : int = logging.INFO + ) -> str: + msg = 'Request: {:s} {:s}'.format(str(method.value).upper(), str(request_url)) + if body is not None: msg += ' body={:s}'.format(str(body)) + if self._logger is not None: self._logger.log(log_level, msg) + return msg + + def _log_msg_check_reply( + self, method : RestRequestMethod, request_url : str, body : Optional[Any], + reply : requests.Response, expected_status_codes : Set[int], + log_level : int = logging.INFO + ) -> str: + msg = 'Reply: {:s}'.format(str(reply.text)) + if self._logger is not None: self._logger.log(log_level, msg) + http_status_code = reply.status_code + if http_status_code in expected_status_codes: return msg + MSG = 'Request failed. method={:s} url={:s} body={:s} status_code={:s} reply={:s}' + msg = MSG.format( + str(method.value).upper(), str(request_url), str(body), + str(http_status_code), str(reply.text) + ) + self._logger.error(msg) + raise Exception(msg) + + def _do_rest_request( + self, method : RestRequestMethod, endpoint : str, body : Optional[Any] = None, + expected_status_codes : Set[int] = EXPECTED_STATUS_CODES + ) -> Optional[Any]: + request_url = self._compose_url(endpoint) + self._log_msg_request(method, request_url, body) + try: + headers = {'accept': 'application/json'} + reply = requests.request( + method.value, request_url, headers=headers, json=body, + auth=self._auth, verify=self._verify_certs, timeout=self._timeout, + allow_redirects=self._allow_redirects + ) + except Exception as e: + MSG = 'Request failed. method={:s} url={:s} body={:s}' + msg = MSG.format(str(method.value).upper(), request_url, str(body)) + self._logger.exception(msg) + raise Exception(msg) from e + self._log_msg_check_reply(method, request_url, body, reply, expected_status_codes) + if reply.content and len(reply.content) > 0: return reply.json() + return None + + def get( + self, endpoint : str, + expected_status_codes : Set[int] = EXPECTED_STATUS_CODES + ) -> Optional[Any]: + return self._do_rest_request( + RestRequestMethod.GET, endpoint, + expected_status_codes=expected_status_codes + ) + + def post( + self, endpoint : str, body : Optional[Any] = None, + expected_status_codes : Set[int] = EXPECTED_STATUS_CODES + ) -> Optional[Any]: + return self._do_rest_request( + RestRequestMethod.POST, endpoint, body=body, + expected_status_codes=expected_status_codes + ) + + def put( + self, endpoint : str, body : Optional[Any] = None, + expected_status_codes : Set[int] = EXPECTED_STATUS_CODES + ) -> Optional[Any]: + return self._do_rest_request( + RestRequestMethod.PUT, endpoint, body=body, + expected_status_codes=expected_status_codes + ) + + def patch( + self, endpoint : str, body : Optional[Any] = None, + expected_status_codes : Set[int] = EXPECTED_STATUS_CODES + ) -> Optional[Any]: + return self._do_rest_request( + RestRequestMethod.PATCH, endpoint, body=body, + expected_status_codes=expected_status_codes + ) + + def delete( + self, endpoint : str, body : Optional[Any] = None, + expected_status_codes : Set[int] = EXPECTED_STATUS_CODES + ) -> Optional[Any]: + return self._do_rest_request( + RestRequestMethod.DELETE, endpoint, body=body, + expected_status_codes=expected_status_codes + ) -- GitLab From bd365059fa84b288e44a6a448f3e4ad4ebefae0b Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sat, 15 Mar 2025 19:02:15 +0000 Subject: [PATCH 099/213] OFC25 tests: - Updated topology descriptor files - Added virtual link descriptor files --- src/tests/ofc25/descriptors/create-vlink-01.json | 13 +++++++++++++ src/tests/ofc25/descriptors/create-vlink-02.json | 13 +++++++++++++ src/tests/ofc25/descriptors/create-vlink-03.json | 13 +++++++++++++ src/tests/ofc25/descriptors/topology_e2e.json | 8 ++++---- src/tests/ofc25/descriptors/topology_ip.json | 4 ++-- 5 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 src/tests/ofc25/descriptors/create-vlink-01.json create mode 100644 src/tests/ofc25/descriptors/create-vlink-02.json create mode 100644 src/tests/ofc25/descriptors/create-vlink-03.json diff --git a/src/tests/ofc25/descriptors/create-vlink-01.json b/src/tests/ofc25/descriptors/create-vlink-01.json new file mode 100644 index 000000000..edb9bc61c --- /dev/null +++ b/src/tests/ofc25/descriptors/create-vlink-01.json @@ -0,0 +1,13 @@ +{ + "links": [ + { + "link_id": {"link_uuid": {"uuid": "IP1/PORT-xe1==IP2/PORT-xe1"}}, + "link_type": "LINKTYPE_VIRTUAL", + "attributes": {"total_capacity_gbps": 800.0}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + ] + } + ] +} diff --git a/src/tests/ofc25/descriptors/create-vlink-02.json b/src/tests/ofc25/descriptors/create-vlink-02.json new file mode 100644 index 000000000..63b141a2d --- /dev/null +++ b/src/tests/ofc25/descriptors/create-vlink-02.json @@ -0,0 +1,13 @@ +{ + "links": [ + { + "link_id": {"link_uuid": {"uuid": "IP1/PORT-xe2==IP2/PORT-xe2"}}, + "link_type": "LINKTYPE_VIRTUAL", + "attributes": {"total_capacity_gbps": 800.0}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + ] + } + ] +} diff --git a/src/tests/ofc25/descriptors/create-vlink-03.json b/src/tests/ofc25/descriptors/create-vlink-03.json new file mode 100644 index 000000000..1f57c5ce4 --- /dev/null +++ b/src/tests/ofc25/descriptors/create-vlink-03.json @@ -0,0 +1,13 @@ +{ + "links": [ + { + "link_id": {"link_uuid": {"uuid": "IP1/PORT-xe3==IP2/PORT-xe3"}}, + "link_type": "LINKTYPE_VIRTUAL", + "attributes": {"total_capacity_gbps": 800.0}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + ] + } + ] +} diff --git a/src/tests/ofc25/descriptors/topology_e2e.json b/src/tests/ofc25/descriptors/topology_e2e.json index 5f1a843a7..8c3c1fd40 100644 --- a/src/tests/ofc25/descriptors/topology_e2e.json +++ b/src/tests/ofc25/descriptors/topology_e2e.json @@ -10,10 +10,10 @@ "device_id": {"device_uuid": {"uuid": "TFS-PACKET"}}, "device_type": "teraflowsdn", "device_drivers": ["DEVICEDRIVER_IETF_L3VPN"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.10"}}, {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8002"}}, {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { - "scheme": "http", "username": "admin", "password": "admin" + "scheme": "http", "username": "admin", "password": "admin", "import_topology": "topology" }}} ]} }, @@ -21,10 +21,10 @@ "device_id": {"device_uuid": {"uuid": "TFS-OPTICAL"}}, "device_type": "teraflowsdn", "device_drivers": ["DEVICEDRIVER_OPTICAL_TFS"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.10"}}, {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8003"}}, {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { - "scheme": "http", "username": "admin", "password": "admin" + "scheme": "http", "username": "admin", "password": "admin", "import_topology": "topology" }}} ]} } diff --git a/src/tests/ofc25/descriptors/topology_ip.json b/src/tests/ofc25/descriptors/topology_ip.json index 48143f547..b75aeb7b1 100644 --- a/src/tests/ofc25/descriptors/topology_ip.json +++ b/src/tests/ofc25/descriptors/topology_ip.json @@ -7,7 +7,7 @@ ], "devices": [ { - "device_id": {"device_uuid": {"uuid": "CSGW1"}}, "device_type": "emu-packet-router", + "device_id": {"device_uuid": {"uuid": "IP1"}}, "device_type": "emu-packet-router", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, @@ -20,7 +20,7 @@ ]} }, { - "device_id": {"device_uuid": {"uuid": "CSGW2"}}, "device_type": "emu-packet-router", + "device_id": {"device_uuid": {"uuid": "IP2"}}, "device_type": "emu-packet-router", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, -- GitLab From 96ab782fe28cf1c7438b6f4caf5da9ecb4f01971 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sat, 15 Mar 2025 19:02:41 +0000 Subject: [PATCH 100/213] Common framework: - Updated Descriptor Loader to support virtual links --- src/common/tools/descriptor/Loader.py | 65 +++++++++++++++++++-------- src/common/tools/descriptor/Tools.py | 30 ++++++++++++- 2 files changed, 76 insertions(+), 19 deletions(-) diff --git a/src/common/tools/descriptor/Loader.py b/src/common/tools/descriptor/Loader.py index 4cdac3674..59d2db6e7 100644 --- a/src/common/tools/descriptor/Loader.py +++ b/src/common/tools/descriptor/Loader.py @@ -45,12 +45,13 @@ from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient from service.client.ServiceClient import ServiceClient from slice.client.SliceClient import SliceClient +from vnt_manager.client.VNTManagerClient import VNTManagerClient from .Tools import ( format_device_custom_config_rules, format_service_custom_config_rules, format_slice_custom_config_rules, get_descriptors_add_contexts, get_descriptors_add_services, get_descriptors_add_slices, get_descriptors_add_topologies, split_controllers_and_network_devices, - split_devices_by_rules + split_devices_by_rules, split_links_by_type ) LOGGER = logging.getLogger(__name__) @@ -112,7 +113,8 @@ class DescriptorLoader: self, descriptors : Optional[Union[str, Dict]] = None, descriptors_file : Optional[str] = None, num_workers : int = 1, context_client : Optional[ContextClient] = None, device_client : Optional[DeviceClient] = None, - service_client : Optional[ServiceClient] = None, slice_client : Optional[SliceClient] = None + service_client : Optional[ServiceClient] = None, slice_client : Optional[SliceClient] = None, + vntm_client : Optional[VNTManagerClient] = None ) -> None: if (descriptors is None) == (descriptors_file is None): # pylint: disable=broad-exception-raised @@ -190,10 +192,11 @@ class DescriptorLoader: self.__services_add = None self.__slices_add = None - self.__ctx_cli = ContextClient() if context_client is None else context_client - self.__dev_cli = DeviceClient() if device_client is None else device_client - self.__svc_cli = ServiceClient() if service_client is None else service_client - self.__slc_cli = SliceClient() if slice_client is None else slice_client + self.__ctx_cli = ContextClient() if context_client is None else context_client + self.__dev_cli = DeviceClient() if device_client is None else device_client + self.__svc_cli = ServiceClient() if service_client is None else service_client + self.__slc_cli = SliceClient() if slice_client is None else slice_client + self.__vnt_cli = VNTManagerClient() if vntm_client is None else vntm_client self.__results : TypeResults = list() @@ -351,22 +354,38 @@ class DescriptorLoader: controllers_add, network_devices_add = split_controllers_and_network_devices(self.__devices_add) + typed_links = split_links_by_type(self.__links) + typed_normal_links = typed_links.get('normal', list()) + typed_optical_links = typed_links.get('optical', list()) + typed_optical_links.extend(self.__optical_links) + typed_virtual_links = typed_links.get('virtual', list()) + self.__ctx_cli.connect() self.__dev_cli.connect() - self.__svc_cli.connect() - self.__slc_cli.connect() + if len(self.__services ) > 0: self.__svc_cli.connect() + if len(self.__slices ) > 0: self.__slc_cli.connect() + if len(typed_virtual_links) > 0: self.__vnt_cli.connect() self._process_descr('context', 'add', self.__ctx_cli.SetContext, Context, self.__contexts_add ) self._process_descr('topology', 'add', self.__ctx_cli.SetTopology, Topology, self.__topologies_add) self._process_descr('controller', 'add', self.__dev_cli.AddDevice, Device, controllers_add ) self._process_descr('device', 'add', self.__dev_cli.AddDevice, Device, network_devices_add ) self._process_descr('device', 'config', self.__dev_cli.ConfigureDevice, Device, self.__devices_config) - self._process_descr('link', 'add', self.__ctx_cli.SetLink, Link, self.__links ) - self._process_descr('link', 'add', self.__ctx_cli.SetOpticalLink, OpticalLink, self.__optical_links ) - self._process_descr('service', 'add', self.__svc_cli.CreateService, Service, self.__services_add ) - self._process_descr('service', 'update', self.__svc_cli.UpdateService, Service, self.__services ) - self._process_descr('slice', 'add', self.__slc_cli.CreateSlice, Slice, self.__slices_add ) - self._process_descr('slice', 'update', self.__slc_cli.UpdateSlice, Slice, self.__slices ) + self._process_descr('link', 'add', self.__ctx_cli.SetLink, Link, typed_normal_links ) + + if len(typed_optical_links) > 0: + self._process_descr('link', 'add', self.__ctx_cli.SetOpticalLink, OpticalLink, typed_optical_links ) + + if len(typed_virtual_links) > 0: + self._process_descr('link', 'add', self.__vnt_cli.SetVirtualLink, Link, typed_virtual_links ) + + if len(self.__services) > 0: + self._process_descr('service','add', self.__svc_cli.CreateService, Service, self.__services_add ) + self._process_descr('service','update', self.__svc_cli.UpdateService, Service, self.__services ) + + if len(self.__slices) > 0: + self._process_descr('slice', 'add', self.__slc_cli.CreateSlice, Slice, self.__slices_add ) + self._process_descr('slice', 'update', self.__slc_cli.UpdateSlice, Slice, self.__slices ) # By default the Context component automatically assigns devices and links to topologies based on their # endpoints, and assigns topologies, services, and slices to contexts based on their identifiers. @@ -467,10 +486,17 @@ class DescriptorLoader: def _unload_normal_mode(self) -> None: # Normal mode: follows the automated workflows in the different components + typed_links = split_links_by_type(self.links) + typed_normal_links = typed_links.get('normal', list()) + typed_optical_links = typed_links.get('optical', list()) + typed_optical_links.extend(self.optical_links) + typed_virtual_links = typed_links.get('virtual', list()) + self.__ctx_cli.connect() self.__dev_cli.connect() - self.__svc_cli.connect() - self.__slc_cli.connect() + if len(self.services ) > 0: self.__svc_cli.connect() + if len(self.slices ) > 0: self.__slc_cli.connect() + if len(typed_virtual_links) > 0: self.__vnt_cli.connect() for _, slice_list in self.slices.items(): for slice_ in slice_list: @@ -480,10 +506,13 @@ class DescriptorLoader: for service in service_list: self.__svc_cli.DeleteService(ServiceId(**service['service_id'])) - for optical_link in self.optical_links: + for virtual_link in typed_virtual_links: + self.__vnt_cli.RemoveVirtualLink(LinkId(**virtual_link['link_id'])) + + for optical_link in typed_optical_links: self.__ctx_cli.DeleteOpticalLink(LinkId(**optical_link['link_id'])) - for link in self.links: + for link in typed_normal_links: self.__ctx_cli.RemoveLink(LinkId(**link['link_id'])) for device in self.devices: diff --git a/src/common/tools/descriptor/Tools.py b/src/common/tools/descriptor/Tools.py index a6e39e95d..07bc18d31 100644 --- a/src/common/tools/descriptor/Tools.py +++ b/src/common/tools/descriptor/Tools.py @@ -12,10 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +import collections import copy, json from typing import Dict, List, Optional, Tuple, Union from common.DeviceTypes import DeviceTypeEnum -from common.proto.context_pb2 import DeviceDriverEnum +from common.proto.context_pb2 import DeviceDriverEnum, LinkTypeEnum def get_descriptors_add_contexts(contexts : List[Dict]) -> List[Dict]: contexts_add = copy.deepcopy(contexts) @@ -131,3 +132,30 @@ def split_controllers_and_network_devices(devices : List[Dict]) -> Tuple[List[Di else: network_devices.append(device) return controllers, network_devices + +def link_type_to_str(link_type : Union[int, str]) -> Optional[str]: + if isinstance(link_type, int): return LinkTypeEnum.Name(link_type) + if isinstance(link_type, str): return LinkTypeEnum.Name(LinkTypeEnum.Value(link_type)) + return None + +def split_links_by_type(links : List[Dict]) -> Dict[str, List[Dict]]: + typed_links = collections.defaultdict(list) + for link in links: + link_type = link.get('link_type', LinkTypeEnum.LINKTYPE_UNKNOWN) + str_link_type = link_type_to_str(link_type) + if str_link_type is None: + MSG = 'Unsupported LinkType in Link({:s})' + raise Exception(MSG.format(str(link))) + + link_type = LinkTypeEnum.Value(str_link_type) + if link_type in {LinkTypeEnum.LINKTYPE_UNKNOWN, LinkTypeEnum.LINKTYPE_COPPER, LinkTypeEnum.LINKTYPE_RADIO}: + typed_links['normal'].append(link) + elif link_type in {LinkTypeEnum.LINKTYPE_FIBER}: + typed_links['optical'].append(link) + elif link_type in {LinkTypeEnum.LINKTYPE_VIRTUAL}: + typed_links['virtual'].append(link) + else: + MSG = 'Unsupported LinkType({:s}) in Link({:s})' + raise Exception(MSG.format(str_link_type, str(link))) + + return typed_links -- GitLab From 886ebcc5ab205aa56232686a0040fd77e1ca6484 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sat, 15 Mar 2025 19:03:25 +0000 Subject: [PATCH 101/213] NBI service - VNT Recommendations: - Updated parsing of incomming kafka messages --- .../service/vntm_recommend/VntRecommThread.py | 54 ++++++++++--------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/nbi/service/vntm_recommend/VntRecommThread.py b/src/nbi/service/vntm_recommend/VntRecommThread.py index d52487513..bd9a452f3 100644 --- a/src/nbi/service/vntm_recommend/VntRecommThread.py +++ b/src/nbi/service/vntm_recommend/VntRecommThread.py @@ -13,8 +13,10 @@ # limitations under the License. import logging, socketio, threading +from typing import Dict, List from common.tools.kafka.Variables import KafkaConfig, KafkaTopic -from kafka import KafkaConsumer +from kafka import KafkaConsumer, TopicPartition +from kafka.consumer.fetcher import ConsumerRecord from .Constants import SIO_NAMESPACE, SIO_ROOM logging.getLogger('kafka.client').setLevel(logging.WARNING) @@ -55,32 +57,36 @@ class VntRecommThread(threading.Thread): LOGGER.info('[run] Subscribed') while not self._terminate.is_set(): - records = kafka_consumer.poll(timeout_ms=1000, max_records=1) - if len(records) == 0: continue # no pending messages... continuing + topic_records : Dict[TopicPartition, List[ConsumerRecord]] = \ + kafka_consumer.poll(timeout_ms=1000, max_records=1) + if len(topic_records) == 0: return # no pending records + self.process_topic_records(topic_records) - MSG = '[run] records={:s}' - LOGGER.debug(MSG.format(str(records))) - raise NotImplementedError('parse kafka records and extract recommendation') - - #if vntm_request.error(): - # if vntm_request.error().code() == KafkaError._PARTITION_EOF: continue - # MSG = '[run] Consumer error: {:s}' - # LOGGER.error(MSG.format(str(vntm_request.error()))) - # break - #message_key = vntm_request.key().decode('utf-8') - #message_value = vntm_request.value().decode('utf-8') - #MSG = '[run] Recommendation: key={:s} value={:s}' - #LOGGER.debug(MSG.format(str(message_key), str(message_value))) - # - #LOGGER.debug('[run] checking server namespace...') - #server : socketio.Server = self._namespace.server - #if server is None: continue - #LOGGER.debug('[run] emitting recommendation...') - #server.emit('recommendation', message_value, namespace=SIO_NAMESPACE, to=SIO_ROOM) - #LOGGER.debug('[run] emitted') - LOGGER.info('[run] Closing...') kafka_consumer.close() except: # pylint: disable=bare-except LOGGER.exception('[run] Unexpected Thread Exception') LOGGER.info('[run] Terminated') + + def process_topic_records( + self, topic_records : Dict[TopicPartition, List[ConsumerRecord]] + ) -> None: + MSG = '[process_topic_records] topic_records={:s}' + LOGGER.debug(MSG.format(str(topic_records))) + for topic, records in topic_records.items(): + if topic.topic == KafkaTopic.VNTMANAGER_REQUEST.value: + for record in records: self.emit_recommendation(record) + + def emit_recommendation(self, record : ConsumerRecord) -> None: + message_key = record.key.decode('utf-8') + message_value = record.value.decode('utf-8') + + MSG = '[emit_recommendation] Recommendation: key={:s} value={:s}' + LOGGER.debug(MSG.format(str(message_key), str(message_value))) + + LOGGER.debug('[emit_recommendation] checking server namespace...') + server : socketio.Server = self._namespace.server + if server is None: return + LOGGER.debug('[emit_recommendation] emitting recommendation...') + server.emit('recommendation', message_value, namespace=SIO_NAMESPACE, to=SIO_ROOM) + LOGGER.debug('[emit_recommendation] emitted') -- GitLab From b8e3120d839e9945fd05778174ace3b9c1f81e0c Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sat, 15 Mar 2025 19:04:16 +0000 Subject: [PATCH 102/213] OFC25 tests: - Updated deploy script --- src/tests/ofc25/deploy.sh | 96 +++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 49 deletions(-) diff --git a/src/tests/ofc25/deploy.sh b/src/tests/ofc25/deploy.sh index 0aff24885..d72254191 100755 --- a/src/tests/ofc25/deploy.sh +++ b/src/tests/ofc25/deploy.sh @@ -14,28 +14,26 @@ # limitations under the License. # ===== Check Microk8s is ready ============================== -microk8s status --wait-ready -kubectl get pods --all-namespaces +#microk8s status --wait-ready +#kubectl get pods --all-namespaces # ===== Cleanup old deployments ============================== -helm3 uninstall --namespace nats-e2e nats-e2e 2>/dev/null || true -helm3 uninstall --namespace nats-ip nats-ip 2>/dev/null || true -helm3 uninstall --namespace nats-opt nats-opt 2>/dev/null || true -helm3 uninstall --namespace nats nats 2>/dev/null || true -kubectl delete namespaces tfs tfs-ip tfs-opt tfs-e2e --ignore-not-found -kubectl delete namespaces qdb qdb-e2e qdb-opt qdb-ip --ignore-not-found -kubectl delete namespaces kafka kafka-ip kafka-opt kafka-e2e --ignore-not-found -kubectl delete namespaces nats nats-ip nats-opt nats-e2e --ignore-not-found - -kubectl delete -f src/tests/ofc25/nginx-ingress-controller-opt.yaml --ignore-not-found -kubectl delete -f src/tests/ofc25/nginx-ingress-controller-ip.yaml --ignore-not-found -kubectl delete -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml --ignore-not-found - -sleep 5 +#helm3 uninstall --namespace nats-e2e nats-e2e 2>/dev/null || true +#helm3 uninstall --namespace nats-ip nats-ip 2>/dev/null || true +#helm3 uninstall --namespace nats-opt nats-opt 2>/dev/null || true +#helm3 uninstall --namespace nats nats 2>/dev/null || true +#kubectl delete namespaces tfs tfs-ip tfs-opt tfs-e2e --ignore-not-found +#kubectl delete namespaces qdb qdb-e2e qdb-opt qdb-ip --ignore-not-found +#kubectl delete namespaces kafka kafka-ip kafka-opt kafka-e2e --ignore-not-found +#kubectl delete namespaces nats nats-ip nats-opt nats-e2e --ignore-not-found +#kubectl delete -f src/tests/ofc25/nginx-ingress-controller-opt.yaml --ignore-not-found +#kubectl delete -f src/tests/ofc25/nginx-ingress-controller-ip.yaml --ignore-not-found +#kubectl delete -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml --ignore-not-found +#sleep 5 # ===== Check Microk8s is ready ============================== -microk8s status --wait-ready -kubectl get pods --all-namespaces +#microk8s status --wait-ready +#kubectl get pods --all-namespaces # Configure TeraFlowSDN deployment # Uncomment if DEBUG log level is needed for the components @@ -49,9 +47,9 @@ kubectl get pods --all-namespaces #yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/vntmservice.yaml # Create secondary ingress controllers -kubectl apply -f src/tests/ofc25/nginx-ingress-controller-opt.yaml -kubectl apply -f src/tests/ofc25/nginx-ingress-controller-ip.yaml -kubectl apply -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml +#kubectl apply -f src/tests/ofc25/nginx-ingress-controller-opt.yaml +#kubectl apply -f src/tests/ofc25/nginx-ingress-controller-ip.yaml +#kubectl apply -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml cp manifests/contextservice.yaml manifests/contextservice.yaml.bak @@ -71,36 +69,36 @@ sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_opt_context"/}' manifest mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_opt.sh -## ===== Deploy IP TeraFlowSDN ============================== -#source src/tests/ofc25/deploy_specs_ip.sh -#cp manifests/contextservice.yaml.bak manifests/contextservice.yaml -#sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_ip_context"/}' manifests/contextservice.yaml -# -#./deploy/crdb.sh -#./deploy/nats.sh -#./deploy/kafka.sh -##./deploy/qdb.sh -##./deploy/expose_dashboard.sh -#./deploy/tfs.sh -#./deploy/show.sh -# -#mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_ip.sh +# ===== Deploy IP TeraFlowSDN ============================== +source src/tests/ofc25/deploy_specs_ip.sh +cp manifests/contextservice.yaml.bak manifests/contextservice.yaml +sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_ip_context"/}' manifests/contextservice.yaml +./deploy/crdb.sh +./deploy/nats.sh +./deploy/kafka.sh +#./deploy/qdb.sh +#./deploy/expose_dashboard.sh +./deploy/tfs.sh +./deploy/show.sh -## ===== Deploy End-to-End TeraFlowSDN ==================== -#source src/tests/ofc25/deploy_specs_e2e.sh -#cp manifests/contextservice.yaml.bak manifests/contextservice.yaml -#sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_e2e_context"/}' manifests/contextservice.yaml -# -#./deploy/crdb.sh -#./deploy/nats.sh -#./deploy/kafka.sh -##./deploy/qdb.sh -##./deploy/expose_dashboard.sh -#./deploy/tfs.sh -#./deploy/show.sh -# -#mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_e2e.sh +mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_ip.sh + + +# ===== Deploy End-to-End TeraFlowSDN ==================== +source src/tests/ofc25/deploy_specs_e2e.sh +cp manifests/contextservice.yaml.bak manifests/contextservice.yaml +sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_e2e_context"/}' manifests/contextservice.yaml + +./deploy/crdb.sh +./deploy/nats.sh +./deploy/kafka.sh +#./deploy/qdb.sh +#./deploy/expose_dashboard.sh +./deploy/tfs.sh +./deploy/show.sh + +mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_e2e.sh # ===== Recovering files ========================= -- GitLab From 0de242d59807a21d6e72ced5d65e767be070db04 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sat, 15 Mar 2025 19:05:42 +0000 Subject: [PATCH 103/213] Device component: - Improved TfsApiClient in L2 VPN, L3 VPN, Optical TFS - Cosmetic changes in L2 VPN, L3 VPN, Optical TFS --- src/device/service/drivers/__init__.py | 2 +- .../drivers/ietf_l2vpn/TfsApiClient.py | 58 ++---- .../{driver.py => IetfL3VpnDriver.py} | 171 +++++++----------- .../drivers/ietf_l3vpn/TfsApiClient.py | 107 +++++------ .../drivers/optical_tfs/OpticalTfsDriver.py | 49 +++-- .../drivers/optical_tfs/TfsApiClient.py | 9 +- src/device/tests/test_unitary_ietf_l3vpn.py | 2 +- 7 files changed, 169 insertions(+), 229 deletions(-) rename src/device/service/drivers/ietf_l3vpn/{driver.py => IetfL3VpnDriver.py} (67%) diff --git a/src/device/service/drivers/__init__.py b/src/device/service/drivers/__init__.py index 70ca1764f..2169881af 100644 --- a/src/device/service/drivers/__init__.py +++ b/src/device/service/drivers/__init__.py @@ -82,7 +82,7 @@ DRIVERS.append( ])) -from .ietf_l3vpn.driver import IetfL3VpnDriver # pylint: disable=wrong-import-position +from .ietf_l3vpn.IetfL3VpnDriver import IetfL3VpnDriver # pylint: disable=wrong-import-position DRIVERS.append( (IetfL3VpnDriver, [ { diff --git a/src/device/service/drivers/ietf_l2vpn/TfsApiClient.py b/src/device/service/drivers/ietf_l2vpn/TfsApiClient.py index dd6924de0..e9b21f249 100644 --- a/src/device/service/drivers/ietf_l2vpn/TfsApiClient.py +++ b/src/device/service/drivers/ietf_l2vpn/TfsApiClient.py @@ -13,21 +13,13 @@ # limitations under the License. import logging, requests -from requests.auth import HTTPBasicAuth from typing import Dict, List, Optional +from common.tools.client.RestClient import RestClient from device.service.driver_api.ImportTopologyEnum import ImportTopologyEnum -GET_DEVICES_URL = '{:s}://{:s}:{:d}/tfs-api/devices' -GET_LINKS_URL = '{:s}://{:s}:{:d}/tfs-api/links' - -TIMEOUT = 30 - -HTTP_OK_CODES = { - 200, # OK - 201, # Created - 202, # Accepted - 204, # No Content -} +GET_CONTEXT_IDS_URL = '/tfs-api/context_ids' +GET_DEVICES_URL = '/tfs-api/devices' +GET_LINKS_URL = '/tfs-api/links' MAPPING_STATUS = { 'DEVICEOPERATIONALSTATUS_UNDEFINED': 0, @@ -54,23 +46,23 @@ MAPPING_DRIVER = { 'DEVICEDRIVER_NCE' : 15, } -MSG_ERROR = 'Could not retrieve devices in remote TeraFlowSDN instance({:s}). status_code={:s} reply={:s}' - LOGGER = logging.getLogger(__name__) -class TfsApiClient: +class TfsApiClient(RestClient): def __init__( self, address : str, port : int, scheme : str = 'http', - username : Optional[str] = None, password : Optional[str] = None + username : Optional[str] = None, password : Optional[str] = None, + timeout : Optional[int] = 30 ) -> None: - self._devices_url = GET_DEVICES_URL.format(scheme, address, port) - self._links_url = GET_LINKS_URL.format(scheme, address, port) - self._auth = ( - HTTPBasicAuth(username, password) - if username is not None and password is not None - else None + super().__init__( + address, port, scheme=scheme, username=username, password=password, + timeout=timeout, verify_certs=False, allow_redirects=True, logger=LOGGER ) + def check_credentials(self) -> None: + self.get(GET_CONTEXT_IDS_URL, expected_status_codes={requests.codes['OK']}) + LOGGER.info('Credentials checked') + def get_devices_endpoints( self, import_topology : ImportTopologyEnum = ImportTopologyEnum.DEVICES ) -> List[Dict]: @@ -78,20 +70,14 @@ class TfsApiClient: MSG = '[get_devices_endpoints] import_topology={:s}' LOGGER.debug(MSG.format(str(import_topology))) - reply = requests.get(self._devices_url, timeout=TIMEOUT, verify=False, auth=self._auth) - if reply.status_code not in HTTP_OK_CODES: - msg = MSG_ERROR.format( - str(self._devices_url), str(reply.status_code), str(reply) - ) - LOGGER.error(msg) - raise Exception(msg) - if import_topology == ImportTopologyEnum.DISABLED: MSG = 'Unsupported import_topology mode: {:s}' raise Exception(MSG.format(str(import_topology))) + devices = self.get(GET_DEVICES_URL, expected_status_codes={requests.codes['OK']}) + result = list() - for json_device in reply.json()['devices']: + for json_device in devices['devices']: device_uuid : str = json_device['device_id']['device_uuid']['uuid'] device_type : str = json_device['device_type'] #if not device_type.startswith('emu-'): device_type = 'emu-' + device_type @@ -124,15 +110,9 @@ class TfsApiClient: LOGGER.debug('[get_devices_endpoints] devices only; returning') return result - reply = requests.get(self._links_url, timeout=TIMEOUT, verify=False, auth=self._auth) - if reply.status_code not in HTTP_OK_CODES: - msg = MSG_ERROR.format( - str(self._links_url), str(reply.status_code), str(reply) - ) - LOGGER.error(msg) - raise Exception(msg) + links = self.get(GET_LINKS_URL, expected_status_codes={requests.codes['OK']}) - for json_link in reply.json()['links']: + for json_link in links['links']: link_uuid : str = json_link['link_id']['link_uuid']['uuid'] link_url = '/links/link[{:s}]'.format(link_uuid) link_endpoint_ids = [ diff --git a/src/device/service/drivers/ietf_l3vpn/driver.py b/src/device/service/drivers/ietf_l3vpn/IetfL3VpnDriver.py similarity index 67% rename from src/device/service/drivers/ietf_l3vpn/driver.py rename to src/device/service/drivers/ietf_l3vpn/IetfL3VpnDriver.py index 2aca83b6a..7a7e33648 100644 --- a/src/device/service/drivers/ietf_l3vpn/driver.py +++ b/src/device/service/drivers/ietf_l3vpn/IetfL3VpnDriver.py @@ -1,4 +1,4 @@ -# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/) +# Copyright 2022-2024 ETSI 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. @@ -12,41 +12,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json -import logging -import re -import threading -from typing import Any, Iterator, List, Optional, Tuple, Union - -import anytree -import requests -from requests.auth import HTTPBasicAuth +import anytree, json, logging, re, requests, threading +from typing import Any, Iterator, List, Optional, Tuple, Union from common.method_wrappers.Decorator import MetricsPool, metered_subclass_method from common.type_checkers.Checkers import chk_length, chk_string, chk_type -from device.service.driver_api._Driver import ( - RESOURCE_ENDPOINTS, - RESOURCE_SERVICES, - _Driver, -) -from device.service.driver_api.AnyTreeTools import ( - TreeNode, - dump_subtree, - get_subnode, - set_subnode_value, -) -from device.service.driver_api.ImportTopologyEnum import ( - ImportTopologyEnum, - get_import_topology, -) - +from device.service.driver_api._Driver import _Driver, RESOURCE_ENDPOINTS, RESOURCE_SERVICES +from device.service.driver_api.AnyTreeTools import TreeNode, dump_subtree, get_subnode, set_subnode_value +from device.service.driver_api.ImportTopologyEnum import ImportTopologyEnum, get_import_topology from .Constants import SPECIAL_RESOURCE_MAPPINGS from .TfsApiClient import TfsApiClient from .Tools import compose_resource_endpoint LOGGER = logging.getLogger(__name__) - ALL_RESOURCE_KEYS = [ RESOURCE_ENDPOINTS, RESOURCE_SERVICES, @@ -57,40 +36,34 @@ RE_GET_ENDPOINT_FROM_INTERFACE = re.compile(r"^\/interface\[([^\]]+)\].*") RE_IETF_L3VPN_DATA = re.compile(r"^\/service\[[^\]]+\]\/IETFL3VPN$") RE_IETF_L3VPN_OPERATION = re.compile(r"^\/service\[[^\]]+\]\/IETFL3VPN\/operation$") -DRIVER_NAME = "ietf_l3vpn" -METRICS_POOL = MetricsPool("Device", "Driver", labels={"driver": DRIVER_NAME}) - +DRIVER_NAME = 'ietf_l3vpn' +METRICS_POOL = MetricsPool('Device', 'Driver', labels={'driver': DRIVER_NAME}) class IetfL3VpnDriver(_Driver): - def __init__(self, address: str, port: str, **settings) -> None: + def __init__(self, address : str, port : str, **settings) -> None: super().__init__(DRIVER_NAME, address, int(port), **settings) self.__lock = threading.Lock() self.__started = threading.Event() self.__terminate = threading.Event() - self.__running = TreeNode(".") - scheme = self.settings.get("scheme", "http") - username = self.settings.get("username") - password = self.settings.get("password") + self.__running = TreeNode('.') + username = self.settings.get('username') + password = self.settings.get('password') + scheme = self.settings.get('scheme', 'http') + timeout = int(self.settings.get('timeout', 60)) self.tac = TfsApiClient( - self.address, - self.port, - scheme=scheme, - username=username, - password=password, - ) - self.__auth = None - # ( - # HTTPBasicAuth(username, password) - # if username is not None and password is not None - # else None - # ) - self.__tfs_nbi_root = "{:s}://{:s}:{:d}".format( - scheme, self.address, int(self.port) - ) - self.__timeout = int(self.settings.get("timeout", 120)) - self.__import_topology = get_import_topology( - self.settings, default=ImportTopologyEnum.DEVICES + self.address, self.port, scheme=scheme, username=username, + password=password, timeout=timeout ) + #self.__tfs_nbi_root = "{:s}://{:s}:{:d}".format(scheme, self.address, int(self.port)) + + # Options are: + # disabled --> just import endpoints as usual + # devices --> imports sub-devices but not links connecting them. + # (a remotely-controlled transport domain might exist between them) + # topology --> imports sub-devices and links connecting them. + # (not supported by XR driver) + self.__import_topology = get_import_topology(self.settings, default=ImportTopologyEnum.DEVICES) + endpoints = self.settings.get("endpoints", []) endpoint_resources = [] for endpoint in endpoints: @@ -139,20 +112,12 @@ class IetfL3VpnDriver(_Driver): return results def Connect(self) -> bool: - url = ( - self.__tfs_nbi_root + "/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services" - ) with self.__lock: - if self.__started.is_set(): - return True + if self.__started.is_set(): return True try: - # requests.get(url, timeout=self.__timeout, auth=self.__auth) - ... - except requests.exceptions.Timeout: - LOGGER.exception("Timeout connecting {:s}".format(url)) - return False - except Exception: # pylint: disable=broad-except - LOGGER.exception("Exception connecting {:s}".format(url)) + self.tac.check_credentials() + except: # pylint: disable=bare-except + LOGGER.exception('Exception checking credentials') return False else: self.__started.set() @@ -170,50 +135,46 @@ class IetfL3VpnDriver(_Driver): @metered_subclass_method(METRICS_POOL) def GetConfig( - self, resource_keys: List[str] = [] + self, resource_keys : List[str] = [] ) -> List[Tuple[str, Union[Any, None, Exception]]]: - chk_type("resources", resource_keys, list) + chk_type('resources', resource_keys, list) + results = [] with self.__lock: - if len(resource_keys) == 0: - return dump_subtree(self.__running) - results = [] - resolver = anytree.Resolver(pathattr="name") + self.tac.check_credentials() + if len(resource_keys) == 0: resource_keys = ALL_RESOURCE_KEYS + #if len(resource_keys) == 0: + # return dump_subtree(self.__running) + resolver = anytree.Resolver(pathattr='name') for i, resource_key in enumerate(resource_keys): - str_resource_name = "resource_key[#{:d}]".format(i) + str_resource_name = 'resource_key[#{:d}]'.format(i) try: chk_string(str_resource_name, resource_key, allow_empty=False) - resource_key = SPECIAL_RESOURCE_MAPPINGS.get( - resource_key, resource_key - ) - resource_path = resource_key.split("/") - except Exception as e: # pylint: disable=broad-except - LOGGER.exception( - "Exception validating {:s}: {:s}".format( - str_resource_name, str(resource_key) + if resource_key == RESOURCE_ENDPOINTS: + # return endpoints through TFS NBI API and list-devices method + results.extend(self.tac.get_devices_endpoints(self.__import_topology)) + else: + resource_key = SPECIAL_RESOURCE_MAPPINGS.get( + resource_key, resource_key ) - ) - results.append( - (resource_key, e) - ) # if validation fails, store the exception - continue - - resource_node = get_subnode( - resolver, self.__running, resource_path, default=None - ) - # if not found, resource_node is None - if resource_node is None: - continue - results.extend(dump_subtree(resource_node)) - return results + resource_path = resource_key.split('/') + resource_node = get_subnode( + resolver, self.__running, resource_path, default=None + ) + # if not found, resource_node is None + if resource_node is None: continue + results.extend(dump_subtree(resource_node)) + except Exception as e: + MSG = 'Unhandled error processing {:s}: resource_key({:s})' + LOGGER.exception(MSG.format(str_resource_name, str(resource_key))) + results.append((resource_key, e)) return results @metered_subclass_method(METRICS_POOL) def SetConfig( - self, resources: List[Tuple[str, Any]] + self, resources : List[Tuple[str, Any]] ) -> List[Union[bool, Exception]]: results = [] - if len(resources) == 0: - return results + if len(resources) == 0: return results with self.__lock: for resource in resources: resource_key, resource_value = resource @@ -224,7 +185,7 @@ class IetfL3VpnDriver(_Driver): else: raise Exception("operation type not found in resources") for resource in resources: - LOGGER.info("resource = {:s}".format(str(resource))) + LOGGER.info('resource = {:s}'.format(str(resource))) resource_key, resource_value = resource if not RE_IETF_L3VPN_DATA.match(resource_key): continue @@ -261,7 +222,7 @@ class IetfL3VpnDriver(_Driver): @metered_subclass_method(METRICS_POOL) def DeleteConfig( - self, resources: List[Tuple[str, Any]] + self, resources : List[Tuple[str, Any]] ) -> List[Union[bool, Exception]]: results = [] if len(resources) == 0: @@ -290,20 +251,20 @@ class IetfL3VpnDriver(_Driver): @metered_subclass_method(METRICS_POOL) def SubscribeState( - self, subscriptions: List[Tuple[str, float, float]] + self, subscriptions : List[Tuple[str, float, float]] ) -> List[Union[bool, Exception]]: - # TODO: IETF L3VPN does not support monitoring by now + # TODO: does not support monitoring by now return [False for _ in subscriptions] @metered_subclass_method(METRICS_POOL) def UnsubscribeState( - self, subscriptions: List[Tuple[str, float, float]] + self, subscriptions : List[Tuple[str, float, float]] ) -> List[Union[bool, Exception]]: - # TODO: IETF L3VPN does not support monitoring by now + # TODO: does not support monitoring by now return [False for _ in subscriptions] def GetState( - self, blocking=False, terminate: Optional[threading.Event] = None + self, blocking=False, terminate : Optional[threading.Event] = None ) -> Iterator[Tuple[float, str, Any]]: - # TODO: IETF L3VPN does not support monitoring by now + # TODO: does not support monitoring by now return [] diff --git a/src/device/service/drivers/ietf_l3vpn/TfsApiClient.py b/src/device/service/drivers/ietf_l3vpn/TfsApiClient.py index 2db898059..6efe3712f 100644 --- a/src/device/service/drivers/ietf_l3vpn/TfsApiClient.py +++ b/src/device/service/drivers/ietf_l3vpn/TfsApiClient.py @@ -13,22 +13,14 @@ # limitations under the License. import logging, requests -from requests.auth import HTTPBasicAuth from typing import Dict, List, Optional +from common.tools.client.RestClient import RestClient from device.service.driver_api.ImportTopologyEnum import ImportTopologyEnum -GET_DEVICES_URL = '{:s}://{:s}:{:d}/tfs-api/devices' -GET_LINKS_URL = '{:s}://{:s}:{:d}/tfs-api/links' -L3VPN_URL = '{:s}://{:s}:{:d}/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' - -TIMEOUT = 30 - -HTTP_OK_CODES = { - 200, # OK - 201, # Created - 202, # Accepted - 204, # No Content -} +GET_CONTEXT_IDS_URL = '/tfs-api/context_ids' +GET_DEVICES_URL = '/tfs-api/devices' +GET_LINKS_URL = '/tfs-api/links' +L3VPN_URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' MAPPING_STATUS = { 'DEVICEOPERATIONALSTATUS_UNDEFINED': 0, @@ -55,24 +47,23 @@ MAPPING_DRIVER = { 'DEVICEDRIVER_NCE' : 15, } -MSG_ERROR = 'Could not retrieve devices in remote TeraFlowSDN instance({:s}). status_code={:s} reply={:s}' - LOGGER = logging.getLogger(__name__) -class TfsApiClient: +class TfsApiClient(RestClient): def __init__( self, address : str, port : int, scheme : str = 'http', - username : Optional[str] = None, password : Optional[str] = None + username : Optional[str] = None, password : Optional[str] = None, + timeout : Optional[int] = 30 ) -> None: - self._devices_url = GET_DEVICES_URL.format(scheme, address, port) - self._links_url = GET_LINKS_URL.format(scheme, address, port) - self._l3vpn_url = L3VPN_URL.format(scheme, address, port) - self._auth = ( - HTTPBasicAuth(username, password) - if username is not None and password is not None - else None + super().__init__( + address, port, scheme=scheme, username=username, password=password, + timeout=timeout, verify_certs=False, allow_redirects=True, logger=LOGGER ) + def check_credentials(self) -> None: + self.get(GET_CONTEXT_IDS_URL, expected_status_codes={requests.codes['OK']}) + LOGGER.info('Credentials checked') + def get_devices_endpoints( self, import_topology : ImportTopologyEnum = ImportTopologyEnum.DEVICES ) -> List[Dict]: @@ -80,20 +71,14 @@ class TfsApiClient: MSG = '[get_devices_endpoints] import_topology={:s}' LOGGER.debug(MSG.format(str(import_topology))) - reply = requests.get(self._devices_url, timeout=TIMEOUT, verify=False, auth=self._auth) - if reply.status_code not in HTTP_OK_CODES: - msg = MSG_ERROR.format( - str(self._devices_url), str(reply.status_code), str(reply) - ) - LOGGER.error(msg) - raise Exception(msg) - if import_topology == ImportTopologyEnum.DISABLED: MSG = 'Unsupported import_topology mode: {:s}' raise Exception(MSG.format(str(import_topology))) + devices = self.get(GET_DEVICES_URL, expected_status_codes={requests.codes['OK']}) + result = list() - for json_device in reply.json()['devices']: + for json_device in devices['devices']: device_uuid : str = json_device['device_id']['device_uuid']['uuid'] device_type : str = json_device['device_type'] #if not device_type.startswith('emu-'): device_type = 'emu-' + device_type @@ -126,15 +111,9 @@ class TfsApiClient: LOGGER.debug('[get_devices_endpoints] devices only; returning') return result - reply = requests.get(self._links_url, timeout=TIMEOUT, verify=False, auth=self._auth) - if reply.status_code not in HTTP_OK_CODES: - msg = MSG_ERROR.format( - str(self._links_url), str(reply.status_code), str(reply) - ) - LOGGER.error(msg) - raise Exception(msg) + links = self.get(GET_LINKS_URL, expected_status_codes={requests.codes['OK']}) - for json_link in reply.json()['links']: + for json_link in links['links']: link_uuid : str = json_link['link_id']['link_uuid']['uuid'] link_url = '/links/link[{:s}]'.format(link_uuid) link_endpoint_ids = [ @@ -154,29 +133,31 @@ class TfsApiClient: LOGGER.debug('[get_devices_endpoints] topology; returning') return result - def create_connectivity_service(self, l3vpn_data: dict) -> None: + def create_connectivity_service(self, l3vpn_data : dict) -> None: + MSG = '[create_connectivity_service] l3vpn_data={:s}' + LOGGER.debug(MSG.format(str(l3vpn_data))) try: - requests.post(self._l3vpn_url, json=l3vpn_data) - MSG = '[create_connectivity_service] l3vpn_data={:s}' - LOGGER.debug(MSG.format(str(l3vpn_data))) - except requests.exceptions.ConnectionError: - raise Exception('Failed to send POST request to TFS L3VPN NBI') - - def update_connectivity_service(self, l3vpn_data: dict) -> None: + self.post(L3VPN_URL, body=l3vpn_data) + except requests.exceptions.ConnectionError as e: + MSG = 'Failed to send POST request to TFS L3VPN NBI' + raise Exception(MSG) from e + + def update_connectivity_service(self, l3vpn_data : dict) -> None: + MSG = '[update_connectivity_service] l3vpn_data={:s}' + LOGGER.debug(MSG.format(str(l3vpn_data))) vpn_id = l3vpn_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] - url = self._l3vpn_url + f'/vpn-service={vpn_id}' try: - requests.put(url, json=l3vpn_data) - MSG = '[update_connectivity_service] l3vpn_data={:s}' - LOGGER.debug(MSG.format(str(l3vpn_data))) - except requests.exceptions.ConnectionError: - raise Exception('Failed to send PUT request to TFS L3VPN NBI') - - def delete_connectivity_service(self, service_uuid: str) -> None: - url = self._l3vpn_url + f'/vpn-service={service_uuid}' + self.put(L3VPN_URL + f'/vpn-service={vpn_id}', body=l3vpn_data) + except requests.exceptions.ConnectionError as e: + MSG = 'Failed to send PUT request to TFS L3VPN NBI' + raise Exception(MSG) from e + + def delete_connectivity_service(self, service_uuid : str) -> None: + url = L3VPN_URL + f'/vpn-service={service_uuid}' + MSG = '[delete_connectivity_service] url={:s}' + LOGGER.debug(MSG.format(str(url))) try: - requests.delete(url) - MSG = '[delete_connectivity_service] url={:s}' - LOGGER.debug(MSG.format(str(url))) - except requests.exceptions.ConnectionError: - raise Exception('Failed to send DELETE request to TFS L3VPN NBI') + self.delete(url) + except requests.exceptions.ConnectionError as e: + MSG = 'Failed to send DELETE request to TFS L3VPN NBI' + raise Exception(MSG) from e diff --git a/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py b/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py index 8af800454..8d7d95251 100644 --- a/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py +++ b/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. + import json, logging, threading from typing import Any, Iterator, List, Optional, Tuple, Union from common.method_wrappers.Decorator import MetricsPool, metered_subclass_method @@ -32,8 +33,8 @@ DRIVER_NAME = 'optical_tfs' METRICS_POOL = MetricsPool('Device', 'Driver', labels={'driver': DRIVER_NAME}) class OpticalTfsDriver(_Driver): - def __init__(self, address: str, port: int, **settings) -> None: - super().__init__(DRIVER_NAME, address, port, **settings) + def __init__(self, address : str, port : str, **settings) -> None: + super().__init__(DRIVER_NAME, address, int(port), **settings) self.__lock = threading.Lock() self.__started = threading.Event() self.__terminate = threading.Event() @@ -42,7 +43,7 @@ class OpticalTfsDriver(_Driver): scheme = self.settings.get('scheme', 'http') timeout = int(self.settings.get('timeout', 60)) self.tac = TfsApiClient( - self.address, int(self.port), scheme=scheme, username=username, + self.address, self.port, scheme=scheme, username=username, password=password, timeout=timeout ) self.toc = TfsOpticalClient( @@ -62,7 +63,7 @@ class OpticalTfsDriver(_Driver): with self.__lock: if self.__started.is_set(): return True try: - self.toc.check_credentials() + self.tac.check_credentials() except: # pylint: disable=bare-except LOGGER.exception('Exception checking credentials') return False @@ -81,11 +82,13 @@ class OpticalTfsDriver(_Driver): return [] @metered_subclass_method(METRICS_POOL) - def GetConfig(self, resource_keys : List[str] = []) -> List[Tuple[str, Union[Any, None, Exception]]]: + def GetConfig( + self, resource_keys : List[str] = [] + ) -> List[Tuple[str, Union[Any, None, Exception]]]: chk_type('resources', resource_keys, list) results = [] with self.__lock: - self.toc.check_credentials() + self.tac.check_credentials() if len(resource_keys) == 0: resource_keys = ALL_RESOURCE_KEYS for i, resource_key in enumerate(resource_keys): str_resource_name = 'resource_key[#{:d}]'.format(i) @@ -96,24 +99,28 @@ class OpticalTfsDriver(_Driver): results.extend(self.tac.get_devices_endpoints(self.__import_topology)) elif resource_key == RESOURCE_SERVICES: # return all services through - results.extend(self.toc.get_lightpaths()) + #results.extend(self.toc.get_lightpaths()) + pass else: MSG = 'ResourceKey({:s}) not implemented' LOGGER.warning(MSG.format(str(resource_key))) except Exception as e: - LOGGER.exception('Unhandled error processing resource_key({:s})'.format(str(resource_key))) + MSG = 'Unhandled error processing {:s}: resource_key({:s})' + LOGGER.exception(MSG.format(str_resource_name, str(resource_key))) results.append((resource_key, e)) return results @metered_subclass_method(METRICS_POOL) - def SetConfig(self, resources: List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: + def SetConfig( + self, resources : List[Tuple[str, Any]] + ) -> List[Union[bool, Exception]]: results = [] if len(resources) == 0: return results with self.__lock: - self.toc.check_credentials() + self.tac.check_credentials() for resource in resources: LOGGER.info('resource = {:s}'.format(str(resource))) - resource_key,resource_value = resource + resource_key, resource_value = resource try: resource_value = json.loads(resource_value) src_node = resource_value['src_node'] @@ -127,11 +134,13 @@ class OpticalTfsDriver(_Driver): return results @metered_subclass_method(METRICS_POOL) - def DeleteConfig(self, resources: List[Tuple[str, Any]]) -> List[Union[bool, Exception]]: + def DeleteConfig( + self, resources : List[Tuple[str, Any]] + ) -> List[Union[bool, Exception]]: results = [] if len(resources) == 0: return results with self.__lock: - self.toc.check_credentials() + self.tac.check_credentials() for resource in resources: LOGGER.info('resource = {:s}'.format(str(resource))) resource_key,resource_value = resource @@ -149,17 +158,21 @@ class OpticalTfsDriver(_Driver): return results @metered_subclass_method(METRICS_POOL) - def SubscribeState(self, subscriptions : List[Tuple[str, float, float]]) -> List[Union[bool, Exception]]: - # TODO: Optical TFS does not support monitoring by now + def SubscribeState( + self, subscriptions : List[Tuple[str, float, float]] + ) -> List[Union[bool, Exception]]: + # TODO: does not support monitoring by now return [False for _ in subscriptions] @metered_subclass_method(METRICS_POOL) - def UnsubscribeState(self, subscriptions : List[Tuple[str, float, float]]) -> List[Union[bool, Exception]]: - # TODO: Optical TFS does not support monitoring by now + def UnsubscribeState( + self, subscriptions : List[Tuple[str, float, float]] + ) -> List[Union[bool, Exception]]: + # TODO: does not support monitoring by now return [False for _ in subscriptions] def GetState( self, blocking=False, terminate : Optional[threading.Event] = None ) -> Iterator[Tuple[float, str, Any]]: - # TODO: Optical TFS does not support monitoring by now + # TODO: does not support monitoring by now return [] diff --git a/src/device/service/drivers/optical_tfs/TfsApiClient.py b/src/device/service/drivers/optical_tfs/TfsApiClient.py index 8df8e5261..e9b21f249 100644 --- a/src/device/service/drivers/optical_tfs/TfsApiClient.py +++ b/src/device/service/drivers/optical_tfs/TfsApiClient.py @@ -17,8 +17,9 @@ from typing import Dict, List, Optional from common.tools.client.RestClient import RestClient from device.service.driver_api.ImportTopologyEnum import ImportTopologyEnum -GET_DEVICES_URL = '/tfs-api/devices' -GET_LINKS_URL = '/tfs-api/links' +GET_CONTEXT_IDS_URL = '/tfs-api/context_ids' +GET_DEVICES_URL = '/tfs-api/devices' +GET_LINKS_URL = '/tfs-api/links' MAPPING_STATUS = { 'DEVICEOPERATIONALSTATUS_UNDEFINED': 0, @@ -58,6 +59,10 @@ class TfsApiClient(RestClient): timeout=timeout, verify_certs=False, allow_redirects=True, logger=LOGGER ) + def check_credentials(self) -> None: + self.get(GET_CONTEXT_IDS_URL, expected_status_codes={requests.codes['OK']}) + LOGGER.info('Credentials checked') + def get_devices_endpoints( self, import_topology : ImportTopologyEnum = ImportTopologyEnum.DEVICES ) -> List[Dict]: diff --git a/src/device/tests/test_unitary_ietf_l3vpn.py b/src/device/tests/test_unitary_ietf_l3vpn.py index 728ca6913..f9f7ae990 100644 --- a/src/device/tests/test_unitary_ietf_l3vpn.py +++ b/src/device/tests/test_unitary_ietf_l3vpn.py @@ -3,7 +3,7 @@ from json import dumps import requests -from device.service.drivers.ietf_l3vpn.driver import IetfL3VpnDriver +from device.service.drivers.ietf_l3vpn.IetfL3VpnDriver import IetfL3VpnDriver from device.service.Tools import RESOURCE_ENDPOINTS settings = { -- GitLab From 2f8ef6dd74739d76de8f5856dd6ab1de96ca8a8b Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sat, 15 Mar 2025 19:06:31 +0000 Subject: [PATCH 104/213] End-to-end Orchestrator: - Implemented Subscription to newly discovered controllers --- src/e2e_orchestrator/requirements.in | 5 +- .../E2EOrchestratorServiceServicerImpl.py | 222 ++------------- .../service/SubscriptionServer.py | 162 +++++++++++ src/e2e_orchestrator/service/TopologyTools.py | 37 +++ src/e2e_orchestrator/service/__main__.py | 13 +- .../old_E2EOrchestratorServiceServicerImpl.py | 268 ++++++++++++++++++ .../ControllerDiscovererThread.py | 100 +++++++ .../RecommendationsClientNamespace.py | 40 +++ .../service/subscriptions/Subscription.py | 71 +++++ .../service/subscriptions/Subscriptions.py | 47 +++ .../subscriptions/TFSControllerSettings.py | 72 +++++ .../service/subscriptions/__init__.py | 13 + 12 files changed, 844 insertions(+), 206 deletions(-) create mode 100644 src/e2e_orchestrator/service/SubscriptionServer.py create mode 100644 src/e2e_orchestrator/service/TopologyTools.py create mode 100644 src/e2e_orchestrator/service/old_E2EOrchestratorServiceServicerImpl.py create mode 100644 src/e2e_orchestrator/service/subscriptions/ControllerDiscovererThread.py create mode 100644 src/e2e_orchestrator/service/subscriptions/RecommendationsClientNamespace.py create mode 100644 src/e2e_orchestrator/service/subscriptions/Subscription.py create mode 100644 src/e2e_orchestrator/service/subscriptions/Subscriptions.py create mode 100644 src/e2e_orchestrator/service/subscriptions/TFSControllerSettings.py create mode 100644 src/e2e_orchestrator/service/subscriptions/__init__.py diff --git a/src/e2e_orchestrator/requirements.in b/src/e2e_orchestrator/requirements.in index 53f9028a7..2b34cad18 100644 --- a/src/e2e_orchestrator/requirements.in +++ b/src/e2e_orchestrator/requirements.in @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -networkx -websockets==12.0 +networkx==3.2.1 +python-socketio==5.12.1 requests==2.27.* +#websockets==12.0 diff --git a/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py b/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py index 4878d4788..2284abe4c 100644 --- a/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py +++ b/src/e2e_orchestrator/service/E2EOrchestratorServiceServicerImpl.py @@ -12,229 +12,49 @@ # See the License for the specific language governing permissions and # limitations under the License. -import copy, grpc, json, logging, networkx, requests, threading +import copy, grpc, logging, networkx from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method from common.proto.e2eorchestrator_pb2 import E2EOrchestratorRequest, E2EOrchestratorReply -from common.proto.context_pb2 import ( - Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, Topology, Context, Service, ServiceId, - ServiceTypeEnum, ServiceStatusEnum) +from common.proto.context_pb2 import Empty, Connection, EndPointId from common.proto.e2eorchestrator_pb2_grpc import E2EOrchestratorServiceServicer -from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest -from common.tools.grpc.Tools import grpc_message_to_json_string -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME -from common.Settings import get_setting from context.client.ContextClient import ContextClient from context.service.database.uuids.EndPoint import endpoint_get_uuid -from context.service.database.uuids.Device import device_get_uuid -from service.client.ServiceClient import ServiceClient -from websockets.sync.client import connect -from websockets.sync.server import serve - LOGGER = logging.getLogger(__name__) -logging.getLogger("websockets").propagate = True -logging.getLogger("requests.packages.urllib3").propagate = True METRICS_POOL = MetricsPool("E2EOrchestrator", "RPC") - -context_client: ContextClient = ContextClient() -service_client: ServiceClient = ServiceClient() - -EXT_HOST = str(get_setting('WS_IP_HOST')) -EXT_PORT = int(get_setting('WS_IP_PORT')) -EXT_URL = 'ws://{:s}:{:d}'.format(EXT_HOST, EXT_PORT) - -OWN_HOST = str(get_setting('WS_E2E_HOST')) -OWN_PORT = int(get_setting('WS_E2E_PORT')) - -ALL_HOSTS = '0.0.0.0' - -class SubscriptionServer(threading.Thread): - def run(self): - request = VNTSubscriptionRequest() - request.host = OWN_HOST - request.port = OWN_PORT - try: - LOGGER.debug('Trying to connect to {:s}'.format(EXT_URL)) - websocket = connect(EXT_URL) - except: # pylint: disable=bare-except - LOGGER.exception('Error connecting to {:s}'.format(EXT_URL)) - else: - with websocket: - LOGGER.debug('Connected to {:s}'.format(EXT_URL)) - send = grpc_message_to_json_string(request) - websocket.send(send) - LOGGER.debug('Sent: {:s}'.format(send)) - try: - message = websocket.recv() - LOGGER.debug('Received message from WebSocket: {:s}'.format(message)) - except Exception as ex: - LOGGER.error('Exception receiving from WebSocket: {:s}'.format(ex)) - self._events_server() - - - def _events_server(self): - try: - server = serve(self._event_received, ALL_HOSTS, int(OWN_PORT)) - except: # pylint: disable=bare-except - LOGGER.exception('Error starting server on {:s}:{:d}'.format(ALL_HOSTS, OWN_PORT)) - else: - with server: - LOGGER.info('Running events server...: {:s}:{:d}'.format(ALL_HOSTS, OWN_PORT)) - server.serve_forever() - - - def _event_received(self, connection): - LOGGER.debug('Event received') - for message in connection: - message_json = json.loads(message) - - # Link creation - if 'link_id' in message_json: - LOGGER.debug('Link creation') - link = Link(**message_json) - - service = Service() - service.service_id.service_uuid.uuid = link.link_id.link_uuid.uuid - service.service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME - service.service_type = ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY - service.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED - service_client.CreateService(service) - - a_device_uuid = device_get_uuid(link.link_endpoint_ids[0].device_id) - a_endpoint_uuid = endpoint_get_uuid(link.link_endpoint_ids[0])[2] - z_device_uuid = device_get_uuid(link.link_endpoint_ids[1].device_id) - z_endpoint_uuid = endpoint_get_uuid(link.link_endpoint_ids[1])[2] - - links = context_client.ListLinks(Empty()).links - for _link in links: - for _endpoint_id in _link.link_endpoint_ids: - if _endpoint_id.device_id.device_uuid.uuid == a_device_uuid and \ - _endpoint_id.endpoint_uuid.uuid == a_endpoint_uuid: - a_ep_id = _endpoint_id - elif _endpoint_id.device_id.device_uuid.uuid == z_device_uuid and \ - _endpoint_id.endpoint_uuid.uuid == z_endpoint_uuid: - z_ep_id = _endpoint_id - - if (not 'a_ep_id' in locals()) or (not 'z_ep_id' in locals()): - error_msg = f'Could not get VNT link endpoints\ - \n\ta_endpoint_uuid= {a_endpoint_uuid}\ - \n\tz_endpoint_uuid= {z_device_uuid}' - LOGGER.error(error_msg) - connection.send(error_msg) - return - - service.service_endpoint_ids.append(copy.deepcopy(a_ep_id)) - service.service_endpoint_ids.append(copy.deepcopy(z_ep_id)) - - service_client.UpdateService(service) - re_svc = context_client.GetService(service.service_id) - connection.send(grpc_message_to_json_string(link)) - context_client.SetLink(link) - elif 'link_uuid' in message_json: - LOGGER.debug('Link removal') - link_id = LinkId(**message_json) - - service_id = ServiceId() - service_id.service_uuid.uuid = link_id.link_uuid.uuid - service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME - service_client.DeleteService(service_id) - connection.send(grpc_message_to_json_string(link_id)) - context_client.RemoveLink(link_id) - else: - LOGGER.debug('Topology received') - topology_details = TopologyDetails(**message_json) - - context = Context() - context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid - context_client.SetContext(context) - - topology = Topology() - topology.topology_id.context_id.CopyFrom(context.context_id) - topology.topology_id.topology_uuid.uuid = topology_details.topology_id.topology_uuid.uuid - context_client.SetTopology(topology) - - for device in topology_details.devices: - context_client.SetDevice(device) - - for link in topology_details.links: - context_client.SetLink(link) - - - class E2EOrchestratorServiceServicerImpl(E2EOrchestratorServiceServicer): def __init__(self): LOGGER.debug('Creating Servicer...') - try: - LOGGER.debug('Requesting subscription') - sub_server = SubscriptionServer() - sub_server.start() - LOGGER.debug('Servicer Created') - self.retrieve_external_topologies() - except: - LOGGER.exception('Unhandled Exception') - - def retrieve_external_topologies(self): - i = 1 - while True: - try: - ADD = str(get_setting(f'EXT_CONTROLLER{i}_ADD')) - PORT = int(get_setting(f'EXT_CONTROLLER{i}_PORT')) - except: # pylint: disable=bare-except - break + LOGGER.debug('Servicer Created') - try: - LOGGER.info('Retrieving external controller #{:d}'.format(i)) - url = 'http://{:s}:{:d}/tfs-api/context/{:s}/topology_details/{:s}'.format( - ADD, PORT, DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME - ) - LOGGER.info('url={:s}'.format(str(url))) - topo = requests.get(url).json() - LOGGER.info('Retrieved external controller #{:d}'.format(i)) - except: # pylint: disable=bare-except - LOGGER.exception('Exception retrieven topology from external controler #{:d}'.format(i)) - - topology_details = TopologyDetails(**topo) - context = Context() - context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid - context_client.SetContext(context) - - topology = Topology() - topology.topology_id.context_id.CopyFrom(context.context_id) - topology.topology_id.topology_uuid.uuid = topology_details.topology_id.topology_uuid.uuid - context_client.SetTopology(topology) - - for device in topology_details.devices: - context_client.SetDevice(device) - - for link in topology_details.links: - context_client.SetLink(link) - - i+=1 - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def Compute(self, request: E2EOrchestratorRequest, context: grpc.ServicerContext) -> E2EOrchestratorReply: - endpoints_ids = [] - for endpoint_id in request.service.service_endpoint_ids: - endpoints_ids.append(endpoint_get_uuid(endpoint_id)[2]) + def Compute( + self, request: E2EOrchestratorRequest, context: grpc.ServicerContext + ) -> E2EOrchestratorReply: + endpoints_ids = [ + endpoint_get_uuid(endpoint_id)[2] + for endpoint_id in request.service.service_endpoint_ids + ] graph = networkx.Graph() + context_client = ContextClient() devices = context_client.ListDevices(Empty()).devices - for device in devices: - endpoints_uuids = [endpoint.endpoint_id.endpoint_uuid.uuid - for endpoint in device.device_endpoints] + endpoints_uuids = [ + endpoint.endpoint_id.endpoint_uuid.uuid + for endpoint in device.device_endpoints + ] for ep in endpoints_uuids: graph.add_node(ep) - for ep in endpoints_uuids: - for ep_i in endpoints_uuids: - if ep == ep_i: + for ep_i in endpoints_uuids: + for ep_j in endpoints_uuids: + if ep_i == ep_j: continue - graph.add_edge(ep, ep_i) + graph.add_edge(ep_i, ep_j) links = context_client.ListLinks(Empty()).links for link in links: @@ -244,7 +64,9 @@ class E2EOrchestratorServiceServicerImpl(E2EOrchestratorServiceServicer): graph.add_edge(eps[0], eps[1]) - shortest = networkx.shortest_path(graph, endpoints_ids[0], endpoints_ids[1]) + shortest = networkx.shortest_path( + graph, endpoints_ids[0], endpoints_ids[1] + ) path = E2EOrchestratorReply() path.services.append(copy.deepcopy(request.service)) diff --git a/src/e2e_orchestrator/service/SubscriptionServer.py b/src/e2e_orchestrator/service/SubscriptionServer.py new file mode 100644 index 000000000..ab1c37dbd --- /dev/null +++ b/src/e2e_orchestrator/service/SubscriptionServer.py @@ -0,0 +1,162 @@ +# Copyright 2022-2024 ETSI 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 copy, grpc, json, logging, networkx, requests, threading +from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method +from common.proto.e2eorchestrator_pb2 import E2EOrchestratorRequest, E2EOrchestratorReply +from common.proto.context_pb2 import ( + Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, Topology, Context, Service, ServiceId, + ServiceTypeEnum, ServiceStatusEnum) +from common.proto.e2eorchestrator_pb2_grpc import E2EOrchestratorServiceServicer +from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest +from common.tools.grpc.Tools import grpc_message_to_json_string +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.Settings import get_setting +from context.client.ContextClient import ContextClient +from context.service.database.uuids.EndPoint import endpoint_get_uuid +from context.service.database.uuids.Device import device_get_uuid +from service.client.ServiceClient import ServiceClient +from websockets.sync.client import connect +from websockets.sync.server import serve + + +LOGGER = logging.getLogger(__name__) +logging.getLogger("websockets").propagate = True +logging.getLogger("requests.packages.urllib3").propagate = True + +METRICS_POOL = MetricsPool("E2EOrchestrator", "RPC") + + +context_client: ContextClient = ContextClient() +service_client: ServiceClient = ServiceClient() + +EXT_HOST = str(get_setting('WS_IP_HOST')) +EXT_PORT = int(get_setting('WS_IP_PORT')) +EXT_URL = 'ws://{:s}:{:d}'.format(EXT_HOST, EXT_PORT) + +OWN_HOST = str(get_setting('WS_E2E_HOST')) +OWN_PORT = int(get_setting('WS_E2E_PORT')) + +ALL_HOSTS = '0.0.0.0' + +class SubscriptionServer(threading.Thread): + def run(self): + request = VNTSubscriptionRequest() + request.host = OWN_HOST + request.port = OWN_PORT + try: + LOGGER.debug('Trying to connect to {:s}'.format(EXT_URL)) + websocket = connect(EXT_URL) + except: # pylint: disable=bare-except + LOGGER.exception('Error connecting to {:s}'.format(EXT_URL)) + else: + with websocket: + LOGGER.debug('Connected to {:s}'.format(EXT_URL)) + send = grpc_message_to_json_string(request) + websocket.send(send) + LOGGER.debug('Sent: {:s}'.format(send)) + try: + message = websocket.recv() + LOGGER.debug('Received message from WebSocket: {:s}'.format(message)) + except Exception as ex: + LOGGER.error('Exception receiving from WebSocket: {:s}'.format(ex)) + self._events_server() + + + def _events_server(self): + try: + server = serve(self._event_received, ALL_HOSTS, int(OWN_PORT)) + except: # pylint: disable=bare-except + LOGGER.exception('Error starting server on {:s}:{:d}'.format(ALL_HOSTS, OWN_PORT)) + else: + with server: + LOGGER.info('Running events server...: {:s}:{:d}'.format(ALL_HOSTS, OWN_PORT)) + server.serve_forever() + + + def _event_received(self, connection): + LOGGER.debug('Event received') + for message in connection: + message_json = json.loads(message) + + # Link creation + if 'link_id' in message_json: + LOGGER.debug('Link creation') + link = Link(**message_json) + + service = Service() + service.service_id.service_uuid.uuid = link.link_id.link_uuid.uuid + service.service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME + service.service_type = ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY + service.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED + service_client.CreateService(service) + + a_device_uuid = device_get_uuid(link.link_endpoint_ids[0].device_id) + a_endpoint_uuid = endpoint_get_uuid(link.link_endpoint_ids[0])[2] + z_device_uuid = device_get_uuid(link.link_endpoint_ids[1].device_id) + z_endpoint_uuid = endpoint_get_uuid(link.link_endpoint_ids[1])[2] + + links = context_client.ListLinks(Empty()).links + for _link in links: + for _endpoint_id in _link.link_endpoint_ids: + if _endpoint_id.device_id.device_uuid.uuid == a_device_uuid and \ + _endpoint_id.endpoint_uuid.uuid == a_endpoint_uuid: + a_ep_id = _endpoint_id + elif _endpoint_id.device_id.device_uuid.uuid == z_device_uuid and \ + _endpoint_id.endpoint_uuid.uuid == z_endpoint_uuid: + z_ep_id = _endpoint_id + + if (not 'a_ep_id' in locals()) or (not 'z_ep_id' in locals()): + error_msg = f'Could not get VNT link endpoints\ + \n\ta_endpoint_uuid= {a_endpoint_uuid}\ + \n\tz_endpoint_uuid= {z_device_uuid}' + LOGGER.error(error_msg) + connection.send(error_msg) + return + + service.service_endpoint_ids.append(copy.deepcopy(a_ep_id)) + service.service_endpoint_ids.append(copy.deepcopy(z_ep_id)) + + service_client.UpdateService(service) + re_svc = context_client.GetService(service.service_id) + connection.send(grpc_message_to_json_string(link)) + context_client.SetLink(link) + elif 'link_uuid' in message_json: + LOGGER.debug('Link removal') + link_id = LinkId(**message_json) + + service_id = ServiceId() + service_id.service_uuid.uuid = link_id.link_uuid.uuid + service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME + service_client.DeleteService(service_id) + connection.send(grpc_message_to_json_string(link_id)) + context_client.RemoveLink(link_id) + else: + LOGGER.debug('Topology received') + topology_details = TopologyDetails(**message_json) + + context = Context() + context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid + context_client.SetContext(context) + + topology = Topology() + topology.topology_id.context_id.CopyFrom(context.context_id) + topology.topology_id.topology_uuid.uuid = topology_details.topology_id.topology_uuid.uuid + context_client.SetTopology(topology) + + for device in topology_details.devices: + context_client.SetDevice(device) + + for link in topology_details.links: + context_client.SetLink(link) diff --git a/src/e2e_orchestrator/service/TopologyTools.py b/src/e2e_orchestrator/service/TopologyTools.py new file mode 100644 index 000000000..eaa0e2dbb --- /dev/null +++ b/src/e2e_orchestrator/service/TopologyTools.py @@ -0,0 +1,37 @@ + def retrieve_external_topologies(self): + i = 1 + while True: + try: + ADD = str(get_setting(f'EXT_CONTROLLER{i}_ADD')) + PORT = int(get_setting(f'EXT_CONTROLLER{i}_PORT')) + except: # pylint: disable=bare-except + break + + try: + LOGGER.info('Retrieving external controller #{:d}'.format(i)) + url = 'http://{:s}:{:d}/tfs-api/context/{:s}/topology_details/{:s}'.format( + ADD, PORT, DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME + ) + LOGGER.info('url={:s}'.format(str(url))) + topo = requests.get(url).json() + LOGGER.info('Retrieved external controller #{:d}'.format(i)) + except: # pylint: disable=bare-except + LOGGER.exception('Exception retrieven topology from external controler #{:d}'.format(i)) + + topology_details = TopologyDetails(**topo) + context = Context() + context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid + context_client.SetContext(context) + + topology = Topology() + topology.topology_id.context_id.CopyFrom(context.context_id) + topology.topology_id.topology_uuid.uuid = topology_details.topology_id.topology_uuid.uuid + context_client.SetTopology(topology) + + for device in topology_details.devices: + context_client.SetDevice(device) + + for link in topology_details.links: + context_client.SetLink(link) + + i+=1 diff --git a/src/e2e_orchestrator/service/__main__.py b/src/e2e_orchestrator/service/__main__.py index 4c0a6d471..d984add76 100644 --- a/src/e2e_orchestrator/service/__main__.py +++ b/src/e2e_orchestrator/service/__main__.py @@ -24,6 +24,7 @@ from common.Settings import (ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, get_log_level, get_metrics_port, wait_for_environment_variables) +from e2e_orchestrator.service.subscriptions.ControllerDiscovererThread import ControllerDiscoverer from .E2EOrchestratorService import E2EOrchestratorService @@ -49,17 +50,21 @@ def main(): metrics_port = get_metrics_port() start_http_server(metrics_port) - # Starting CentralizedCybersecurity service grpc_service = E2EOrchestratorService() grpc_service.start() - LOGGER.info("Started...") - # Wait for Ctrl+C or termination signal + controller_discoverer = ControllerDiscoverer( + terminate=terminate + ) + controller_discoverer.start() + + LOGGER.info("Running...") + # Wait for Ctrl+C or termination signal while not terminate.wait(timeout=1): pass - LOGGER.info("Terminating...") + controller_discoverer.stop() grpc_service.stop() LOGGER.info("Bye") diff --git a/src/e2e_orchestrator/service/old_E2EOrchestratorServiceServicerImpl.py b/src/e2e_orchestrator/service/old_E2EOrchestratorServiceServicerImpl.py new file mode 100644 index 000000000..4878d4788 --- /dev/null +++ b/src/e2e_orchestrator/service/old_E2EOrchestratorServiceServicerImpl.py @@ -0,0 +1,268 @@ +# Copyright 2022-2024 ETSI 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 copy, grpc, json, logging, networkx, requests, threading +from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method +from common.proto.e2eorchestrator_pb2 import E2EOrchestratorRequest, E2EOrchestratorReply +from common.proto.context_pb2 import ( + Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, Topology, Context, Service, ServiceId, + ServiceTypeEnum, ServiceStatusEnum) +from common.proto.e2eorchestrator_pb2_grpc import E2EOrchestratorServiceServicer +from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest +from common.tools.grpc.Tools import grpc_message_to_json_string +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.Settings import get_setting +from context.client.ContextClient import ContextClient +from context.service.database.uuids.EndPoint import endpoint_get_uuid +from context.service.database.uuids.Device import device_get_uuid +from service.client.ServiceClient import ServiceClient +from websockets.sync.client import connect +from websockets.sync.server import serve + + +LOGGER = logging.getLogger(__name__) +logging.getLogger("websockets").propagate = True +logging.getLogger("requests.packages.urllib3").propagate = True + +METRICS_POOL = MetricsPool("E2EOrchestrator", "RPC") + + +context_client: ContextClient = ContextClient() +service_client: ServiceClient = ServiceClient() + +EXT_HOST = str(get_setting('WS_IP_HOST')) +EXT_PORT = int(get_setting('WS_IP_PORT')) +EXT_URL = 'ws://{:s}:{:d}'.format(EXT_HOST, EXT_PORT) + +OWN_HOST = str(get_setting('WS_E2E_HOST')) +OWN_PORT = int(get_setting('WS_E2E_PORT')) + +ALL_HOSTS = '0.0.0.0' + +class SubscriptionServer(threading.Thread): + def run(self): + request = VNTSubscriptionRequest() + request.host = OWN_HOST + request.port = OWN_PORT + try: + LOGGER.debug('Trying to connect to {:s}'.format(EXT_URL)) + websocket = connect(EXT_URL) + except: # pylint: disable=bare-except + LOGGER.exception('Error connecting to {:s}'.format(EXT_URL)) + else: + with websocket: + LOGGER.debug('Connected to {:s}'.format(EXT_URL)) + send = grpc_message_to_json_string(request) + websocket.send(send) + LOGGER.debug('Sent: {:s}'.format(send)) + try: + message = websocket.recv() + LOGGER.debug('Received message from WebSocket: {:s}'.format(message)) + except Exception as ex: + LOGGER.error('Exception receiving from WebSocket: {:s}'.format(ex)) + self._events_server() + + + def _events_server(self): + try: + server = serve(self._event_received, ALL_HOSTS, int(OWN_PORT)) + except: # pylint: disable=bare-except + LOGGER.exception('Error starting server on {:s}:{:d}'.format(ALL_HOSTS, OWN_PORT)) + else: + with server: + LOGGER.info('Running events server...: {:s}:{:d}'.format(ALL_HOSTS, OWN_PORT)) + server.serve_forever() + + + def _event_received(self, connection): + LOGGER.debug('Event received') + for message in connection: + message_json = json.loads(message) + + # Link creation + if 'link_id' in message_json: + LOGGER.debug('Link creation') + link = Link(**message_json) + + service = Service() + service.service_id.service_uuid.uuid = link.link_id.link_uuid.uuid + service.service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME + service.service_type = ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY + service.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED + service_client.CreateService(service) + + a_device_uuid = device_get_uuid(link.link_endpoint_ids[0].device_id) + a_endpoint_uuid = endpoint_get_uuid(link.link_endpoint_ids[0])[2] + z_device_uuid = device_get_uuid(link.link_endpoint_ids[1].device_id) + z_endpoint_uuid = endpoint_get_uuid(link.link_endpoint_ids[1])[2] + + links = context_client.ListLinks(Empty()).links + for _link in links: + for _endpoint_id in _link.link_endpoint_ids: + if _endpoint_id.device_id.device_uuid.uuid == a_device_uuid and \ + _endpoint_id.endpoint_uuid.uuid == a_endpoint_uuid: + a_ep_id = _endpoint_id + elif _endpoint_id.device_id.device_uuid.uuid == z_device_uuid and \ + _endpoint_id.endpoint_uuid.uuid == z_endpoint_uuid: + z_ep_id = _endpoint_id + + if (not 'a_ep_id' in locals()) or (not 'z_ep_id' in locals()): + error_msg = f'Could not get VNT link endpoints\ + \n\ta_endpoint_uuid= {a_endpoint_uuid}\ + \n\tz_endpoint_uuid= {z_device_uuid}' + LOGGER.error(error_msg) + connection.send(error_msg) + return + + service.service_endpoint_ids.append(copy.deepcopy(a_ep_id)) + service.service_endpoint_ids.append(copy.deepcopy(z_ep_id)) + + service_client.UpdateService(service) + re_svc = context_client.GetService(service.service_id) + connection.send(grpc_message_to_json_string(link)) + context_client.SetLink(link) + elif 'link_uuid' in message_json: + LOGGER.debug('Link removal') + link_id = LinkId(**message_json) + + service_id = ServiceId() + service_id.service_uuid.uuid = link_id.link_uuid.uuid + service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME + service_client.DeleteService(service_id) + connection.send(grpc_message_to_json_string(link_id)) + context_client.RemoveLink(link_id) + else: + LOGGER.debug('Topology received') + topology_details = TopologyDetails(**message_json) + + context = Context() + context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid + context_client.SetContext(context) + + topology = Topology() + topology.topology_id.context_id.CopyFrom(context.context_id) + topology.topology_id.topology_uuid.uuid = topology_details.topology_id.topology_uuid.uuid + context_client.SetTopology(topology) + + for device in topology_details.devices: + context_client.SetDevice(device) + + for link in topology_details.links: + context_client.SetLink(link) + + + +class E2EOrchestratorServiceServicerImpl(E2EOrchestratorServiceServicer): + def __init__(self): + LOGGER.debug('Creating Servicer...') + try: + LOGGER.debug('Requesting subscription') + sub_server = SubscriptionServer() + sub_server.start() + LOGGER.debug('Servicer Created') + self.retrieve_external_topologies() + except: + LOGGER.exception('Unhandled Exception') + + def retrieve_external_topologies(self): + i = 1 + while True: + try: + ADD = str(get_setting(f'EXT_CONTROLLER{i}_ADD')) + PORT = int(get_setting(f'EXT_CONTROLLER{i}_PORT')) + except: # pylint: disable=bare-except + break + + try: + LOGGER.info('Retrieving external controller #{:d}'.format(i)) + url = 'http://{:s}:{:d}/tfs-api/context/{:s}/topology_details/{:s}'.format( + ADD, PORT, DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME + ) + LOGGER.info('url={:s}'.format(str(url))) + topo = requests.get(url).json() + LOGGER.info('Retrieved external controller #{:d}'.format(i)) + except: # pylint: disable=bare-except + LOGGER.exception('Exception retrieven topology from external controler #{:d}'.format(i)) + + topology_details = TopologyDetails(**topo) + context = Context() + context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid + context_client.SetContext(context) + + topology = Topology() + topology.topology_id.context_id.CopyFrom(context.context_id) + topology.topology_id.topology_uuid.uuid = topology_details.topology_id.topology_uuid.uuid + context_client.SetTopology(topology) + + for device in topology_details.devices: + context_client.SetDevice(device) + + for link in topology_details.links: + context_client.SetLink(link) + + i+=1 + + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def Compute(self, request: E2EOrchestratorRequest, context: grpc.ServicerContext) -> E2EOrchestratorReply: + endpoints_ids = [] + for endpoint_id in request.service.service_endpoint_ids: + endpoints_ids.append(endpoint_get_uuid(endpoint_id)[2]) + + graph = networkx.Graph() + + devices = context_client.ListDevices(Empty()).devices + + for device in devices: + endpoints_uuids = [endpoint.endpoint_id.endpoint_uuid.uuid + for endpoint in device.device_endpoints] + for ep in endpoints_uuids: + graph.add_node(ep) + + for ep in endpoints_uuids: + for ep_i in endpoints_uuids: + if ep == ep_i: + continue + graph.add_edge(ep, ep_i) + + links = context_client.ListLinks(Empty()).links + for link in links: + eps = [] + for endpoint_id in link.link_endpoint_ids: + eps.append(endpoint_id.endpoint_uuid.uuid) + graph.add_edge(eps[0], eps[1]) + + + shortest = networkx.shortest_path(graph, endpoints_ids[0], endpoints_ids[1]) + + path = E2EOrchestratorReply() + path.services.append(copy.deepcopy(request.service)) + for i in range(0, int(len(shortest)/2)): + conn = Connection() + ep_a_uuid = str(shortest[i*2]) + ep_z_uuid = str(shortest[i*2+1]) + + conn.connection_id.connection_uuid.uuid = str(ep_a_uuid) + '_->_' + str(ep_z_uuid) + + ep_a_id = EndPointId() + ep_a_id.endpoint_uuid.uuid = ep_a_uuid + conn.path_hops_endpoint_ids.append(ep_a_id) + + ep_z_id = EndPointId() + ep_z_id.endpoint_uuid.uuid = ep_z_uuid + conn.path_hops_endpoint_ids.append(ep_z_id) + + path.connections.append(conn) + + return path diff --git a/src/e2e_orchestrator/service/subscriptions/ControllerDiscovererThread.py b/src/e2e_orchestrator/service/subscriptions/ControllerDiscovererThread.py new file mode 100644 index 000000000..e12917f7d --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/ControllerDiscovererThread.py @@ -0,0 +1,100 @@ +# Copyright 2022-2024 ETSI 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 logging, queue, threading +from typing import Any, Optional +from common.proto.context_pb2 import DeviceEvent, Empty +from common.tools.grpc.BaseEventCollector import BaseEventCollector +from common.tools.grpc.BaseEventDispatcher import BaseEventDispatcher +from common.tools.grpc.Tools import grpc_message_to_json_string +from context.client.ContextClient import ContextClient +from .Subscriptions import Subscriptions +from .TFSControllerSettings import get_tfs_controller_settings + + +LOGGER = logging.getLogger(__name__) + + +class EventDispatcher(BaseEventDispatcher): + def __init__( + self, events_queue : queue.PriorityQueue, + context_client : ContextClient, + subscriptions : Subscriptions, + terminate : Optional[threading.Event] = None + ) -> None: + super().__init__(events_queue, terminate) + self._context_client = context_client + self._subscriptions = subscriptions + + def dispatch_device_create(self, device_event : DeviceEvent) -> None: + MSG = 'Processing Device Create: {:s}' + LOGGER.info(MSG.format(grpc_message_to_json_string(device_event))) + tfs_ctrl_settings = get_tfs_controller_settings( + self._context_client, device_event + ) + if tfs_ctrl_settings is None: return + self._subscriptions.add_subscription(tfs_ctrl_settings) + + def dispatch_device_update(self, device_event : DeviceEvent) -> None: + MSG = 'Processing Device Update: {:s}' + LOGGER.info(MSG.format(grpc_message_to_json_string(device_event))) + tfs_ctrl_settings = get_tfs_controller_settings( + self._context_client, device_event + ) + if tfs_ctrl_settings is None: return + self._subscriptions.add_subscription(tfs_ctrl_settings) + + def dispatch_device_remove(self, device_event : DeviceEvent) -> None: + MSG = 'Processing Device Remove: {:s}' + LOGGER.info(MSG.format(grpc_message_to_json_string(device_event))) + device_uuid = device_event.device_id.device_uuid.uuid + self._subscriptions.remove_subscription(device_uuid) + + def dispatch(self, event : Any) -> None: + MSG = 'Unexpected Event: {:s}' + LOGGER.warning(MSG.format(grpc_message_to_json_string(event))) + +class ControllerDiscoverer: + def __init__( + self, terminate : Optional[threading.Event] = None + ) -> None: + self._context_client = ContextClient() + + self._event_collector = BaseEventCollector( + terminate=terminate + ) + self._event_collector.install_collector( + self._context_client.GetDeviceEvents, + Empty(), log_events_received=True + ) + + self._subscriptions = Subscriptions() + + self._event_dispatcher = EventDispatcher( + self._event_collector.get_events_queue(), + self._context_client, + self._subscriptions, + terminate=terminate + ) + + def start(self) -> None: + self._context_client.connect() + self._event_dispatcher.start() + self._event_collector.start() + + def stop(self): + self._event_collector.stop() + self._event_dispatcher.stop() + self._context_client.close() diff --git a/src/e2e_orchestrator/service/subscriptions/RecommendationsClientNamespace.py b/src/e2e_orchestrator/service/subscriptions/RecommendationsClientNamespace.py new file mode 100644 index 000000000..590524eea --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/RecommendationsClientNamespace.py @@ -0,0 +1,40 @@ +# Copyright 2022-2024 ETSI 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 logging, queue, socketio + +LOGGER = logging.getLogger(__name__) + +class RecommendationsClientNamespace(socketio.ClientNamespace): + def __init__(self, request_queue : queue.Queue, reply_queue : queue.Queue): + self._request_queue = request_queue + self._reply_queue = reply_queue + super().__init__(namespace='/recommendations') + + def on_connect(self): + LOGGER.info('[on_connect] Connected') + + def on_disconnect(self, reason): + MSG = '[on_disconnect] Disconnected!, reason: {:s}' + LOGGER.info(MSG.format(str(reason))) + + def on_recommendation(self, data): + MSG = '[on_recommendation] data={:s}' + LOGGER.info(MSG.format(str(data))) + + #MSG = '[on_recommendation] Recommendation: {:s}' + #LOGGER.info(MSG.format(str(recommendation))) + + #request = (self._device_uuid, *sample) + #self._request_queue.put_nowait(request) diff --git a/src/e2e_orchestrator/service/subscriptions/Subscription.py b/src/e2e_orchestrator/service/subscriptions/Subscription.py new file mode 100644 index 000000000..8e1866bac --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/Subscription.py @@ -0,0 +1,71 @@ +# Copyright 2022-2024 ETSI 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 queue, socketio, threading +from common.Constants import ServiceNameEnum +from common.Settings import get_service_baseurl_http +from .RecommendationsClientNamespace import RecommendationsClientNamespace +from .TFSControllerSettings import TFSControllerSettings + + +NBI_SERVICE_PREFIX_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' +CHILD_SOCKETIO_URL = 'http://{:s}:{:s}@{:s}:{:d}{:s}' + + +class Subscription(threading.Thread): + def __init__( + self, tfs_ctrl_settings : TFSControllerSettings, + terminate : threading.Event + ) -> None: + super().__init__(daemon=True) + self._settings = tfs_ctrl_settings + self._terminate = terminate + self._request_queue = queue.Queue() + self._reply_queue = queue.Queue() + self._is_running = threading.Event() + + @property + def is_running(self): return self._is_running.is_set() + + @property + def request_queue(self): return self._request_queue + + @property + def reply_queue(self): return self._reply_queue + + def run(self) -> None: + child_socketio_url = CHILD_SOCKETIO_URL.format( + self._settings.nbi_username, + self._settings.nbi_password, + self._settings.nbi_address, + self._settings.nbi_port, + NBI_SERVICE_PREFIX_URL + ) + + namespace = RecommendationsClientNamespace( + self._request_queue, self._reply_queue + ) + + sio = socketio.Client(logger=True, engineio_logger=True) + sio.register_namespace(namespace) + sio.connect(child_socketio_url) + + while not self._terminate.is_set(): + sio.sleep(seconds=0.5) + + sio.shutdown() + + def stop(self): + self._terminate.set() diff --git a/src/e2e_orchestrator/service/subscriptions/Subscriptions.py b/src/e2e_orchestrator/service/subscriptions/Subscriptions.py new file mode 100644 index 000000000..f4676ff8d --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/Subscriptions.py @@ -0,0 +1,47 @@ +# Copyright 2022-2024 ETSI 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 logging, queue, threading +from typing import Dict +from .Subscription import Subscription +from .TFSControllerSettings import TFSControllerSettings + +LOGGER = logging.getLogger(__name__) + +class Subscriptions: + def __init__(self) -> None: + self._terminate = threading.Event() + self._lock = threading.Lock() + self._subscriptions : Dict[str, Subscription] = dict() + + def add_subscription(self, tfs_ctrl_settings : TFSControllerSettings) -> None: + device_uuid = tfs_ctrl_settings.device_uuid + with self._lock: + subscription = self._subscriptions.get(device_uuid) + if (subscription is not None) and subscription.is_running: return + subscription = Subscription(tfs_ctrl_settings, self._terminate) + self._subscriptions[device_uuid] = subscription + subscription.start() + + def remove_subscription(self, device_uuid : str) -> None: + with self._lock: + subscription = self._subscriptions.get(device_uuid) + if subscription is None: return + if subscription.is_running: subscription.stop() + self._subscriptions.pop(device_uuid, None) + + def stop(self): + self._terminate.set() + for device_uuid in self._subscriptions: + self.remove_subscription(device_uuid) diff --git a/src/e2e_orchestrator/service/subscriptions/TFSControllerSettings.py b/src/e2e_orchestrator/service/subscriptions/TFSControllerSettings.py new file mode 100644 index 000000000..00613e3d4 --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/TFSControllerSettings.py @@ -0,0 +1,72 @@ +# Copyright 2022-2024 ETSI 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 +from dataclasses import dataclass +from typing import Optional +from common.DeviceTypes import DeviceTypeEnum +from common.proto.context_pb2 import ConfigActionEnum, DeviceEvent +from common.tools.context_queries.Device import get_device +from context.client.ContextClient import ContextClient + + +@dataclass +class TFSControllerSettings: + device_uuid : str + device_type : DeviceTypeEnum + nbi_address : str + nbi_port : int + nbi_username : str + nbi_password : str + + +SELECTED_DEVICE_TYPES = { + DeviceTypeEnum.TERAFLOWSDN_CONTROLLER.value +} + + +def get_tfs_controller_settings( + context_client : ContextClient, device_event : DeviceEvent +) -> Optional[TFSControllerSettings]: + device_uuid = device_event.device_id.device_uuid.uuid + device = get_device( + context_client, device_uuid, rw_copy=False, + include_endpoints=False, include_config_rules=True, + include_components=False + ) + device_type = device.device_type + if device_type not in SELECTED_DEVICE_TYPES: return None + + connect_rules = dict() + for config_rule in device.device_config.config_rules: + if config_rule.action != ConfigActionEnum.CONFIGACTION_SET: continue + if config_rule.WhichOneof('config_rule') != 'custom': continue + if not config_rule.custom.resource_key.startswith('_connect/'): continue + connect_attribute = config_rule.custom.resource_key.replace('_connect/', '') + if connect_attribute == 'settings': + settings = json.loads(config_rule.custom.resource_value) + for field in ['username', 'password']: + connect_rules[field] = settings[field] + else: + connect_rules[connect_attribute] = config_rule.custom.resource_value + + return TFSControllerSettings( + device_uuid = device_uuid, + device_type = device_type, + nbi_address = str(connect_rules['address' ]), + nbi_port = int(connect_rules['port' ]), + nbi_username = str(connect_rules['username']), + nbi_password = str(connect_rules['password']), + ) diff --git a/src/e2e_orchestrator/service/subscriptions/__init__.py b/src/e2e_orchestrator/service/subscriptions/__init__.py new file mode 100644 index 000000000..023830645 --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2024 ETSI 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. -- GitLab From fc57c66d96a180db9bc06c193141fc6c33d6edcf Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 12:29:27 +0000 Subject: [PATCH 105/213] E2E Orchestrator component: - Added requirement websocket-client to enable upgrade to websocket in socketio --- src/e2e_orchestrator/requirements.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/e2e_orchestrator/requirements.in b/src/e2e_orchestrator/requirements.in index 2b34cad18..c9286e2e1 100644 --- a/src/e2e_orchestrator/requirements.in +++ b/src/e2e_orchestrator/requirements.in @@ -15,4 +15,4 @@ networkx==3.2.1 python-socketio==5.12.1 requests==2.27.* -#websockets==12.0 +websocket-client==1.8.0 # used by socketio to upgrate to websocket -- GitLab From 312f70364b9298636fd6f34e1405c08abc5fcb2a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 12:31:56 +0000 Subject: [PATCH 106/213] NBI component: - Removed old and unused context subscription module - Grouped log-level adaptations in app - Configured KafkaManager to enable SocketIO Servers in different gunicorn workers to self-coordinate --- src/nbi/service/NbiApplication.py | 8 ++- src/nbi/service/app.py | 11 ++++ .../service/context_subscription/__init__.py | 64 ------------------- .../service/vntm_recommend/VntRecommThread.py | 9 --- 4 files changed, 17 insertions(+), 75 deletions(-) delete mode 100644 src/nbi/service/context_subscription/__init__.py diff --git a/src/nbi/service/NbiApplication.py b/src/nbi/service/NbiApplication.py index 2216177ff..0ee7c58ef 100644 --- a/src/nbi/service/NbiApplication.py +++ b/src/nbi/service/NbiApplication.py @@ -18,6 +18,7 @@ from typing import Any, List, Optional, Tuple from flask import Flask, request from flask_restful import Api, Resource from flask_socketio import Namespace, SocketIO +from common.tools.kafka.Variables import KafkaConfig, KafkaTopic from nbi.Config import SECRET_KEY @@ -40,10 +41,13 @@ class NbiApplication: self._app.config['SECRET_KEY'] = SECRET_KEY self._app.after_request(log_request) self._api = Api(self._app, prefix=base_url) - #socketio_path = '/'.join([base_url.rstrip('/'), 'socket.io']) + self._sio_client_manager = socketio.KafkaManager( + url='kafka://{:s}'.format(KafkaConfig.get_kafka_address()), + channel=KafkaTopic.NBI_SOCKETIO_WORKERS.value + ) self._sio = SocketIO( self._app, cors_allowed_origins='*', async_mode='eventlet', - #path=socketio_path, + client_manager=self._sio_client_manager, logger=True, engineio_logger=True ) diff --git a/src/nbi/service/app.py b/src/nbi/service/app.py index a0206cdd6..99f66a94c 100644 --- a/src/nbi/service/app.py +++ b/src/nbi/service/app.py @@ -50,6 +50,17 @@ logging.basicConfig( level=LOG_LEVEL, format="[Worker-%(process)d][%(asctime)s] %(levelname)s:%(name)s:%(message)s", ) +logging.getLogger('kafka.client').setLevel(logging.WARNING) +logging.getLogger('kafka.cluster').setLevel(logging.WARNING) +logging.getLogger('kafka.conn').setLevel(logging.WARNING) +logging.getLogger('kafka.consumer.fetcher').setLevel(logging.WARNING) +logging.getLogger('kafka.consumer.group').setLevel(logging.WARNING) +logging.getLogger('kafka.consumer.subscription_state').setLevel(logging.WARNING) +logging.getLogger('kafka.metrics.metrics').setLevel(logging.WARNING) +logging.getLogger('kafka.producer.kafka').setLevel(logging.WARNING) +logging.getLogger('kafka.producer.record_accumulator').setLevel(logging.WARNING) +logging.getLogger('kafka.producer.sender').setLevel(logging.WARNING) +logging.getLogger('kafka.protocol.parser').setLevel(logging.WARNING) logging.getLogger('socketio.server').setLevel(logging.WARNING) LOGGER = logging.getLogger(__name__) diff --git a/src/nbi/service/context_subscription/__init__.py b/src/nbi/service/context_subscription/__init__.py deleted file mode 100644 index 1e88a3cd1..000000000 --- a/src/nbi/service/context_subscription/__init__.py +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 2022-2024 ETSI 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 logging - -from websockets.sync.server import serve -from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest -from common.Settings import get_setting -from context.client.ContextClient import ContextClient -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME -from common.tools.object_factory.Topology import json_topology_id -from common.tools.object_factory.Context import json_context_id -from common.proto.context_pb2 import ContextId, TopologyId -import json -import os -from vnt_manager.client.VNTManagerClient import VNTManagerClient - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) -ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) - -vnt_manager_client: VNTManagerClient = VNTManagerClient() -context_client: ContextClient = ContextClient() - -ALL_HOSTS = "0.0.0.0" -WS_IP_PORT = int(get_setting('WS_IP_PORT', default='8761')) - -LOGGER = logging.getLogger(__name__) - - -def register_context_subscription(): - with serve(subcript_to_vnt_manager, ALL_HOSTS, WS_IP_PORT, logger=LOGGER) as server: - LOGGER.info("Running subscription server...: {}:{}".format(ALL_HOSTS, str(WS_IP_PORT))) - server.serve_forever() - LOGGER.info("Exiting subscription server...") - - -def subcript_to_vnt_manager(websocket): - for message in websocket: - LOGGER.debug("Message received: {}".format(message)) - message_json = json.loads(message) - request = VNTSubscriptionRequest() - request.host = message_json['host'] - request.port = message_json['port'] - LOGGER.debug("Received gRPC from ws: {}".format(request)) - - try: - vntm_reply = vnt_manager_client.VNTSubscript(request) - LOGGER.debug("Received gRPC from vntm: {}".format(vntm_reply)) - except Exception as e: - LOGGER.error('Could not subscript to VTNManager: {}'.format(e)) - - websocket.send(vntm_reply.subscription) diff --git a/src/nbi/service/vntm_recommend/VntRecommThread.py b/src/nbi/service/vntm_recommend/VntRecommThread.py index bd9a452f3..f3d74e5ac 100644 --- a/src/nbi/service/vntm_recommend/VntRecommThread.py +++ b/src/nbi/service/vntm_recommend/VntRecommThread.py @@ -19,15 +19,6 @@ from kafka import KafkaConsumer, TopicPartition from kafka.consumer.fetcher import ConsumerRecord from .Constants import SIO_NAMESPACE, SIO_ROOM -logging.getLogger('kafka.client').setLevel(logging.WARNING) -logging.getLogger('kafka.cluster').setLevel(logging.WARNING) -logging.getLogger('kafka.conn').setLevel(logging.WARNING) -logging.getLogger('kafka.consumer.fetcher').setLevel(logging.WARNING) -logging.getLogger('kafka.consumer.group').setLevel(logging.WARNING) -logging.getLogger('kafka.consumer.subscription_state').setLevel(logging.WARNING) -logging.getLogger('kafka.metrics.metrics').setLevel(logging.WARNING) -logging.getLogger('kafka.protocol.parser').setLevel(logging.WARNING) - LOGGER = logging.getLogger(__name__) class VntRecommThread(threading.Thread): -- GitLab From ffd0c1501f56b84272d5ac69ea0dc795d9d8b13f Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 12:32:34 +0000 Subject: [PATCH 107/213] Common - Kafka tools: - Added NBI_SOCKETIO_WORKERS channel --- src/common/tools/kafka/Variables.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/common/tools/kafka/Variables.py b/src/common/tools/kafka/Variables.py index 159d7dac1..432291c6a 100644 --- a/src/common/tools/kafka/Variables.py +++ b/src/common/tools/kafka/Variables.py @@ -47,16 +47,17 @@ class KafkaConfig(Enum): class KafkaTopic(Enum): # TODO: Later to be populated from ENV variable. - TELEMETRY_REQUEST = 'topic_telemetry_request' - TELEMETRY_RESPONSE = 'topic_telemetry_response' - RAW = 'topic_raw' - LABELED = 'topic_labeled' - VALUE = 'topic_value' - ALARMS = 'topic_alarms' - ANALYTICS_REQUEST = 'topic_analytics_request' - ANALYTICS_RESPONSE = 'topic_analytics_response' - VNTMANAGER_REQUEST = 'topic_vntmanager_request' - VNTMANAGER_RESPONSE = 'topic_vntmanager_response' + TELEMETRY_REQUEST = 'topic_telemetry_request' + TELEMETRY_RESPONSE = 'topic_telemetry_response' + RAW = 'topic_raw' + LABELED = 'topic_labeled' + VALUE = 'topic_value' + ALARMS = 'topic_alarms' + ANALYTICS_REQUEST = 'topic_analytics_request' + ANALYTICS_RESPONSE = 'topic_analytics_response' + VNTMANAGER_REQUEST = 'topic_vntmanager_request' + VNTMANAGER_RESPONSE = 'topic_vntmanager_response' + NBI_SOCKETIO_WORKERS = 'tfs-nbi-socketio' @staticmethod def create_all_topics() -> bool: -- GitLab From 33c7b42855e3b32a0054a29a716d33ce12c50336 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 12:32:53 +0000 Subject: [PATCH 108/213] NBI component: - Added missing comment --- src/nbi/service/NbiApplication.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/nbi/service/NbiApplication.py b/src/nbi/service/NbiApplication.py index 0ee7c58ef..dee09462c 100644 --- a/src/nbi/service/NbiApplication.py +++ b/src/nbi/service/NbiApplication.py @@ -41,6 +41,9 @@ class NbiApplication: self._app.config['SECRET_KEY'] = SECRET_KEY self._app.after_request(log_request) self._api = Api(self._app, prefix=base_url) + + # Configure KafkaManager to enable SocketIO Servers running in different + # gunicorn workers to self-coordinate and share sessions. self._sio_client_manager = socketio.KafkaManager( url='kafka://{:s}'.format(KafkaConfig.get_kafka_address()), channel=KafkaTopic.NBI_SOCKETIO_WORKERS.value -- GitLab From bfc67573ae24091bd68f0ed2cd1b090a778baf6d Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 12:34:27 +0000 Subject: [PATCH 109/213] Manifests: - Updated NGINX Ingress Controller to support sticky socket.io sessions towards NBI --- manifests/nginx_ingress_http.yaml | 35 +++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/manifests/nginx_ingress_http.yaml b/manifests/nginx_ingress_http.yaml index 5b77ed052..3143a8198 100644 --- a/manifests/nginx_ingress_http.yaml +++ b/manifests/nginx_ingress_http.yaml @@ -17,12 +17,28 @@ kind: Ingress metadata: name: tfs-ingress annotations: - nginx.ingress.kubernetes.io/rewrite-target: /$2 - nginx.ingress.kubernetes.io/limit-rps: "50" - nginx.ingress.kubernetes.io/limit-connections: "50" - nginx.ingress.kubernetes.io/proxy-connect-timeout: "50" - nginx.ingress.kubernetes.io/proxy-send-timeout: "50" - nginx.ingress.kubernetes.io/proxy-read-timeout: "50" + nginx.ingress.kubernetes.io/rewrite-target: "/$2" + + # Enable websocket services and configure sticky cookies (seems not to work) + #nginx.org/websocket-services: "nbiservice" + #nginx.org/sticky-cookie-services: "serviceName=nbiservice tfs-nbi-session expires=1h path=/socket.io" + + # Enable sticky sessions (use same backend for all connections + # originated by a specific client, identified through its cookie) + nginx.ingress.kubernetes.io/affinity: "cookie" + nginx.ingress.kubernetes.io/affinity-mode: "persistent" + nginx.ingress.kubernetes.io/session-cookie-name: "tfs-nbi-session" + nginx.ingress.kubernetes.io/session-cookie-path: "/socket.io" + nginx.ingress.kubernetes.io/session-cookie-expires: "3600" + nginx.ingress.kubernetes.io/session-cookie-change-on-failure: "true" + + nginx.ingress.kubernetes.io/limit-rps: "50" # max requests per second per source IP + nginx.ingress.kubernetes.io/limit-connections: "50" # max concurrent connections per source IP + nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" # max timeout for connecting to server + + # Enable long-lived connections, required for websocket/socket.io streams + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" # max timeout between two successive read operations + nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" # max timeout between two successive write operations spec: rules: - http: @@ -48,6 +64,13 @@ spec: name: nbiservice port: number: 8080 + - path: /()(socket.io/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 - path: /()(tfs-api/.*) pathType: Prefix backend: -- GitLab From 948d63c32a98ab431eddc7dd542edae2425b4341 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 12:35:08 +0000 Subject: [PATCH 110/213] OFC25 tests: - Updated E2E topology descriptor - Updated NGINX ingress controllers to support sticky sessions for SocketIO towards NBI --- src/tests/ofc25/descriptors/topology_e2e.json | 48 +++++++++---------- src/tests/ofc25/tfs-ingress-e2e.yaml | 30 +++++++++++- src/tests/ofc25/tfs-ingress-ip.yaml | 30 +++++++++++- src/tests/ofc25/tfs-ingress-opt.yaml | 30 +++++++++++- 4 files changed, 111 insertions(+), 27 deletions(-) diff --git a/src/tests/ofc25/descriptors/topology_e2e.json b/src/tests/ofc25/descriptors/topology_e2e.json index 8c3c1fd40..16a4ead24 100644 --- a/src/tests/ofc25/descriptors/topology_e2e.json +++ b/src/tests/ofc25/descriptors/topology_e2e.json @@ -30,56 +30,56 @@ } ], "links": [ - {"link_id": {"link_uuid": {"uuid": "CSGW1-TP1.1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"link_id": {"link_uuid": {"uuid": "IP1-TP1.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, {"device_id": {"device_uuid": {"uuid": "TP1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "CSGW1-TP1.2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"link_id": {"link_uuid": {"uuid": "IP1-TP1.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, {"device_id": {"device_uuid": {"uuid": "TP1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "CSGW1-TP1.3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"link_id": {"link_uuid": {"uuid": "IP1-TP1.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, {"device_id": {"device_uuid": {"uuid": "TP1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "CSGW2-TP2.1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"link_id": {"link_uuid": {"uuid": "IP2-TP2.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, {"device_id": {"device_uuid": {"uuid": "TP2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "CSGW2-TP2.2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"link_id": {"link_uuid": {"uuid": "IP2-TP2.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, {"device_id": {"device_uuid": {"uuid": "TP2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "CSGW2-TP2.3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"link_id": {"link_uuid": {"uuid": "IP2-TP2.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, {"device_id": {"device_uuid": {"uuid": "TP2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.1-CSGW1"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP1.1-IP1"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.2-CSGW1"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP1.2-IP1"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.3-CSGW1"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP1.3-IP1"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.1-CSGW2"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP2.1-IP2"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.2-CSGW2"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP2.2-IP2"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.3-CSGW2"}}, "link_endpoint_ids": [ + {"link_id": {"link_uuid": {"uuid": "TP2.3-IP2"}}, "link_endpoint_ids": [ {"device_id": {"device_uuid": {"uuid": "TP2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "CSGW2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} ]} ] } diff --git a/src/tests/ofc25/tfs-ingress-e2e.yaml b/src/tests/ofc25/tfs-ingress-e2e.yaml index c75a22cb3..c2f4a5a60 100644 --- a/src/tests/ofc25/tfs-ingress-e2e.yaml +++ b/src/tests/ofc25/tfs-ingress-e2e.yaml @@ -17,7 +17,28 @@ kind: Ingress metadata: name: tfs-ingress-e2e annotations: - nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/rewrite-target: "/$2" + + # Enable websocket services and configure sticky cookies (seems not to work) + #nginx.org/websocket-services: "nbiservice" + #nginx.org/sticky-cookie-services: "serviceName=nbiservice tfs-nbi-session expires=1h path=/socket.io" + + # Enable sticky sessions (use same backend for all connections + # originated by a specific client, identified through its cookie) + nginx.ingress.kubernetes.io/affinity: "cookie" + nginx.ingress.kubernetes.io/affinity-mode: "persistent" + nginx.ingress.kubernetes.io/session-cookie-name: "tfs-nbi-session" + nginx.ingress.kubernetes.io/session-cookie-path: "/socket.io" + nginx.ingress.kubernetes.io/session-cookie-expires: "3600" + nginx.ingress.kubernetes.io/session-cookie-change-on-failure: "true" + + nginx.ingress.kubernetes.io/limit-rps: "50" # max requests per second per source IP + nginx.ingress.kubernetes.io/limit-connections: "50" # max concurrent connections per source IP + nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" # max timeout for connecting to server + + # Enable long-lived connections, required for websocket/socket.io streams + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" # max timeout between two successive read operations + nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" # max timeout between two successive write operations spec: ingressClassName: tfs-ingress-class-e2e rules: @@ -44,6 +65,13 @@ spec: name: nbiservice port: number: 8080 + - path: /()(socket.io/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 - path: /()(tfs-api/.*) pathType: Prefix backend: diff --git a/src/tests/ofc25/tfs-ingress-ip.yaml b/src/tests/ofc25/tfs-ingress-ip.yaml index aefcfcffe..43bc52b4a 100644 --- a/src/tests/ofc25/tfs-ingress-ip.yaml +++ b/src/tests/ofc25/tfs-ingress-ip.yaml @@ -17,7 +17,28 @@ kind: Ingress metadata: name: tfs-ingress-ip annotations: - nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/rewrite-target: "/$2" + + # Enable websocket services and configure sticky cookies (seems not to work) + #nginx.org/websocket-services: "nbiservice" + #nginx.org/sticky-cookie-services: "serviceName=nbiservice tfs-nbi-session expires=1h path=/socket.io" + + # Enable sticky sessions (use same backend for all connections + # originated by a specific client, identified through its cookie) + nginx.ingress.kubernetes.io/affinity: "cookie" + nginx.ingress.kubernetes.io/affinity-mode: "persistent" + nginx.ingress.kubernetes.io/session-cookie-name: "tfs-nbi-session" + nginx.ingress.kubernetes.io/session-cookie-path: "/socket.io" + nginx.ingress.kubernetes.io/session-cookie-expires: "3600" + nginx.ingress.kubernetes.io/session-cookie-change-on-failure: "true" + + nginx.ingress.kubernetes.io/limit-rps: "50" # max requests per second per source IP + nginx.ingress.kubernetes.io/limit-connections: "50" # max concurrent connections per source IP + nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" # max timeout for connecting to server + + # Enable long-lived connections, required for websocket/socket.io streams + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" # max timeout between two successive read operations + nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" # max timeout between two successive write operations spec: ingressClassName: tfs-ingress-class-ip rules: @@ -44,6 +65,13 @@ spec: name: nbiservice port: number: 8080 + - path: /()(socket.io/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 - path: /()(tfs-api/.*) pathType: Prefix backend: diff --git a/src/tests/ofc25/tfs-ingress-opt.yaml b/src/tests/ofc25/tfs-ingress-opt.yaml index 57e1f9141..87fc29de5 100644 --- a/src/tests/ofc25/tfs-ingress-opt.yaml +++ b/src/tests/ofc25/tfs-ingress-opt.yaml @@ -17,7 +17,28 @@ kind: Ingress metadata: name: tfs-ingress-opt annotations: - nginx.ingress.kubernetes.io/rewrite-target: /$2 + nginx.ingress.kubernetes.io/rewrite-target: "/$2" + + # Enable websocket services and configure sticky cookies (seems not to work) + #nginx.org/websocket-services: "nbiservice" + #nginx.org/sticky-cookie-services: "serviceName=nbiservice tfs-nbi-session expires=1h path=/socket.io" + + # Enable sticky sessions (use same backend for all connections + # originated by a specific client, identified through its cookie) + nginx.ingress.kubernetes.io/affinity: "cookie" + nginx.ingress.kubernetes.io/affinity-mode: "persistent" + nginx.ingress.kubernetes.io/session-cookie-name: "tfs-nbi-session" + nginx.ingress.kubernetes.io/session-cookie-path: "/socket.io" + nginx.ingress.kubernetes.io/session-cookie-expires: "3600" + nginx.ingress.kubernetes.io/session-cookie-change-on-failure: "true" + + nginx.ingress.kubernetes.io/limit-rps: "50" # max requests per second per source IP + nginx.ingress.kubernetes.io/limit-connections: "50" # max concurrent connections per source IP + nginx.ingress.kubernetes.io/proxy-connect-timeout: "60" # max timeout for connecting to server + + # Enable long-lived connections, required for websocket/socket.io streams + nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" # max timeout between two successive read operations + nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" # max timeout between two successive write operations spec: ingressClassName: tfs-ingress-class-opt rules: @@ -44,6 +65,13 @@ spec: name: nbiservice port: number: 8080 + - path: /()(socket.io/.*) + pathType: Prefix + backend: + service: + name: nbiservice + port: + number: 8080 - path: /()(tfs-api/.*) pathType: Prefix backend: -- GitLab From bb6a98376f78df8bef6667bf36af4b3825681496 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 19:13:07 +0000 Subject: [PATCH 111/213] Common - Kafka tools: - Cosmetic changes --- src/common/tools/kafka/Variables.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/tools/kafka/Variables.py b/src/common/tools/kafka/Variables.py index 432291c6a..515a43f16 100644 --- a/src/common/tools/kafka/Variables.py +++ b/src/common/tools/kafka/Variables.py @@ -57,14 +57,14 @@ class KafkaTopic(Enum): ANALYTICS_RESPONSE = 'topic_analytics_response' VNTMANAGER_REQUEST = 'topic_vntmanager_request' VNTMANAGER_RESPONSE = 'topic_vntmanager_response' - NBI_SOCKETIO_WORKERS = 'tfs-nbi-socketio' + NBI_SOCKETIO_WORKERS = 'tfs_nbi_socketio' @staticmethod def create_all_topics() -> bool: ''' Method to create Kafka topics defined as class members ''' - LOGGER.debug('Kafka server address: {:s} '.format(str(KafkaConfig.get_kafka_address()))) + LOGGER.debug('Kafka server address: {:s}'.format(str(KafkaConfig.get_kafka_address()))) kafka_admin_client = KafkaConfig.get_admin_client() topic_metadata = kafka_admin_client.list_topics(timeout=KAFKA_TOPIC_LIST_TIMEOUT) -- GitLab From 6c3da65d66c4cbc2ac548cf757b7c1bfa7b83b5a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 19:15:29 +0000 Subject: [PATCH 112/213] Forecaster component: - Homogeneized code with other components --- src/forecaster/service/__main__.py | 35 ++++++++++++++++-------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/forecaster/service/__main__.py b/src/forecaster/service/__main__.py index cf5e88110..54f3331fa 100644 --- a/src/forecaster/service/__main__.py +++ b/src/forecaster/service/__main__.py @@ -16,27 +16,28 @@ import logging, signal, sys, threading from prometheus_client import start_http_server from common.Constants import ServiceNameEnum from common.Settings import ( - ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, get_log_level, get_metrics_port, - wait_for_environment_variables) + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, + get_log_level, get_metrics_port, wait_for_environment_variables +) from .ForecasterService import ForecasterService -terminate = threading.Event() -LOGGER : logging.Logger = None + +TERMINATE = threading.Event() + +LOG_LEVEL = get_log_level() +logging.basicConfig(level=LOG_LEVEL, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") +logging.getLogger('apscheduler.executors.default').setLevel(logging.WARNING) +logging.getLogger('apscheduler.scheduler').setLevel(logging.WARNING) +logging.getLogger('monitoring-client').setLevel(logging.WARNING) +LOGGER = logging.getLogger(__name__) + def signal_handler(signal, frame): # pylint: disable=redefined-outer-name LOGGER.warning('Terminate signal received') - terminate.set() + TERMINATE.set() -def main(): - global LOGGER # pylint: disable=global-statement - - log_level = get_log_level() - logging.basicConfig(level=log_level, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") - logging.getLogger('apscheduler.executors.default').setLevel(logging.WARNING) - logging.getLogger('apscheduler.scheduler').setLevel(logging.WARNING) - logging.getLogger('monitoring-client').setLevel(logging.WARNING) - LOGGER = logging.getLogger(__name__) +def main(): wait_for_environment_variables([ get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), @@ -53,12 +54,13 @@ def main(): metrics_port = get_metrics_port() start_http_server(metrics_port) - # Starting Forecaster service + # Starting service grpc_service = ForecasterService() grpc_service.start() + LOGGER.info('Running...') # Wait for Ctrl+C or termination signal - while not terminate.wait(timeout=1.0): pass + while not TERMINATE.wait(timeout=1.0): pass LOGGER.info('Terminating...') grpc_service.stop() @@ -66,5 +68,6 @@ def main(): LOGGER.info('Bye') return 0 + if __name__ == '__main__': sys.exit(main()) -- GitLab From 66284d484adfe70d47da5fd287b5aa00120f5921 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 21:03:00 +0000 Subject: [PATCH 113/213] NBI component - VNTM Recommendations: - Corrected namespace name - Corrected Kafka listener logic --- src/nbi/service/vntm_recommend/Constants.py | 4 ++-- src/nbi/service/vntm_recommend/VntRecommThread.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/nbi/service/vntm_recommend/Constants.py b/src/nbi/service/vntm_recommend/Constants.py index 99438dac3..43e91fed5 100644 --- a/src/nbi/service/vntm_recommend/Constants.py +++ b/src/nbi/service/vntm_recommend/Constants.py @@ -13,5 +13,5 @@ # limitations under the License. -SIO_NAMESPACE = '/vnt-recomm' -SIO_ROOM = 'vnt-recomm' +SIO_NAMESPACE = '/recommendations' +SIO_ROOM = 'recommendations' diff --git a/src/nbi/service/vntm_recommend/VntRecommThread.py b/src/nbi/service/vntm_recommend/VntRecommThread.py index f3d74e5ac..e44670607 100644 --- a/src/nbi/service/vntm_recommend/VntRecommThread.py +++ b/src/nbi/service/vntm_recommend/VntRecommThread.py @@ -50,7 +50,7 @@ class VntRecommThread(threading.Thread): while not self._terminate.is_set(): topic_records : Dict[TopicPartition, List[ConsumerRecord]] = \ kafka_consumer.poll(timeout_ms=1000, max_records=1) - if len(topic_records) == 0: return # no pending records + if len(topic_records) == 0: continue # no pending records self.process_topic_records(topic_records) LOGGER.info('[run] Closing...') -- GitLab From 3f9c2b70da8642ab6d18dc40c9644ba281639a70 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 21:07:41 +0000 Subject: [PATCH 114/213] E2E Orchestrator component: - Updated Subscriptions Framework - Corrected Controller Discovery mechanism - Extended framework to support multiple Dispatchers - Implemented Recommendations Dispatcher (being tested) --- src/e2e_orchestrator/service/__main__.py | 62 +++++---- ...vererThread.py => ControllerDiscoverer.py} | 16 +-- .../RecommendationsClientNamespace.py | 40 ------ .../service/subscriptions/Subscription.py | 30 ++--- .../service/subscriptions/Subscriptions.py | 17 +-- .../subscriptions/dispatchers/Dispatchers.py | 33 +++++ .../subscriptions/dispatchers/_Dispatcher.py | 46 +++++++ .../subscriptions/dispatchers/__init__.py | 13 ++ .../recommendation/ClientNamespace.py | 63 +++++++++ .../dispatchers/recommendation/Constants.py | 15 +++ .../dispatchers/recommendation/Dispatcher.py | 66 +++++++++ .../recommendation/Recommendation.py | 27 ++++ .../dispatchers/recommendation/Tools.py | 127 ++++++++++++++++++ .../dispatchers/recommendation/__init__.py | 13 ++ 14 files changed, 456 insertions(+), 112 deletions(-) rename src/e2e_orchestrator/service/subscriptions/{ControllerDiscovererThread.py => ControllerDiscoverer.py} (89%) delete mode 100644 src/e2e_orchestrator/service/subscriptions/RecommendationsClientNamespace.py create mode 100644 src/e2e_orchestrator/service/subscriptions/dispatchers/Dispatchers.py create mode 100644 src/e2e_orchestrator/service/subscriptions/dispatchers/_Dispatcher.py create mode 100644 src/e2e_orchestrator/service/subscriptions/dispatchers/__init__.py create mode 100644 src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py create mode 100644 src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Constants.py create mode 100644 src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py create mode 100644 src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Recommendation.py create mode 100644 src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py create mode 100644 src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/__init__.py diff --git a/src/e2e_orchestrator/service/__main__.py b/src/e2e_orchestrator/service/__main__.py index d984add76..aa4def383 100644 --- a/src/e2e_orchestrator/service/__main__.py +++ b/src/e2e_orchestrator/service/__main__.py @@ -12,64 +12,68 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging -import signal -import sys -import threading - +import logging, signal, sys, threading from prometheus_client import start_http_server - from common.Constants import ServiceNameEnum -from common.Settings import (ENVVAR_SUFIX_SERVICE_HOST, - ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, - get_log_level, get_metrics_port, - wait_for_environment_variables) -from e2e_orchestrator.service.subscriptions.ControllerDiscovererThread import ControllerDiscoverer - +from common.Settings import ( + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, + get_log_level, get_metrics_port, wait_for_environment_variables +) +from .subscriptions.ControllerDiscoverer import ControllerDiscoverer +from .subscriptions.Subscriptions import Subscriptions +from .subscriptions.dispatchers.Dispatchers import Dispatchers +from .subscriptions.dispatchers.recommendation.Dispatcher import RecommendationDispatcher from .E2EOrchestratorService import E2EOrchestratorService -terminate = threading.Event() +TERMINATE = threading.Event() LOG_LEVEL = get_log_level() logging.basicConfig(level=LOG_LEVEL, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") LOGGER = logging.getLogger(__name__) -def signal_handler(signal, frame): # pylint: disable=redefined-outer-name - LOGGER.warning("Terminate signal received") - terminate.set() +def signal_handler(signal, frame): # pylint: disable=redefined-outer-name + LOGGER.warning('Terminate signal received') + TERMINATE.set() def main(): - signal.signal(signal.SIGINT, signal_handler) + wait_for_environment_variables([ + get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + ]) + + signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) - LOGGER.info("Starting...") + LOGGER.info('Starting...') # Start metrics server metrics_port = get_metrics_port() start_http_server(metrics_port) + # Starting service grpc_service = E2EOrchestratorService() grpc_service.start() - controller_discoverer = ControllerDiscoverer( - terminate=terminate - ) - controller_discoverer.start() - LOGGER.info("Running...") + dispatchers = Dispatchers(TERMINATE) + dispatchers.add_dispatcher(RecommendationDispatcher) + subscriptions = Subscriptions(dispatchers, TERMINATE) + discoverer = ControllerDiscoverer(subscriptions, TERMINATE) + discoverer.start() + + LOGGER.info('Running...') # Wait for Ctrl+C or termination signal - while not terminate.wait(timeout=1): - pass + while not TERMINATE.wait(timeout=1.0): pass - LOGGER.info("Terminating...") - controller_discoverer.stop() + LOGGER.info('Terminating...') + discoverer.stop() grpc_service.stop() - LOGGER.info("Bye") + LOGGER.info('Bye') return 0 -if __name__ == "__main__": +if __name__ == '__main__': sys.exit(main()) diff --git a/src/e2e_orchestrator/service/subscriptions/ControllerDiscovererThread.py b/src/e2e_orchestrator/service/subscriptions/ControllerDiscoverer.py similarity index 89% rename from src/e2e_orchestrator/service/subscriptions/ControllerDiscovererThread.py rename to src/e2e_orchestrator/service/subscriptions/ControllerDiscoverer.py index e12917f7d..5d9efd531 100644 --- a/src/e2e_orchestrator/service/subscriptions/ControllerDiscovererThread.py +++ b/src/e2e_orchestrator/service/subscriptions/ControllerDiscoverer.py @@ -68,24 +68,16 @@ class EventDispatcher(BaseEventDispatcher): class ControllerDiscoverer: def __init__( - self, terminate : Optional[threading.Event] = None + self, subscriptions : Subscriptions, terminate : threading.Event ) -> None: self._context_client = ContextClient() - self._event_collector = BaseEventCollector( - terminate=terminate - ) + self._event_collector = BaseEventCollector(terminate=terminate) self._event_collector.install_collector( - self._context_client.GetDeviceEvents, - Empty(), log_events_received=True + self._context_client.GetDeviceEvents, Empty(), log_events_received=True ) - - self._subscriptions = Subscriptions() - self._event_dispatcher = EventDispatcher( - self._event_collector.get_events_queue(), - self._context_client, - self._subscriptions, + self._event_collector.get_events_queue(), self._context_client, subscriptions, terminate=terminate ) diff --git a/src/e2e_orchestrator/service/subscriptions/RecommendationsClientNamespace.py b/src/e2e_orchestrator/service/subscriptions/RecommendationsClientNamespace.py deleted file mode 100644 index 590524eea..000000000 --- a/src/e2e_orchestrator/service/subscriptions/RecommendationsClientNamespace.py +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2022-2024 ETSI 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 logging, queue, socketio - -LOGGER = logging.getLogger(__name__) - -class RecommendationsClientNamespace(socketio.ClientNamespace): - def __init__(self, request_queue : queue.Queue, reply_queue : queue.Queue): - self._request_queue = request_queue - self._reply_queue = reply_queue - super().__init__(namespace='/recommendations') - - def on_connect(self): - LOGGER.info('[on_connect] Connected') - - def on_disconnect(self, reason): - MSG = '[on_disconnect] Disconnected!, reason: {:s}' - LOGGER.info(MSG.format(str(reason))) - - def on_recommendation(self, data): - MSG = '[on_recommendation] data={:s}' - LOGGER.info(MSG.format(str(data))) - - #MSG = '[on_recommendation] Recommendation: {:s}' - #LOGGER.info(MSG.format(str(recommendation))) - - #request = (self._device_uuid, *sample) - #self._request_queue.put_nowait(request) diff --git a/src/e2e_orchestrator/service/subscriptions/Subscription.py b/src/e2e_orchestrator/service/subscriptions/Subscription.py index 8e1866bac..a8b986858 100644 --- a/src/e2e_orchestrator/service/subscriptions/Subscription.py +++ b/src/e2e_orchestrator/service/subscriptions/Subscription.py @@ -13,53 +13,41 @@ # limitations under the License. -import queue, socketio, threading +import socketio, threading from common.Constants import ServiceNameEnum from common.Settings import get_service_baseurl_http -from .RecommendationsClientNamespace import RecommendationsClientNamespace +from .dispatchers.Dispatchers import Dispatchers from .TFSControllerSettings import TFSControllerSettings NBI_SERVICE_PREFIX_URL = get_service_baseurl_http(ServiceNameEnum.NBI) or '' -CHILD_SOCKETIO_URL = 'http://{:s}:{:s}@{:s}:{:d}{:s}' +CHILD_SOCKETIO_URL = 'http://{:s}:{:s}@{:s}:{:d}' + NBI_SERVICE_PREFIX_URL class Subscription(threading.Thread): def __init__( - self, tfs_ctrl_settings : TFSControllerSettings, + self, tfs_ctrl_settings : TFSControllerSettings, dispatchers : Dispatchers, terminate : threading.Event ) -> None: super().__init__(daemon=True) - self._settings = tfs_ctrl_settings - self._terminate = terminate - self._request_queue = queue.Queue() - self._reply_queue = queue.Queue() - self._is_running = threading.Event() + self._settings = tfs_ctrl_settings + self._dispatchers = dispatchers + self._terminate = terminate + self._is_running = threading.Event() @property def is_running(self): return self._is_running.is_set() - @property - def request_queue(self): return self._request_queue - - @property - def reply_queue(self): return self._reply_queue - def run(self) -> None: child_socketio_url = CHILD_SOCKETIO_URL.format( self._settings.nbi_username, self._settings.nbi_password, self._settings.nbi_address, self._settings.nbi_port, - NBI_SERVICE_PREFIX_URL - ) - - namespace = RecommendationsClientNamespace( - self._request_queue, self._reply_queue ) sio = socketio.Client(logger=True, engineio_logger=True) - sio.register_namespace(namespace) + self._dispatchers.register(sio) sio.connect(child_socketio_url) while not self._terminate.is_set(): diff --git a/src/e2e_orchestrator/service/subscriptions/Subscriptions.py b/src/e2e_orchestrator/service/subscriptions/Subscriptions.py index f4676ff8d..683aead3b 100644 --- a/src/e2e_orchestrator/service/subscriptions/Subscriptions.py +++ b/src/e2e_orchestrator/service/subscriptions/Subscriptions.py @@ -12,17 +12,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging, queue, threading +import logging, threading from typing import Dict +from .dispatchers.Dispatchers import Dispatchers from .Subscription import Subscription from .TFSControllerSettings import TFSControllerSettings LOGGER = logging.getLogger(__name__) class Subscriptions: - def __init__(self) -> None: - self._terminate = threading.Event() - self._lock = threading.Lock() + def __init__(self, dispatchers : Dispatchers, terminate : threading.Event) -> None: + self._dispatchers = dispatchers + self._terminate = terminate + self._lock = threading.Lock() self._subscriptions : Dict[str, Subscription] = dict() def add_subscription(self, tfs_ctrl_settings : TFSControllerSettings) -> None: @@ -30,7 +32,7 @@ class Subscriptions: with self._lock: subscription = self._subscriptions.get(device_uuid) if (subscription is not None) and subscription.is_running: return - subscription = Subscription(tfs_ctrl_settings, self._terminate) + subscription = Subscription(tfs_ctrl_settings, self._dispatchers, self._terminate) self._subscriptions[device_uuid] = subscription subscription.start() @@ -40,8 +42,3 @@ class Subscriptions: if subscription is None: return if subscription.is_running: subscription.stop() self._subscriptions.pop(device_uuid, None) - - def stop(self): - self._terminate.set() - for device_uuid in self._subscriptions: - self.remove_subscription(device_uuid) diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/Dispatchers.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/Dispatchers.py new file mode 100644 index 000000000..88345e32a --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/Dispatchers.py @@ -0,0 +1,33 @@ +# Copyright 2022-2024 ETSI 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 logging, socketio, threading +from typing import List, Type +from ._Dispatcher import _Dispatcher + +LOGGER = logging.getLogger(__name__) + +class Dispatchers: + def __init__(self, terminate : threading.Event) -> None: + self._terminate = terminate + self._dispatchers : List[_Dispatcher] = list() + + def add_dispatcher(self, dispatcher_class : Type[_Dispatcher]) -> None: + dispatcher = dispatcher_class(self._terminate) + self._dispatchers.append(dispatcher) + dispatcher.start() + + def register(self, sio_client : socketio.Client) -> None: + for dispatcher in self._dispatchers: + dispatcher.register(sio_client) diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/_Dispatcher.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/_Dispatcher.py new file mode 100644 index 000000000..d2cd40bbd --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/_Dispatcher.py @@ -0,0 +1,46 @@ +# Copyright 2022-2024 ETSI 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 queue, socketio, threading +from concurrent.futures import Future +from typing import Any, Tuple + +class _Dispatcher(threading.Thread): + def __init__(self, terminate : threading.Event): + super().__init__(daemon=True) + self._dispatcher_queue = queue.Queue[Tuple[Any, Future]]() + self._terminate = terminate + + @property + def dispatcher_queue(self): return self._dispatcher_queue + + def register(self, sio_client : socketio.Client) -> None: + raise NotImplementedError('To be implemented in subclass') + + def run(self): + while not self._terminate.is_set(): + try: + request,future = self._dispatcher_queue.get(block=True, timeout=1.0) + except queue.Empty: + continue + + try: + result = self.process_request(request) + except Exception as e: + future.set_exception(e) + else: + future.set_result(result) + + def process_request(self, request : Any) -> Any: + raise NotImplementedError('To be implemented in subclass') diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/__init__.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/__init__.py new file mode 100644 index 000000000..023830645 --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2024 ETSI 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. diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py new file mode 100644 index 000000000..ab702acf6 --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py @@ -0,0 +1,63 @@ +# Copyright 2022-2024 ETSI 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, queue, socketio +from concurrent.futures import Future +from .Constants import SIO_NAMESPACE +from .Recommendation import Recommendation, RecommendationAction + +LOGGER = logging.getLogger(__name__) + +class ClientNamespace(socketio.ClientNamespace): + def __init__(self, dispatcher_queue : queue.Queue[Recommendation]): + self._dispatcher_queue = dispatcher_queue + super().__init__(namespace=SIO_NAMESPACE) + + def on_connect(self): + LOGGER.info('[on_connect] Connected') + + def on_disconnect(self, reason): + MSG = '[on_disconnect] Disconnected!, reason: {:s}' + LOGGER.info(MSG.format(str(reason))) + + def on_recommendation(self, data): + MSG = '[on_recommendation] begin data={:s}' + LOGGER.info(MSG.format(str(data))) + + json_data = json.loads(data) + recommendation = Recommendation( + action = RecommendationAction._value2member_map_[json_data['action']], + data = json.loads(json_data['data']), + ) + result = Future() + + MSG = '[on_recommendation] Recommendation: {:s}' + LOGGER.info(MSG.format(str(recommendation))) + + LOGGER.debug('[on_recommendation] Queuing recommendation...') + self._dispatcher_queue.put_nowait((recommendation, result)) + LOGGER.debug('[on_recommendation] Recommendation processed...') + + reply = dict() + try: + reply['result'] = result.result() + event = reply['result']['event'] + except Exception as e: + reply['error'] = str(e) + #reply['stacktrace'] = str(e) + event = 'error' + + LOGGER.debug('[on_recommendation] Replying...') + self.emit(event, json.dumps(reply)) + LOGGER.debug('[on_recommendation] end') diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Constants.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Constants.py new file mode 100644 index 000000000..da3af24fd --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Constants.py @@ -0,0 +1,15 @@ +# Copyright 2022-2024 ETSI 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. + +SIO_NAMESPACE = '/recommendations' diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py new file mode 100644 index 000000000..72e79e6b5 --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py @@ -0,0 +1,66 @@ +# Copyright 2022-2024 ETSI 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 copy, logging, socketio +from typing import Dict +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import Service, ServiceId +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Service import json_service_id +from service.client.ServiceClient import ServiceClient +from .._Dispatcher import _Dispatcher +from .ClientNamespace import ClientNamespace +from .Recommendation import Recommendation, RecommendationAction +from .Tools import compose_optical_service + +LOGGER = logging.getLogger(__name__) + +class RecommendationDispatcher(_Dispatcher): + + def register(self, sio_client : socketio.Client) -> None: + sio_client.register_namespace(ClientNamespace(self.dispatcher_queue)) + + def process_request(self, request : Recommendation) -> Dict: + LOGGER.info('[process_request] request={:s}'.format(str(request))) + + if request.action == RecommendationAction.VLINK_CREATE: + vlink_optical_service = compose_optical_service(request.data) + vlink_optical_service_add = copy.deepcopy(vlink_optical_service) + vlink_optical_service_add.pop('service_endpoint_ids', None) + vlink_optical_service_add.pop('service_constraints', None) + vlink_optical_service_add.pop('service_config', None) + + service_client = ServiceClient() + service_id = service_client.CreateService(Service(**vlink_optical_service_add)) + vlink_optical_service['service_id']['service_uuid']['uuid'] = service_id.service_uuid.uuid + service_id = service_client.UpdateService(Service(**vlink_optical_service)) + + result = {'event': 'vlink-created'} + elif request.action == RecommendationAction.VLINK_REMOVE: + vlink_service_uuid = request.data['link_id']['link_uuid']['uuid'] + context_id = json_context_id(DEFAULT_CONTEXT_NAME) + vlink_optical_service_id = json_service_id(vlink_service_uuid, context_id=context_id) + + service_client = ServiceClient() + service_id = service_client.DeleteService(ServiceId(**vlink_optical_service_id)) + + if vlink_service_uuid == 'IP1/PORT-xe1==IP2/PORT-xe1': + service_id = service_client.DeleteService(ServiceId(**vlink_optical_service_id)) + + result = {'event': 'vlink-removed'} + else: + MSG = 'RecommendationAction not supported in Recommendation({:s})' + raise NotImplementedError(MSG.format(str(request))) + + return result diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Recommendation.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Recommendation.py new file mode 100644 index 000000000..ca03b193f --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Recommendation.py @@ -0,0 +1,27 @@ +# Copyright 2022-2024 ETSI 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. + + +from dataclasses import dataclass, field +from enum import Enum +from typing import Dict + +class RecommendationAction(Enum): + VLINK_CREATE = 'vlink-create' + VLINK_REMOVE = 'vlink-remove' + +@dataclass +class Recommendation: + action : RecommendationAction + data : Dict = field(default_factory=dict) diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py new file mode 100644 index 000000000..48720767c --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py @@ -0,0 +1,127 @@ +# Copyright 2022-2024 ETSI 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 logging, networkx +from dataclasses import dataclass, field +from typing import Dict, List +from common.proto.context_pb2 import ServiceTypeEnum +from common.tools.context_queries.Topology import get_topology_details +from common.tools.object_factory.Constraint import json_constraint_custom +from common.tools.object_factory.Context import json_context +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.EndPoint import json_endpoint_id +from common.tools.object_factory.Service import json_service +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.DeviceTypes import DeviceTypeEnum +from context.client.ContextClient import ContextClient + + +LOGGER = logging.getLogger(__name__) + + +@dataclass +class GraphAndMapping: + graph : networkx.Graph = field(default_factory=networkx.Graph) + device_to_type : Dict[str, str] = field(default_factory=dict) + device_name_to_uuid : Dict[str, str] = field(default_factory=dict) + endpoint_name_to_uuid : Dict[Dict[str, str], str] = field(default_factory=dict) + endpoint_to_device_uuid : Dict[str, str] = field(default_factory=dict) + + +def compose_graph_from_topology() -> GraphAndMapping: + context_client = ContextClient() + topology_details = get_topology_details( + context_client, DEFAULT_TOPOLOGY_NAME, + context_uuid=DEFAULT_CONTEXT_NAME, rw_copy=False + ) + + graph_and_mapping = GraphAndMapping() + + for device in topology_details.devices: + device_uuid = device.device_id.device_uuid.uuid + graph_and_mapping.device_name_to_uuid.setdefault(device.name, device_uuid) + graph_and_mapping.device_name_to_uuid.setdefault(device_uuid, device_uuid) + graph_and_mapping.device_to_type.setdefault(device_uuid, device.device_type) + + endpoint_uuids = list() + for endpoint in device.device_endpoints: + endpoint_uuid = endpoint.endpoint_id.endpoint_uuid.uuid + endpoint_uuids.append(endpoint_uuid) + graph_and_mapping.graph.add_node(endpoint_uuid) + + graph_and_mapping.endpoint_name_to_uuid.setdefault((device_uuid, endpoint.name), endpoint_uuid) + graph_and_mapping.endpoint_name_to_uuid.setdefault((device_uuid, endpoint_uuid), endpoint_uuid) + graph_and_mapping.endpoint_to_device_uuid.setdefault(endpoint_uuid, device_uuid) + + for endpoint_uuid_i in endpoint_uuids: + for endpoint_uuid_j in endpoint_uuids: + if endpoint_uuid_i == endpoint_uuid_j: continue + graph_and_mapping.graph.add_edge(endpoint_uuid_i, endpoint_uuid_j) + + for link in topology_details.links: + graph_and_mapping.graph.add_edge( + link.link_endpoint_ids[ 0].endpoint_uuid.uuid, + link.link_endpoint_ids[-1].endpoint_uuid.uuid, + ) + + return graph_and_mapping + +def compose_optical_service(vlink_request : Dict) -> Dict: + graph_and_mapping = compose_graph_from_topology() + + vlink_endpoint_id_a = vlink_request['link_endpoint_ids'][ 0] + vlink_endpoint_id_b = vlink_request['link_endpoint_ids'][-1] + + device_uuid_or_name_a = vlink_endpoint_id_a['device_id']['device_uuid']['uuid'] + device_uuid_or_name_b = vlink_endpoint_id_b['device_id']['device_uuid']['uuid'] + endpoint_uuid_or_name_a = vlink_endpoint_id_a['endpoint_uuid']['uuid'] + endpoint_uuid_or_name_b = vlink_endpoint_id_b['endpoint_uuid']['uuid'] + + device_uuid_a = graph_and_mapping.device_name_to_uuid[device_uuid_or_name_a] + device_uuid_b = graph_and_mapping.device_name_to_uuid[device_uuid_or_name_b] + + endpoint_uuid_a = graph_and_mapping.endpoint_name_to_uuid[(device_uuid_a, endpoint_uuid_or_name_a)] + endpoint_uuid_b = graph_and_mapping.endpoint_name_to_uuid[(device_uuid_b, endpoint_uuid_or_name_b)] + + path_hops = networkx.shortest_path( + graph_and_mapping.graph, endpoint_uuid_a, endpoint_uuid_b + ) + + optical_border_endpoint_ids : List[str] = list() + for endpoint_uuid in path_hops: + device_uuid = graph_and_mapping.endpoint_to_device_uuid[endpoint_uuid] + device_type = graph_and_mapping.device_to_type[device_uuid] + if device_type != DeviceTypeEnum.EMULATED_OPTICAL_TRANSPONDER.value: continue + device_id = json_device_id(device_uuid) + endpoint_id = json_endpoint_id(device_id, endpoint_uuid) + optical_border_endpoint_ids.append(endpoint_id) + + constraints = [ + json_constraint_custom('bandwidth[gbps]', str(vlink_request['attributes']['total_capacity_gbps'])), + json_constraint_custom('bidirectionality', '1'), + ] + + vlink_service_uuid = vlink_request['link_id']['link_uuid']['uuid'] + + if vlink_service_uuid == 'IP1/PORT-xe1==IP2/PORT-xe1': + constraints.append(json_constraint_custom('optical-band-width[GHz]', '300')) + + vlink_optical_service = json_service( + vlink_service_uuid, + ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY, + context_id=json_context(DEFAULT_CONTEXT_NAME), + endpoint_ids=optical_border_endpoint_ids, + constraints=constraints, + ) + return vlink_optical_service diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/__init__.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/__init__.py new file mode 100644 index 000000000..023830645 --- /dev/null +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/__init__.py @@ -0,0 +1,13 @@ +# Copyright 2022-2024 ETSI 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. -- GitLab From 8a9e716b62491ad36d2e90c5bccb946c2485f080 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 21:48:58 +0000 Subject: [PATCH 115/213] VNT Manager component: - Updated code to use Kafka topics for recommendations to NBI --- .../service/VNTManagerServiceServicerImpl.py | 215 +++++++----------- src/vnt_manager/service/old_code.py | 168 ++++++++++++++ 2 files changed, 255 insertions(+), 128 deletions(-) create mode 100644 src/vnt_manager/service/old_code.py diff --git a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py index 46a012560..ca1a1b2f3 100644 --- a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py +++ b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py @@ -12,149 +12,83 @@ # See the License for the specific language governing permissions and # limitations under the License. -import grpc -import json -import logging -import threading -import time -from websockets.sync.client import connect -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +import grpc, json, logging, uuid +from confluent_kafka import Consumer as KafkaConsumer +from confluent_kafka import Producer as KafkaProducer +from confluent_kafka import KafkaError from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method -from common.proto.context_pb2 import ContextId, Empty, Link, LinkId, LinkList, TopologyId -from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest, VNTSubscriptionReply +from common.proto.context_pb2 import Empty, Link, LinkId, LinkList from common.proto.vnt_manager_pb2_grpc import VNTManagerServiceServicer -from common.tools.grpc.Tools import grpc_message_to_json, grpc_message_to_json_string -from common.tools.object_factory.Context import json_context_id -from common.tools.object_factory.Topology import json_topology_id +from common.tools.grpc.Tools import grpc_message_to_json_string +from common.tools.kafka.Variables import KafkaConfig, KafkaTopic from context.client.ContextClient import ContextClient -from context.client.EventsCollector import EventsCollector from .vntm_config_device import configure, deconfigure + LOGGER = logging.getLogger(__name__) METRICS_POOL = MetricsPool("VNTManager", "RPC") -context_client: ContextClient = ContextClient() - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) -ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) - -GET_EVENT_TIMEOUT = 0.5 - - -class VNTMEventDispatcher(threading.Thread): - def __init__(self, host, port) -> None: - LOGGER.debug('Creating VNTM connector...') - self.host = host - self.port = port - super().__init__(name='VNTMEventDispatcher', daemon=True) - self._terminate = threading.Event() - LOGGER.debug('VNTM connector created') - - def start(self) -> None: - self._terminate.clear() - return super().start() - - def stop(self): - self._terminate.set() - - def send_msg(self, msg): - try: - self.websocket.send(msg) - except Exception as e: - LOGGER.exception('Unable to send message') - - def recv_msg(self): - message = self.websocket.recv() - return message - - def run(self) -> None: - events_collector = EventsCollector( - context_client, - log_events_received = True, - activate_context_collector = True, - activate_topology_collector = True, - activate_device_collector = True, - activate_link_collector = True, - activate_service_collector = False, - activate_slice_collector = False, - activate_connection_collector = False, - ) - events_collector.start() - - try: - url = "ws://" + str(self.host) + ":" + str(self.port) - LOGGER.info("Connecting to events server...: {:s}".format(url)) - self.websocket = connect(url) - except Exception as ex: - MSG = 'Error connecting to {:s}' - LOGGER.exception(MSG.format(str(url))) - else: - LOGGER.info('Connected to {:s}'.format(url)) - context_id = json_context_id(DEFAULT_CONTEXT_NAME) - topology_id = json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id) - - try: - topology_details = context_client.GetTopologyDetails(TopologyId(**topology_id)) - except Exception as ex: - LOGGER.warning('No topology found') - else: - self.send_msg(grpc_message_to_json_string(topology_details)) - - while not self._terminate.is_set(): - event = events_collector.get_event(block=True, timeout=GET_EVENT_TIMEOUT) - if event is None: continue - LOGGER.debug('Event type: {}'.format(event)) - topology_details = context_client.GetTopologyDetails(TopologyId(**topology_id)) - to_send = grpc_message_to_json_string(topology_details) - self.send_msg(to_send) - - LOGGER.info('Exiting') - events_collector.stop() - class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): def __init__(self): LOGGER.debug("Creating Servicer...") - LOGGER.debug("Servicer Created") + self.context_client = ContextClient() self.links = [] - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def VNTSubscript(self, request: VNTSubscriptionRequest, context: grpc.ServicerContext) -> VNTSubscriptionReply: - LOGGER.info("Subscript request: {:s}".format(str(grpc_message_to_json(request)))) - reply = VNTSubscriptionReply() - reply.subscription = "OK" - - self.event_dispatcher = VNTMEventDispatcher(request.host, int(request.port)) - self.host = request.host - self.port = request.port - LOGGER.info('sleeping 5...') - time.sleep(5) - self.event_dispatcher.start() - return reply + LOGGER.debug("Servicer Created") @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def ListVirtualLinks(self, request : Empty, context : grpc.ServicerContext) -> LinkList: - return [link for link in context_client.ListLinks(Empty()).links if link.virtual] + links = self.context_client.ListLinks(Empty()).links + return [link for link in links if link.virtual] @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetVirtualLink(self, request : LinkId, context : grpc.ServicerContext) -> Link: - link = context_client.GetLink(request) + link = self.context_client.GetLink(request) return link if link.virtual else Empty() @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def SetVirtualLink(self, request : Link, context : grpc.ServicerContext) -> LinkId: try: - LOGGER.info('SETTING virtual link') - self.event_dispatcher.send_msg(grpc_message_to_json_string(request)) + LOGGER.info('[SetVirtualLink] request={:s}'.format(grpc_message_to_json_string(request))) + request_key = str(uuid.uuid4()) + kafka_producer = KafkaProducer({ + 'bootstrap.servers' : KafkaConfig.get_kafka_address() + }) + + vntm_request = json.dumps({ + 'event': 'vlink_create', 'data': grpc_message_to_json_string(request) + }).encode('utf-8') + LOGGER.info('[SetVirtualLink] vntm_request={:s}'.format(str(vntm_request))) + kafka_producer.produce( + KafkaTopic.VNTMANAGER_REQUEST.value, key=request_key, value=vntm_request + ) + kafka_producer.flush() + + kafka_consumer = KafkaConsumer({ + 'bootstrap.servers' : KafkaConfig.get_kafka_address(), + 'group.id' : str(uuid.uuid4()), + 'auto.offset.reset' : 'latest' + }) + kafka_consumer.subscribe([KafkaTopic.VNTMANAGER_RESPONSE.value]) + while True: + receive_msg = kafka_consumer.poll(2.0) + if receive_msg is None: continue + LOGGER.info('[SetVirtualLink] receive_msg={:s}'.format(str(receive_msg))) + if receive_msg.error(): + if receive_msg.error().code() == KafkaError._PARTITION_EOF: continue + LOGGER.error('Consumer error: {:s}'.format(str(receive_msg.error()))) + break + reply_key = receive_msg.key().decode('utf-8') + if reply_key == request_key: break + + link = Link(**json.loads(receive_msg.value().decode('utf-8'))) + # at this point, we know the request was accepted and an optical connection was created + # configure('CSGW1', 'xe5', 'CSGW2', 'xe5', 'ecoc2024-1') - response = self.event_dispatcher.recv_msg() - message_json = json.loads(response) - link = Link(**message_json) - context_client.SetLink(link) - except Exception as e: - MSG = 'Exception setting virtual link={:s}') + self.context_client.SetLink(link) + except: # pylint: disable=bare-except + MSG = 'Exception setting virtual link={:s}' LOGGER.exception(MSG.format(str(request.link_id.link_uuid.uuid))) return request.link_id @@ -162,20 +96,45 @@ class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): def RemoveVirtualLink(self, request : LinkId, context : grpc.ServicerContext) -> Empty: try: LOGGER.debug('Removing virtual link') - self.event_dispatcher.send_msg(grpc_message_to_json_string(request)) - # deconfigure('CSGW1', 'xe5', 'CSGW2', 'xe5', 'ecoc2024-1') - response = self.event_dispatcher.recv_msg() - message_json = json.loads(response) - link_id = LinkId(**message_json) - context_client.RemoveLink(link_id) + request_key = str(uuid.uuid4()) + + kafka_producer = KafkaProducer({ + 'bootstrap.servers' : KafkaConfig.get_kafka_address() + }) + + vntm_request = json.dumps({ + 'event': 'vlink_remove', 'data': grpc_message_to_json_string(request) + }).encode('utf-8') + LOGGER.info('[RemoveVirtualLink] vntm_request={:s}'.format(str(vntm_request))) + kafka_producer.produce( + KafkaTopic.VNTMANAGER_REQUEST.value, key=request_key, value=vntm_request + ) + kafka_producer.flush() + + kafka_consumer = KafkaConsumer({ + 'bootstrap.servers' : KafkaConfig.get_kafka_address(), + 'group.id' : str(uuid.uuid4()), + 'auto.offset.reset' : 'latest' + }) + kafka_consumer.subscribe([KafkaTopic.VNTMANAGER_RESPONSE.value]) + while True: + receive_msg = kafka_consumer.poll(2.0) + if receive_msg is None: continue + if receive_msg.error(): + if receive_msg.error().code() == KafkaError._PARTITION_EOF: continue + LOGGER.error('Consumer error: {:s}'.format(str(receive_msg.error()))) + break + reply_key = receive_msg.key().decode('utf-8') + if reply_key == request_key: break + + link_id = LinkId(**json.loads(receive_msg.value().decode('utf-8'))) + # at this point, we know the request was accepted and an optical connection was deleted + # deconfigure('CSGW1', 'xe5', 'CSGW2', 'xe5', 'ecoc2024-1') + self.context_client.RemoveLink(link_id) LOGGER.info('Removed') - except Exception as e: + except: # pylint: disable=bare-except MSG = 'Exception removing virtual link={:s}' LOGGER.exception(MSG.format(str(request.link_uuid.uuid))) - return msg_error - else: - context_client.RemoveLink(request) - LOGGER.info('Removed') return Empty() diff --git a/src/vnt_manager/service/old_code.py b/src/vnt_manager/service/old_code.py new file mode 100644 index 000000000..a701a1c77 --- /dev/null +++ b/src/vnt_manager/service/old_code.py @@ -0,0 +1,168 @@ +# Copyright 2022-2024 ETSI 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 grpc +import json +import logging +import threading +import time +from websockets.sync.client import connect +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method +from common.proto.context_pb2 import ContextId, Empty, Link, LinkId, LinkList, TopologyId +from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest, VNTSubscriptionReply +from common.proto.vnt_manager_pb2_grpc import VNTManagerServiceServicer +from common.tools.grpc.Tools import grpc_message_to_json, grpc_message_to_json_string +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Topology import json_topology_id +from context.client.ContextClient import ContextClient +from context.client.EventsCollector import EventsCollector +from .vntm_config_device import configure, deconfigure + +LOGGER = logging.getLogger(__name__) + +METRICS_POOL = MetricsPool("VNTManager", "RPC") + +context_client: ContextClient = ContextClient() + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) +ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) + +GET_EVENT_TIMEOUT = 0.5 + + +class VNTMEventDispatcher(threading.Thread): + def __init__(self, host, port) -> None: + LOGGER.debug('Creating VNTM connector...') + self.host = host + self.port = port + super().__init__(name='VNTMEventDispatcher', daemon=True) + self._terminate = threading.Event() + LOGGER.debug('VNTM connector created') + + def start(self) -> None: + self._terminate.clear() + return super().start() + + def stop(self): + self._terminate.set() + + def send_msg(self, msg): + try: + self.websocket.send(msg) + except Exception as e: + LOGGER.exception('Unable to send message') + + def recv_msg(self): + message = self.websocket.recv() + return message + + def run(self) -> None: + events_collector = EventsCollector( + context_client, + log_events_received = True, + activate_context_collector = True, + activate_topology_collector = True, + activate_device_collector = True, + activate_link_collector = True, + activate_service_collector = False, + activate_slice_collector = False, + activate_connection_collector = False, + ) + events_collector.start() + + try: + url = "ws://" + str(self.host) + ":" + str(self.port) + LOGGER.info("Connecting to events server...: {:s}".format(url)) + self.websocket = connect(url) + except Exception as ex: + MSG = 'Error connecting to {:s}' + LOGGER.exception(MSG.format(str(url))) + else: + LOGGER.info('Connected to {:s}'.format(url)) + context_id = json_context_id(DEFAULT_CONTEXT_NAME) + topology_id = json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id) + + try: + topology_details = context_client.GetTopologyDetails(TopologyId(**topology_id)) + except Exception as ex: + LOGGER.warning('No topology found') + else: + self.send_msg(grpc_message_to_json_string(topology_details)) + + while not self._terminate.is_set(): + event = events_collector.get_event(block=True, timeout=GET_EVENT_TIMEOUT) + if event is None: continue + LOGGER.debug('Event type: {}'.format(event)) + topology_details = context_client.GetTopologyDetails(TopologyId(**topology_id)) + to_send = grpc_message_to_json_string(topology_details) + self.send_msg(to_send) + + LOGGER.info('Exiting') + events_collector.stop() + + +class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): + def __init__(self): + LOGGER.debug("Creating Servicer...") + LOGGER.debug("Servicer Created") + self.links = [] + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def ListVirtualLinks(self, request : Empty, context : grpc.ServicerContext) -> LinkList: + links = context_client.ListLinks(Empty()).links + return [link for link in links if link.virtual] + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def GetVirtualLink(self, request : LinkId, context : grpc.ServicerContext) -> Link: + link = context_client.GetLink(request) + return link if link.virtual else Empty() + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def SetVirtualLink(self, request : Link, context : grpc.ServicerContext) -> LinkId: + try: + LOGGER.info('SETTING virtual link') + self.event_dispatcher.send_msg(grpc_message_to_json_string(request)) + # configure('CSGW1', 'xe5', 'CSGW2', 'xe5', 'ecoc2024-1') + response = self.event_dispatcher.recv_msg() + message_json = json.loads(response) + link = Link(**message_json) + context_client.SetLink(link) + except Exception as e: + MSG = 'Exception setting virtual link={:s}') + LOGGER.exception(MSG.format(str(request.link_id.link_uuid.uuid))) + return request.link_id + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def RemoveVirtualLink(self, request : LinkId, context : grpc.ServicerContext) -> Empty: + try: + LOGGER.debug('Removing virtual link') + self.event_dispatcher.send_msg(grpc_message_to_json_string(request)) + # deconfigure('CSGW1', 'xe5', 'CSGW2', 'xe5', 'ecoc2024-1') + response = self.event_dispatcher.recv_msg() + message_json = json.loads(response) + link_id = LinkId(**message_json) + context_client.RemoveLink(link_id) + + LOGGER.info('Removed') + except Exception as e: + MSG = 'Exception removing virtual link={:s}' + LOGGER.exception(MSG.format(str(request.link_uuid.uuid))) + return msg_error + else: + context_client.RemoveLink(request) + LOGGER.info('Removed') + + return Empty() -- GitLab From 597edf16353c49c6029465082c91887cfada347b Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Sun, 16 Mar 2025 22:14:53 +0000 Subject: [PATCH 116/213] OFC25 tests: - Updated deploy script to wait for Context subscription to be ready --- src/tests/ofc25/deploy.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/tests/ofc25/deploy.sh b/src/tests/ofc25/deploy.sh index d72254191..8bd0b8989 100755 --- a/src/tests/ofc25/deploy.sh +++ b/src/tests/ofc25/deploy.sh @@ -104,9 +104,17 @@ mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_e2e.sh # ===== Recovering files ========================= mv manifests/contextservice.yaml.bak manifests/contextservice.yaml + +# ===== Wait Content for NATS Subscription ========================= +echo "Waiting for E2E Context to have subscriber ready..." +while ! kubectl --namespace tfs-e2e logs deployment/contextservice -c server 2>&1 | grep -q 'Subscriber is Ready? True'; do sleep 1; done +kubectl --namespace tfs-e2e logs deployment/contextservice -c server + + # ===== Onboarding topologies ========================= # TODO: pending... + # ===== Configure subscriptions ========================= # This should not be needed #./src/tests/ofc25/subscription_ws_ip.sh -- GitLab From ad9f57b96bd23ec525670cea70c956dd83bdf454 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 00:05:57 +0000 Subject: [PATCH 117/213] E2E Orchestrator component: - Changed recommendation namespace to use specific events for actions - Corrected path computation logic - Corrected subscription creation logic --- .../service/subscriptions/Subscriptions.py | 2 +- .../recommendation/ClientNamespace.py | 55 +++++++++++++++---- .../dispatchers/recommendation/Dispatcher.py | 4 +- .../dispatchers/recommendation/Tools.py | 52 ++++++++++++++++-- 4 files changed, 94 insertions(+), 19 deletions(-) diff --git a/src/e2e_orchestrator/service/subscriptions/Subscriptions.py b/src/e2e_orchestrator/service/subscriptions/Subscriptions.py index 683aead3b..0ef8c0109 100644 --- a/src/e2e_orchestrator/service/subscriptions/Subscriptions.py +++ b/src/e2e_orchestrator/service/subscriptions/Subscriptions.py @@ -31,7 +31,7 @@ class Subscriptions: device_uuid = tfs_ctrl_settings.device_uuid with self._lock: subscription = self._subscriptions.get(device_uuid) - if (subscription is not None) and subscription.is_running: return + if subscription is not None: return subscription = Subscription(tfs_ctrl_settings, self._dispatchers, self._terminate) self._subscriptions[device_uuid] = subscription subscription.start() diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py index ab702acf6..168a136de 100644 --- a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py @@ -31,25 +31,60 @@ class ClientNamespace(socketio.ClientNamespace): MSG = '[on_disconnect] Disconnected!, reason: {:s}' LOGGER.info(MSG.format(str(reason))) - def on_recommendation(self, data): - MSG = '[on_recommendation] begin data={:s}' + def on_vlink_create(self, data): + MSG = '[on_vlink_create] begin data={:s}' LOGGER.info(MSG.format(str(data))) json_data = json.loads(data) + request_key = json_data.pop('_request_key') + + recommendation = Recommendation( + action = RecommendationAction.VLINK_CREATE, + data = json_data, + ) + result = Future() + + MSG = '[on_vlink_create] Recommendation ({:s}): {:s}' + LOGGER.info(MSG.format(str(request_key), str(recommendation))) + + LOGGER.debug('[on_vlink_create] Queuing recommendation...') + self._dispatcher_queue.put_nowait((recommendation, result)) + + reply = dict() + reply['_request_key'] = request_key + try: + reply['result'] = result.result() + event = reply['result']['event'] + except Exception as e: + reply['error'] = str(e) + #reply['stacktrace'] = str(e) + event = 'error' + + LOGGER.debug('[on_vlink_create] Replying...') + self.emit(event, json.dumps(reply)) + LOGGER.debug('[on_vlink_create] end') + + def on_vlink_remove(self, data): + MSG = '[on_vlink_remove] begin data={:s}' + LOGGER.info(MSG.format(str(data))) + + json_data = json.loads(data) + request_key = json_data.pop('_request_key') + recommendation = Recommendation( - action = RecommendationAction._value2member_map_[json_data['action']], - data = json.loads(json_data['data']), + action = RecommendationAction.VLINK_REMOVE, + data = json_data, ) result = Future() - MSG = '[on_recommendation] Recommendation: {:s}' - LOGGER.info(MSG.format(str(recommendation))) + MSG = '[on_vlink_remove] Recommendation ({:s}): {:s}' + LOGGER.info(MSG.format(str(request_key), str(recommendation))) - LOGGER.debug('[on_recommendation] Queuing recommendation...') + LOGGER.debug('[on_vlink_remove] Queuing recommendation...') self._dispatcher_queue.put_nowait((recommendation, result)) - LOGGER.debug('[on_recommendation] Recommendation processed...') reply = dict() + reply['_request_key'] = request_key try: reply['result'] = result.result() event = reply['result']['event'] @@ -58,6 +93,6 @@ class ClientNamespace(socketio.ClientNamespace): #reply['stacktrace'] = str(e) event = 'error' - LOGGER.debug('[on_recommendation] Replying...') + LOGGER.debug('[on_vlink_remove] Replying...') self.emit(event, json.dumps(reply)) - LOGGER.debug('[on_recommendation] end') + LOGGER.debug('[on_vlink_remove] end') diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py index 72e79e6b5..4fd452857 100644 --- a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py @@ -46,7 +46,7 @@ class RecommendationDispatcher(_Dispatcher): vlink_optical_service['service_id']['service_uuid']['uuid'] = service_id.service_uuid.uuid service_id = service_client.UpdateService(Service(**vlink_optical_service)) - result = {'event': 'vlink-created'} + result = {'event': 'vlink_created'} elif request.action == RecommendationAction.VLINK_REMOVE: vlink_service_uuid = request.data['link_id']['link_uuid']['uuid'] context_id = json_context_id(DEFAULT_CONTEXT_NAME) @@ -58,7 +58,7 @@ class RecommendationDispatcher(_Dispatcher): if vlink_service_uuid == 'IP1/PORT-xe1==IP2/PORT-xe1': service_id = service_client.DeleteService(ServiceId(**vlink_optical_service_id)) - result = {'event': 'vlink-removed'} + result = {'event': 'vlink_removed'} else: MSG = 'RecommendationAction not supported in Recommendation({:s})' raise NotImplementedError(MSG.format(str(request))) diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py index 48720767c..20665fcb5 100644 --- a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py @@ -14,11 +14,11 @@ import logging, networkx from dataclasses import dataclass, field -from typing import Dict, List +from typing import Dict, List, Set from common.proto.context_pb2 import ServiceTypeEnum from common.tools.context_queries.Topology import get_topology_details from common.tools.object_factory.Constraint import json_constraint_custom -from common.tools.object_factory.Context import json_context +from common.tools.object_factory.Context import json_context_id from common.tools.object_factory.Device import json_device_id from common.tools.object_factory.EndPoint import json_endpoint_id from common.tools.object_factory.Service import json_service @@ -39,6 +39,21 @@ class GraphAndMapping: endpoint_to_device_uuid : Dict[str, str] = field(default_factory=dict) +EXCLUDED_DEVICE_TYPES : Set[str] = { + DeviceTypeEnum.EMULATED_IP_SDN_CONTROLLER.value, + DeviceTypeEnum.EMULATED_MICROWAVE_RADIO_SYSTEM.value, + DeviceTypeEnum.EMULATED_OPEN_LINE_SYSTEM.value, + DeviceTypeEnum.EMULATED_XR_CONSTELLATION.value, + DeviceTypeEnum.IETF_SLICE.value, + DeviceTypeEnum.IP_SDN_CONTROLLER.value, + DeviceTypeEnum.MICROWAVE_RADIO_SYSTEM.value, + DeviceTypeEnum.NCE.value, + DeviceTypeEnum.OPEN_LINE_SYSTEM.value, + DeviceTypeEnum.TERAFLOWSDN_CONTROLLER.value, + DeviceTypeEnum.XR_CONSTELLATION.value, +} + + def compose_graph_from_topology() -> GraphAndMapping: context_client = ContextClient() topology_details = get_topology_details( @@ -48,12 +63,18 @@ def compose_graph_from_topology() -> GraphAndMapping: graph_and_mapping = GraphAndMapping() + excluded_device_uuids : Set[str] = set() + for device in topology_details.devices: device_uuid = device.device_id.device_uuid.uuid graph_and_mapping.device_name_to_uuid.setdefault(device.name, device_uuid) graph_and_mapping.device_name_to_uuid.setdefault(device_uuid, device_uuid) graph_and_mapping.device_to_type.setdefault(device_uuid, device.device_type) + if device.device_type in EXCLUDED_DEVICE_TYPES: + excluded_device_uuids.add(device_uuid) + continue + endpoint_uuids = list() for endpoint in device.device_endpoints: endpoint_uuid = endpoint.endpoint_id.endpoint_uuid.uuid @@ -70,9 +91,18 @@ def compose_graph_from_topology() -> GraphAndMapping: graph_and_mapping.graph.add_edge(endpoint_uuid_i, endpoint_uuid_j) for link in topology_details.links: + endpoint_id_a = link.link_endpoint_ids[ 0] + endpoint_id_z = link.link_endpoint_ids[-1] + + device_uuid_a = endpoint_id_a.device_id.device_uuid.uuid + if device_uuid_a in excluded_device_uuids: continue + + device_uuid_z = endpoint_id_z.device_id.device_uuid.uuid + if device_uuid_z in excluded_device_uuids: continue + graph_and_mapping.graph.add_edge( - link.link_endpoint_ids[ 0].endpoint_uuid.uuid, - link.link_endpoint_ids[-1].endpoint_uuid.uuid, + endpoint_id_a.endpoint_uuid.uuid, + endpoint_id_z.endpoint_uuid.uuid, ) return graph_and_mapping @@ -98,15 +128,23 @@ def compose_optical_service(vlink_request : Dict) -> Dict: graph_and_mapping.graph, endpoint_uuid_a, endpoint_uuid_b ) + LOGGER.info('[compose_optical_service] path_hops={:s}'.format(str(path_hops))) + optical_border_endpoint_ids : List[str] = list() for endpoint_uuid in path_hops: + LOGGER.info('[compose_optical_service] endpoint_uuid={:s}'.format(str(endpoint_uuid))) device_uuid = graph_and_mapping.endpoint_to_device_uuid[endpoint_uuid] + LOGGER.info('[compose_optical_service] device_uuid={:s}'.format(str(device_uuid))) device_type = graph_and_mapping.device_to_type[device_uuid] + LOGGER.info('[compose_optical_service] device_type={:s}'.format(str(device_type))) if device_type != DeviceTypeEnum.EMULATED_OPTICAL_TRANSPONDER.value: continue device_id = json_device_id(device_uuid) endpoint_id = json_endpoint_id(device_id, endpoint_uuid) + LOGGER.info('[compose_optical_service] endpoint_id={:s}'.format(str(endpoint_id))) optical_border_endpoint_ids.append(endpoint_id) + LOGGER.info('[compose_optical_service] optical_border_endpoint_ids={:s}'.format(str(optical_border_endpoint_ids))) + constraints = [ json_constraint_custom('bandwidth[gbps]', str(vlink_request['attributes']['total_capacity_gbps'])), json_constraint_custom('bidirectionality', '1'), @@ -120,8 +158,10 @@ def compose_optical_service(vlink_request : Dict) -> Dict: vlink_optical_service = json_service( vlink_service_uuid, ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY, - context_id=json_context(DEFAULT_CONTEXT_NAME), - endpoint_ids=optical_border_endpoint_ids, + context_id=json_context_id(DEFAULT_CONTEXT_NAME), + endpoint_ids=[ + optical_border_endpoint_ids[1], optical_border_endpoint_ids[2] + ], constraints=constraints, ) return vlink_optical_service -- GitLab From 8033d20439f5f6e7173497dfdf84cfdc15f4105d Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 00:07:13 +0000 Subject: [PATCH 118/213] NBI component - VNTM Recommendations: - Added management of recommendation replies - Corrected format of recommendations --- src/nbi/service/vntm_recommend/Namespaces.py | 36 ++++++++++++++++++- .../service/vntm_recommend/VntRecommThread.py | 13 ++++--- 2 files changed, 44 insertions(+), 5 deletions(-) diff --git a/src/nbi/service/vntm_recommend/Namespaces.py b/src/nbi/service/vntm_recommend/Namespaces.py index c4cb211a6..a7660f859 100644 --- a/src/nbi/service/vntm_recommend/Namespaces.py +++ b/src/nbi/service/vntm_recommend/Namespaces.py @@ -12,9 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging +import json, logging from flask import request from flask_socketio import Namespace, join_room, leave_room +from kafka import KafkaProducer +from common.tools.kafka.Variables import KafkaConfig, KafkaTopic from .Constants import SIO_NAMESPACE, SIO_ROOM from .VntRecommThread import VntRecommThread @@ -26,6 +28,10 @@ class VntRecommServerNamespace(Namespace): self._thread = VntRecommThread(self) self._thread.start() + self.kafka_producer = KafkaProducer( + bootstrap_servers = KafkaConfig.get_kafka_address(), + ) + def stop_thread(self) -> None: self._thread.stop() @@ -38,3 +44,31 @@ class VntRecommServerNamespace(Namespace): MSG = '[on_disconnect] Client disconnect: sid={:s}, reason={:s}' LOGGER.info(MSG.format(str(request.sid), str(reason))) leave_room(SIO_ROOM, namespace=SIO_NAMESPACE) + + def on_vlink_created(self, data): + MSG = '[on_vlink_created] begin: sid={:s}, data={:s}' + LOGGER.info(MSG.format(str(request.sid), str(data))) + + data = json.loads(data) + request_key = data.pop('_request_key') + + vntm_reply = json.dumps({'event': 'vlink_created', 'data': data}).encode('utf-8') + LOGGER.info('[on_vlink_created] vntm_reply={:s}'.format(str(vntm_reply))) + self.kafka_producer.send( + KafkaTopic.VNTMANAGER_RESPONSE.value, key=request_key, value=vntm_reply + ) + self.kafka_producer.flush() + + def on_vlink_removed(self, data): + MSG = '[on_vlink_removed] begin: sid={:s}, data={:s}' + LOGGER.info(MSG.format(str(request.sid), str(data))) + + data = json.loads(data) + request_key = data.pop('_request_key') + + vntm_reply = json.dumps({'event': 'vlink_removed', 'data': data}).encode('utf-8') + LOGGER.info('[on_vlink_removed] vntm_reply={:s}'.format(str(vntm_reply))) + self.kafka_producer.send( + KafkaTopic.VNTMANAGER_RESPONSE.value, key=request_key, value=vntm_reply + ) + self.kafka_producer.flush() diff --git a/src/nbi/service/vntm_recommend/VntRecommThread.py b/src/nbi/service/vntm_recommend/VntRecommThread.py index e44670607..2b745c16d 100644 --- a/src/nbi/service/vntm_recommend/VntRecommThread.py +++ b/src/nbi/service/vntm_recommend/VntRecommThread.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging, socketio, threading +import json, logging, socketio, threading from typing import Dict, List from common.tools.kafka.Variables import KafkaConfig, KafkaTopic from kafka import KafkaConsumer, TopicPartition @@ -71,13 +71,18 @@ class VntRecommThread(threading.Thread): def emit_recommendation(self, record : ConsumerRecord) -> None: message_key = record.key.decode('utf-8') message_value = record.value.decode('utf-8') + message_value = json.loads(message_value) + message_event = message_value.pop('event') + message_data = json.loads(message_value['data']) + message_data['_request_key'] = message_key + message_data = json.dumps(message_data) - MSG = '[emit_recommendation] Recommendation: key={:s} value={:s}' - LOGGER.debug(MSG.format(str(message_key), str(message_value))) + MSG = '[emit_recommendation] Recommendation: event={:s} data={:s}' + LOGGER.debug(MSG.format(str(message_event), str(message_data))) LOGGER.debug('[emit_recommendation] checking server namespace...') server : socketio.Server = self._namespace.server if server is None: return LOGGER.debug('[emit_recommendation] emitting recommendation...') - server.emit('recommendation', message_value, namespace=SIO_NAMESPACE, to=SIO_ROOM) + server.emit(message_event, message_data, namespace=SIO_NAMESPACE, to=SIO_ROOM) LOGGER.debug('[emit_recommendation] emitted') -- GitLab From d582c17d380dd0d0651c25dd8696b0fba26df1e4 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 00:08:37 +0000 Subject: [PATCH 119/213] NBI component: - Disabled multi-worker as synchronization through Kafka seems not to work, to be corrected - Disabled heartbeat thread --- src/nbi/Dockerfile | 3 ++- src/nbi/service/NbiApplication.py | 10 +++++----- src/nbi/service/health_probes/Namespaces.py | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/nbi/Dockerfile b/src/nbi/Dockerfile index 6bca1c81a..ac54fc851 100644 --- a/src/nbi/Dockerfile +++ b/src/nbi/Dockerfile @@ -89,4 +89,5 @@ RUN mkdir -p /var/teraflow/tests/tools COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ # Start the service -ENTRYPOINT ["gunicorn", "--workers", "4", "--worker-class", "eventlet", "--bind", "0.0.0.0:8080", "nbi.service.app:app"] +# NOTE: Configured single worker to prevent issues with multi-worker synchronization. To be invetsigated. +ENTRYPOINT ["gunicorn", "--workers", "1", "--worker-class", "eventlet", "--bind", "0.0.0.0:8080", "nbi.service.app:app"] diff --git a/src/nbi/service/NbiApplication.py b/src/nbi/service/NbiApplication.py index dee09462c..16c1a6a1a 100644 --- a/src/nbi/service/NbiApplication.py +++ b/src/nbi/service/NbiApplication.py @@ -44,13 +44,13 @@ class NbiApplication: # Configure KafkaManager to enable SocketIO Servers running in different # gunicorn workers to self-coordinate and share sessions. - self._sio_client_manager = socketio.KafkaManager( - url='kafka://{:s}'.format(KafkaConfig.get_kafka_address()), - channel=KafkaTopic.NBI_SOCKETIO_WORKERS.value - ) + #self._sio_client_manager = socketio.KafkaManager( + # url='kafka://{:s}'.format(KafkaConfig.get_kafka_address()), + # channel=KafkaTopic.NBI_SOCKETIO_WORKERS.value + #) self._sio = SocketIO( self._app, cors_allowed_origins='*', async_mode='eventlet', - client_manager=self._sio_client_manager, + #client_manager=self._sio_client_manager, logger=True, engineio_logger=True ) diff --git a/src/nbi/service/health_probes/Namespaces.py b/src/nbi/service/health_probes/Namespaces.py index 8a3f9323c..5f6a5205f 100644 --- a/src/nbi/service/health_probes/Namespaces.py +++ b/src/nbi/service/health_probes/Namespaces.py @@ -24,7 +24,7 @@ class HeartbeatServerNamespace(Namespace): def __init__(self): super().__init__(namespace=SIO_NAMESPACE) self._thread = HeartbeatThread(self) - self._thread.start() + #self._thread.start() def stop_thread(self) -> None: self._thread.stop() -- GitLab From fdd6265193bfe360bb46b53442ee4bd1d4ffd388 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 00:09:27 +0000 Subject: [PATCH 120/213] Service component: - Renamed service handler e2e_orch to optical_tfs --- .../OpticalTfsServiceHandler.py} | 28 +++++++++---------- .../{e2e_orch => optical_tfs}/__init__.py | 0 2 files changed, 14 insertions(+), 14 deletions(-) rename src/service/service/service_handlers/{e2e_orch/E2EOrchestratorServiceHandler.py => optical_tfs/OpticalTfsServiceHandler.py} (90%) rename src/service/service/service_handlers/{e2e_orch => optical_tfs}/__init__.py (100%) diff --git a/src/service/service/service_handlers/e2e_orch/E2EOrchestratorServiceHandler.py b/src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py similarity index 90% rename from src/service/service/service_handlers/e2e_orch/E2EOrchestratorServiceHandler.py rename to src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py index 9512f242c..93dfce19e 100644 --- a/src/service/service/service_handlers/e2e_orch/E2EOrchestratorServiceHandler.py +++ b/src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py @@ -26,9 +26,9 @@ from service.service.task_scheduler.TaskExecutor import TaskExecutor LOGGER = logging.getLogger(__name__) -METRICS_POOL = MetricsPool('Service', 'Handler', labels={'handler': 'e2e_orch'}) +METRICS_POOL = MetricsPool('Service', 'Handler', labels={'handler': 'optical_tfs'}) -class E2EOrchestratorServiceHandler(_ServiceHandler): +class OpticalTfsServiceHandler(_ServiceHandler): def __init__( # pylint: disable=super-init-not-called self, service : Service, task_executor : TaskExecutor, **settings ) -> None: @@ -47,7 +47,7 @@ class E2EOrchestratorServiceHandler(_ServiceHandler): service_uuid = self.__service.service_id.service_uuid.uuid settings = self.__settings_handler.get('/settings') json_settings : Dict = {} if settings is None else settings.value - bitrate = json_settings.get('bitrate', 1000) + bitrate = json_settings['bitrate'] results = [] try: @@ -64,10 +64,10 @@ class E2EOrchestratorServiceHandler(_ServiceHandler): controller = src_controller json_config_rule = json_config_rule_set('/services/service[{:s}]'.format(service_uuid), { - 'uuid' : service_uuid, - 'src_node' : src_endpoint_uuid, - 'dst_node' : dst_endpoint_uuid, - 'bitrate' : bitrate + 'uuid' : service_uuid, + 'src_node' : src_endpoint_uuid, + 'dst_node' : dst_endpoint_uuid, + 'bitrate' : bitrate }) del controller.device_config.config_rules[:] controller.device_config.config_rules.append(ConfigRule(**json_config_rule)) @@ -90,8 +90,8 @@ class E2EOrchestratorServiceHandler(_ServiceHandler): service_uuid = self.__service.service_id.service_uuid.uuid settings = self.__settings_handler.get('/settings') json_settings : Dict = {} if settings is None else settings.value - flow_id = json_settings.get('flow_id', 100) - bitrate = json_settings.get('bitrate', 1000) + flow_id = json_settings['flow_id'] + bitrate = json_settings['bitrate'] results = [] try: @@ -108,11 +108,11 @@ class E2EOrchestratorServiceHandler(_ServiceHandler): controller = src_controller json_config_rule = json_config_rule_set('/services/service[{:s}]'.format(service_uuid), { - 'uuid' : service_uuid, - 'flow_id' : flow_id, - 'src_node' : src_endpoint_uuid, - 'dst_node' : dst_endpoint_uuid, - 'bitrate' : bitrate + 'uuid' : service_uuid, + 'flow_id' : flow_id, + 'src_node' : src_endpoint_uuid, + 'dst_node' : dst_endpoint_uuid, + 'bitrate' : bitrate }) del controller.device_config.config_rules[:] diff --git a/src/service/service/service_handlers/e2e_orch/__init__.py b/src/service/service/service_handlers/optical_tfs/__init__.py similarity index 100% rename from src/service/service/service_handlers/e2e_orch/__init__.py rename to src/service/service/service_handlers/optical_tfs/__init__.py -- GitLab From 1b6624907310329a7858ee3747e31fa4d4acdae7 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 00:10:01 +0000 Subject: [PATCH 121/213] PathComp Component - Frontend: - Updated default link capacity values --- .../frontend/service/algorithms/tools/ComposeRequest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pathcomp/frontend/service/algorithms/tools/ComposeRequest.py b/src/pathcomp/frontend/service/algorithms/tools/ComposeRequest.py index 0554084f8..3ca4dec3e 100644 --- a/src/pathcomp/frontend/service/algorithms/tools/ComposeRequest.py +++ b/src/pathcomp/frontend/service/algorithms/tools/ComposeRequest.py @@ -101,8 +101,8 @@ def compose_device(grpc_device : Device) -> Dict: link_port_direction = LinkPortDirection.BIDIRECTIONAL.value termination_direction = TerminationDirection.BIDIRECTIONAL.value termination_state = TerminationState.TERMINATED_BIDIRECTIONAL.value - total_potential_capacity = compose_capacity(200, CapacityUnit.MBPS.value) - available_capacity = compose_capacity(200, CapacityUnit.MBPS.value) + total_potential_capacity = compose_capacity(100000, CapacityUnit.GBPS.value) + available_capacity = compose_capacity(100000, CapacityUnit.GBPS.value) endpoint = compose_endpoint( endpoint_id, endpoint_type, link_port_direction, termination_direction, termination_state, total_potential_capacity, available_capacity) -- GitLab From 27392e7671b40d0a576d896db706ea44ba553e02 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 00:10:22 +0000 Subject: [PATCH 122/213] Service component: - Renamed service handler e2e_orch to optical_tfs --- src/service/service/service_handlers/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/service/service/service_handlers/__init__.py b/src/service/service/service_handlers/__init__.py index 85545d238..74ad3620a 100644 --- a/src/service/service/service_handlers/__init__.py +++ b/src/service/service/service_handlers/__init__.py @@ -28,7 +28,7 @@ from .microwave.MicrowaveServiceHandler import MicrowaveServiceHandler from .p4.p4_service_handler import P4ServiceHandler from .tapi_tapi.TapiServiceHandler import TapiServiceHandler from .tapi_xr.TapiXrServiceHandler import TapiXrServiceHandler -from .e2e_orch.E2EOrchestratorServiceHandler import E2EOrchestratorServiceHandler +from .optical_tfs.OpticalTfsServiceHandler import OpticalTfsServiceHandler from .oc.OCServiceHandler import OCServiceHandler from .qkd.qkd_service_handler import QKDServiceHandler @@ -117,9 +117,9 @@ SERVICE_HANDLERS = [ FilterFieldEnum.DEVICE_DRIVER : [DeviceDriverEnum.DEVICEDRIVER_IETF_L2VPN], } ]), - (E2EOrchestratorServiceHandler, [ + (OpticalTfsServiceHandler, [ { - FilterFieldEnum.SERVICE_TYPE : ServiceTypeEnum.SERVICETYPE_E2E, + FilterFieldEnum.SERVICE_TYPE : ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY, FilterFieldEnum.DEVICE_DRIVER : [DeviceDriverEnum.DEVICEDRIVER_OPTICAL_TFS], } ]), -- GitLab From aa159a616a05e24480ab543ef421d57c66145c81 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 07:51:46 +0000 Subject: [PATCH 123/213] E2E Orchestrator component: - Corrected vlink optical service endpoints --- .../service/subscriptions/dispatchers/recommendation/Tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py index 20665fcb5..12b2069cf 100644 --- a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py @@ -160,7 +160,7 @@ def compose_optical_service(vlink_request : Dict) -> Dict: ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY, context_id=json_context_id(DEFAULT_CONTEXT_NAME), endpoint_ids=[ - optical_border_endpoint_ids[1], optical_border_endpoint_ids[2] + optical_border_endpoint_ids[0], optical_border_endpoint_ids[-1] ], constraints=constraints, ) -- GitLab From a10687b7ef08fa87766f51ce4066173ab1634a71 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 12:54:03 +0000 Subject: [PATCH 124/213] Common - Object Factory tools: - Added field name to json_service() --- src/common/tools/object_factory/Service.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/common/tools/object_factory/Service.py b/src/common/tools/object_factory/Service.py index ab399adbe..74c183230 100644 --- a/src/common/tools/object_factory/Service.py +++ b/src/common/tools/object_factory/Service.py @@ -30,10 +30,10 @@ def json_service_id(service_uuid : str, context_id : Optional[Dict] = None): def json_service( service_uuid : str, service_type : ServiceTypeEnum, context_id : Optional[Dict] = None, - status : ServiceStatusEnum = ServiceStatusEnum.SERVICESTATUS_PLANNED, - endpoint_ids : List[Dict] = [], constraints : List[Dict] = [], config_rules : List[Dict] = []): - - return { + name : Optional[str] = None, status : ServiceStatusEnum = ServiceStatusEnum.SERVICESTATUS_PLANNED, + endpoint_ids : List[Dict] = [], constraints : List[Dict] = [], config_rules : List[Dict] = [] +) -> Dict: + result = { 'service_id' : json_service_id(service_uuid, context_id=context_id), 'service_type' : service_type, 'service_status' : {'service_status': status}, @@ -41,6 +41,8 @@ def json_service( 'service_constraints' : copy.deepcopy(constraints), 'service_config' : {'config_rules': copy.deepcopy(config_rules)}, } + if name is not None: result['name'] = name + return result def json_service_qkd_planned( service_uuid : str, endpoint_ids : List[Dict] = [], constraints : List[Dict] = [], -- GitLab From 6161b92a0b6d9bee9bcc7fc8183c0d1be15c4d34 Mon Sep 17 00:00:00 2001 From: hajipour <shajipour@cttc.es> Date: Mon, 17 Mar 2025 15:04:49 +0100 Subject: [PATCH 125/213] debug/refactor: - sub service creation code changed to avoid new sub service creation when multi-domain services are updated - sub service creation code refactored with dataclass addition --- .../algorithms/tools/ComputeSubServices.py | 76 +++++++++++-------- 1 file changed, 46 insertions(+), 30 deletions(-) diff --git a/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py b/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py index dfcd1156b..728bb58c8 100644 --- a/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py +++ b/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py @@ -45,24 +45,39 @@ # ], [UUID('c2e57966-5d82-4705-a5fe-44cf6487219e')]) # ] -import logging, queue, uuid +import logging, queue +from dataclasses import dataclass, field from typing import Dict, List, Optional, Tuple from common.DeviceTypes import DeviceTypeEnum from common.proto.context_pb2 import Device, ServiceTypeEnum +from common.tools.context_queries.Slice import get_uuid_from_string from .ResourceGroups import IGNORED_DEVICE_TYPES, REMOTEDOMAIN_DEVICE_TYPES, get_resource_classification from .ServiceTypes import get_service_type LOGGER = logging.getLogger(__name__) +@dataclass +class ConnectionEntry: + uuid: str = '' + service_type : ServiceTypeEnum = ServiceTypeEnum.SERVICETYPE_UNKNOWN + path_hops : List[Dict] = field(default_factory=list) + dependencies : List[str] = field(default_factory=list) + + def __post_init__(self) -> None: + if self.uuid != '': + return + composed_string = '-'.join(f'{path_hop["device"]}/{path_hop["ingress_ep"]}/{path_hop["egress_ep"]}' for path_hop in self.path_hops) + self.sub_service_uuid = get_uuid_from_string(composed_string) + def convert_explicit_path_hops_to_connections( path_hops : List[Dict], device_dict : Dict[str, Tuple[Dict, Device]], main_service_uuid : str, main_service_type : ServiceTypeEnum -) -> List[Tuple[str, int, List[str], List[str]]]: +) -> List[Tuple[str, int, List[Dict], List[str]]]: LOGGER.debug('path_hops={:s}'.format(str(path_hops))) connection_stack = queue.LifoQueue() - connections : List[Tuple[str, int, List[str], List[str]]] = list() + connections : List[ConnectionEntry] = list() prv_device_uuid = None prv_res_class : Tuple[Optional[int], Optional[DeviceTypeEnum], Optional[str]] = None, None, None @@ -85,82 +100,83 @@ def convert_explicit_path_hops_to_connections( LOGGER.debug(' create and terminate underlying connection') # create underlying connection - sub_service_uuid = str(uuid.uuid4()) - prv_service_type = connection_stack.queue[-1][1] + prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) - connection_stack.put((sub_service_uuid, service_type, [path_hop], [])) + connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) + connection_stack.put(connection_entry) # underlying connection ended - connection = connection_stack.get() + connection: ConnectionEntry = connection_stack.get() connections.append(connection) - connection_stack.queue[-1][3].append(connection[0]) + connection_stack.queue[-1].dependencies.append(connection.uuid) #connection_stack.queue[-1][2].append(path_hop) elif prv_res_class[2] is None and res_class[2] is not None: # entering domain of a device controller, create underlying connection LOGGER.debug(' entering domain of a device controller, create underlying connection') - sub_service_uuid = str(uuid.uuid4()) - prv_service_type = connection_stack.queue[-1][1] + prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) - connection_stack.put((sub_service_uuid, service_type, [path_hop], [])) + connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) + connection_stack.put(connection_entry) elif prv_res_class[2] is not None and res_class[2] is None: # leaving domain of a device controller, terminate underlying connection LOGGER.debug(' leaving domain of a device controller, terminate underlying connection') connection = connection_stack.get() connections.append(connection) - connection_stack.queue[-1][3].append(connection[0]) - connection_stack.queue[-1][2].append(path_hop) + connection_stack.queue[-1].dependencies.append(connection.uuid) + connection_stack.queue[-1].path_hops.append(path_hop) elif prv_res_class[2] is not None and res_class[2] is not None: if prv_res_class[2] == res_class[2]: # stay in domain of a device controller, connection continues LOGGER.debug(' stay in domain of a device controller, connection continues') - connection_stack.queue[-1][2].append(path_hop) + connection_stack.queue[-1].path_hops.append(path_hop) else: # switching to different device controller, chain connections LOGGER.debug(' switching to different device controller, chain connections') connection = connection_stack.get() connections.append(connection) - connection_stack.queue[-1][3].append(connection[0]) + connection_stack.queue[-1].dependencies.append(connection.uuid) - sub_service_uuid = str(uuid.uuid4()) - prv_service_type = connection_stack.queue[-1][1] + prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) - connection_stack.put((sub_service_uuid, service_type, [path_hop], [])) + connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) + connection_stack.put(connection_entry) elif prv_res_class[0] is None: # path ingress LOGGER.debug(' path ingress') - connection_stack.put((main_service_uuid, main_service_type, [path_hop], [])) + connection_entry = ConnectionEntry(uuid=main_service_uuid, service_type=main_service_type, path_hops=[path_hop]) + connection_stack.put(connection_entry) elif prv_res_class[0] > res_class[0]: # create underlying connection LOGGER.debug(' create underlying connection') - sub_service_uuid = str(uuid.uuid4()) - prv_service_type = connection_stack.queue[-1][1] + prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) - connection_stack.put((sub_service_uuid, service_type, [path_hop], [])) + connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) + connection_stack.put(connection_entry) elif prv_res_class[0] == res_class[0]: # same resource group kind LOGGER.debug(' same resource group kind') if prv_res_class[1] == res_class[1] and prv_res_class[2] == res_class[2]: # same device type and device controller: connection continues LOGGER.debug(' connection continues') - connection_stack.queue[-1][2].append(path_hop) + connection_stack.queue[-1].path_hops.append(path_hop) else: # different device type or device controller: chain connections LOGGER.debug(' chain connections') connection = connection_stack.get() connections.append(connection) - connection_stack.queue[-1][3].append(connection[0]) + connection_stack.queue[-1].dependencies.append(connection.uuid) - sub_service_uuid = str(uuid.uuid4()) - prv_service_type = connection_stack.queue[-1][1] + prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) - connection_stack.put((sub_service_uuid, service_type, [path_hop], [])) + connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) + connection_stack.put(connection_entry) elif prv_res_class[0] < res_class[0]: # underlying connection ended LOGGER.debug(' underlying connection ended') connection = connection_stack.get() connections.append(connection) - connection_stack.queue[-1][3].append(connection[0]) - connection_stack.queue[-1][2].append(path_hop) + connection_stack.queue[-1].dependencies.append(connection.uuid) + connection_stack.queue[-1].path_hops.append(path_hop) else: raise Exception('Uncontrolled condition') @@ -172,7 +188,7 @@ def convert_explicit_path_hops_to_connections( connections.append(connection_stack.get()) LOGGER.debug('connections={:s}'.format(str(connections))) assert connection_stack.empty() - return connections + return [(c.uuid, c.service_type, c.path_hops, c.dependencies) for c in connections] def convert_explicit_path_hops_to_plain_connection( path_hops : List[Dict], main_service_uuid : str, main_service_type : ServiceTypeEnum -- GitLab From 9f1b13b1cd7a40fab36332ef6a3b5837aa61c563 Mon Sep 17 00:00:00 2001 From: hajipour <shajipour@cttc.es> Date: Mon, 17 Mar 2025 18:33:40 +0100 Subject: [PATCH 126/213] debug: main service uuid added to the prefix of the hash function of the subservices, __post_init__ changed to a method tha is called in the code --- .../algorithms/tools/ComputeSubServices.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py b/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py index 728bb58c8..053e6d542 100644 --- a/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py +++ b/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py @@ -63,11 +63,11 @@ class ConnectionEntry: path_hops : List[Dict] = field(default_factory=list) dependencies : List[str] = field(default_factory=list) - def __post_init__(self) -> None: - if self.uuid != '': - return - composed_string = '-'.join(f'{path_hop["device"]}/{path_hop["ingress_ep"]}/{path_hop["egress_ep"]}' for path_hop in self.path_hops) - self.sub_service_uuid = get_uuid_from_string(composed_string) + def calculate_subservice_uuid(self, main_service_uuid: str) -> None: + composed_string = main_service_uuid + '-'.join( + f'{path_hop["device"]}/{path_hop["ingress_ep"]}/{path_hop["egress_ep"]}' for path_hop in self.path_hops + ) + self.uuid = get_uuid_from_string(composed_string) def convert_explicit_path_hops_to_connections( path_hops : List[Dict], device_dict : Dict[str, Tuple[Dict, Device]], @@ -103,6 +103,7 @@ def convert_explicit_path_hops_to_connections( prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) + connection_entry.calculate_subservice_uuid(main_service_uuid) connection_stack.put(connection_entry) # underlying connection ended @@ -116,6 +117,7 @@ def convert_explicit_path_hops_to_connections( prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) + connection_entry.calculate_subservice_uuid(main_service_uuid) connection_stack.put(connection_entry) elif prv_res_class[2] is not None and res_class[2] is None: # leaving domain of a device controller, terminate underlying connection @@ -139,6 +141,7 @@ def convert_explicit_path_hops_to_connections( prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) + connection_entry.calculate_subservice_uuid (main_service_uuid) connection_stack.put(connection_entry) elif prv_res_class[0] is None: # path ingress @@ -151,6 +154,7 @@ def convert_explicit_path_hops_to_connections( prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) + connection_entry.calculate_subservice_uuid(main_service_uuid) connection_stack.put(connection_entry) elif prv_res_class[0] == res_class[0]: # same resource group kind @@ -169,6 +173,7 @@ def convert_explicit_path_hops_to_connections( prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) + connection_entry.calculate_subservice_uuid(main_service_uuid) connection_stack.put(connection_entry) elif prv_res_class[0] < res_class[0]: # underlying connection ended -- GitLab From 64ba4d8e40ce1cb989eea0d2510e823885edbd51 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 19:15:49 +0000 Subject: [PATCH 127/213] Device component - OpticalTfs driver: - Corrected setup/teardown of optical connectivity services --- .../drivers/optical_tfs/OpticalTfsDriver.py | 30 ++-- .../drivers/optical_tfs/TfsApiClient.py | 145 ++++++++++++++++-- 2 files changed, 147 insertions(+), 28 deletions(-) diff --git a/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py b/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py index 8d7d95251..d2d3ec3bb 100644 --- a/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py +++ b/src/device/service/drivers/optical_tfs/OpticalTfsDriver.py @@ -20,7 +20,7 @@ from common.type_checkers.Checkers import chk_string, chk_type from device.service.driver_api._Driver import _Driver, RESOURCE_ENDPOINTS, RESOURCE_SERVICES from device.service.driver_api.ImportTopologyEnum import ImportTopologyEnum, get_import_topology from .TfsApiClient import TfsApiClient -from .TfsOpticalClient import TfsOpticalClient +#from .TfsOpticalClient import TfsOpticalClient LOGGER = logging.getLogger(__name__) @@ -46,10 +46,10 @@ class OpticalTfsDriver(_Driver): self.address, self.port, scheme=scheme, username=username, password=password, timeout=timeout ) - self.toc = TfsOpticalClient( - self.address, int(self.port), scheme=scheme, username=username, - password=password, timeout=timeout - ) + #self.toc = TfsOpticalClient( + # self.address, int(self.port), scheme=scheme, username=username, + # password=password, timeout=timeout + #) # Options are: # disabled --> just import endpoints as usual @@ -99,8 +99,7 @@ class OpticalTfsDriver(_Driver): results.extend(self.tac.get_devices_endpoints(self.__import_topology)) elif resource_key == RESOURCE_SERVICES: # return all services through - #results.extend(self.toc.get_lightpaths()) - pass + results.extend(self.tac.get_services()) else: MSG = 'ResourceKey({:s}) not implemented' LOGGER.warning(MSG.format(str(resource_key))) @@ -123,13 +122,11 @@ class OpticalTfsDriver(_Driver): resource_key, resource_value = resource try: resource_value = json.loads(resource_value) - src_node = resource_value['src_node'] - dst_node = resource_value['dst_node'] - bitrate = resource_value['bitrate' ] - results.extend(self.toc.add_lightpath(src_node, dst_node, bitrate)) + self.tac.setup_service(resource_value) results.append((resource_key, True)) except Exception as e: - LOGGER.exception('Unhandled error processing resource_key({:s})'.format(str(resource_key))) + MSG = 'Unhandled error processing resource_key({:s})' + LOGGER.exception(MSG.format(str(resource_key))) results.append((resource_key, e)) return results @@ -146,14 +143,11 @@ class OpticalTfsDriver(_Driver): resource_key,resource_value = resource try: resource_value = json.loads(resource_value) - flow_id = resource_value['flow_id' ] - src_node = resource_value['src_node'] - dst_node = resource_value['dst_node'] - bitrate = resource_value['bitrate' ] - self.toc.del_lightpath(flow_id, src_node, dst_node, bitrate) + self.tac.teardown_service(resource_value) results.append((resource_key, True)) except Exception as e: - LOGGER.exception('Unhandled error processing resource_key({:s})'.format(str(resource_key))) + MSG = 'Unhandled error processing resource_key({:s})' + LOGGER.exception(MSG.format(str(resource_key))) results.append((resource_key, e)) return results diff --git a/src/device/service/drivers/optical_tfs/TfsApiClient.py b/src/device/service/drivers/optical_tfs/TfsApiClient.py index e9b21f249..49c5a9e4f 100644 --- a/src/device/service/drivers/optical_tfs/TfsApiClient.py +++ b/src/device/service/drivers/optical_tfs/TfsApiClient.py @@ -12,14 +12,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging, requests -from typing import Dict, List, Optional +import logging +from typing import Dict, List, Optional, Tuple +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.proto.context_pb2 import ServiceStatusEnum, ServiceTypeEnum from common.tools.client.RestClient import RestClient +from common.tools.object_factory.Constraint import json_constraint_custom +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.EndPoint import json_endpoint_id +from common.tools.object_factory.Service import json_service from device.service.driver_api.ImportTopologyEnum import ImportTopologyEnum -GET_CONTEXT_IDS_URL = '/tfs-api/context_ids' -GET_DEVICES_URL = '/tfs-api/devices' -GET_LINKS_URL = '/tfs-api/links' +CONTEXT_IDS_URL = '/tfs-api/context_ids' +TOPOLOGY_URL = '/tfs-api/context/{context_uuid:s}/topology_details/{topology_uuid:s}' +SERVICES_URL = '/tfs-api/context/{context_uuid:s}/services' +SERVICE_URL = '/tfs-api/context/{context_uuid:s}/service/{service_uuid:s}' MAPPING_STATUS = { 'DEVICEOPERATIONALSTATUS_UNDEFINED': 0, @@ -60,7 +68,7 @@ class TfsApiClient(RestClient): ) def check_credentials(self) -> None: - self.get(GET_CONTEXT_IDS_URL, expected_status_codes={requests.codes['OK']}) + self.get(CONTEXT_IDS_URL) LOGGER.info('Credentials checked') def get_devices_endpoints( @@ -74,10 +82,12 @@ class TfsApiClient(RestClient): MSG = 'Unsupported import_topology mode: {:s}' raise Exception(MSG.format(str(import_topology))) - devices = self.get(GET_DEVICES_URL, expected_status_codes={requests.codes['OK']}) + topology = self.get(TOPOLOGY_URL.format( + context_uuid=DEFAULT_CONTEXT_NAME, topology_uuid=DEFAULT_TOPOLOGY_NAME + )) result = list() - for json_device in devices['devices']: + for json_device in topology['devices']: device_uuid : str = json_device['device_id']['device_uuid']['uuid'] device_type : str = json_device['device_type'] #if not device_type.startswith('emu-'): device_type = 'emu-' + device_type @@ -110,9 +120,24 @@ class TfsApiClient(RestClient): LOGGER.debug('[get_devices_endpoints] devices only; returning') return result - links = self.get(GET_LINKS_URL, expected_status_codes={requests.codes['OK']}) + for json_link in topology['links']: + link_uuid : str = json_link['link_id']['link_uuid']['uuid'] + link_url = '/links/link[{:s}]'.format(link_uuid) + link_endpoint_ids = [ + ( + json_endpoint_id['device_id']['device_uuid']['uuid'], + json_endpoint_id['endpoint_uuid']['uuid'], + ) + for json_endpoint_id in json_link['link_endpoint_ids'] + ] + link_data = { + 'uuid': json_link['link_id']['link_uuid']['uuid'], + 'name': json_link['name'], + 'endpoints': link_endpoint_ids, + } + result.append((link_url, link_data)) - for json_link in links['links']: + for json_link in topology['optical_links']: link_uuid : str = json_link['link_id']['link_uuid']['uuid'] link_url = '/links/link[{:s}]'.format(link_uuid) link_endpoint_ids = [ @@ -131,3 +156,103 @@ class TfsApiClient(RestClient): LOGGER.debug('[get_devices_endpoints] topology; returning') return result + + def setup_service(self, resource_value : Dict) -> None: + service_uuid = resource_value['service_uuid' ] + service_name = resource_value['service_name' ] + src_device_uuid = resource_value['src_device_uuid' ] + src_endpoint_uuid = resource_value['src_endpoint_uuid'] + dst_device_uuid = resource_value['dst_device_uuid' ] + dst_endpoint_uuid = resource_value['dst_endpoint_uuid'] + bitrate = resource_value['bitrate' ] + bidir = resource_value['bidir' ] + ob_width = resource_value['ob_width' ] + + endpoint_ids = [ + json_endpoint_id(json_device_id(src_device_uuid), src_endpoint_uuid), + json_endpoint_id(json_device_id(dst_device_uuid), dst_endpoint_uuid), + ] + constraints = [ + json_constraint_custom('bandwidth[gbps]', str(bitrate)), + json_constraint_custom('bidirectionality', '1' if bidir else '0'), + ] + if service_name == 'IP1/PORT-xe1==IP2/PORT-xe1': + constraints.append(json_constraint_custom('optical-band-width[GHz]', str(ob_width))) + + service_add = json_service( + service_uuid, + ServiceTypeEnum.Name(ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY), + context_id = json_context_id(DEFAULT_CONTEXT_NAME), + name = service_name, + status = ServiceStatusEnum.Name(ServiceStatusEnum.SERVICESTATUS_PLANNED), + ) + services_url = SERVICES_URL.format(context_uuid=DEFAULT_CONTEXT_NAME) + service_ids = self.post(services_url, body=service_add) + assert len(service_ids) == 1 + service_id = service_ids[0] + service_uuid = service_id['service_uuid']['uuid'] + + service_upd = json_service( + service_uuid, + ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY, + context_id = json_context_id(DEFAULT_CONTEXT_NAME), + name = service_name, endpoint_ids = endpoint_ids, constraints = constraints, + status = ServiceStatusEnum.Name(ServiceStatusEnum.SERVICESTATUS_PLANNED), + ) + service_url = SERVICE_URL.format(context_uuid=DEFAULT_CONTEXT_NAME, service_uuid=service_uuid) + self.put(service_url, body=service_upd) + + def teardown_service(self, resource_value : Dict) -> None: + service_uuid = resource_value['service_uuid'] + service_name = resource_value['service_name'] + + service_url = SERVICE_URL.format(context_uuid=DEFAULT_CONTEXT_NAME, service_uuid=service_uuid) + self.delete(service_url) + if service_name == 'IP1/PORT-xe1==IP2/PORT-xe1': + self.delete(service_url) + + @staticmethod + def parse_service(service : Dict) -> Tuple[str, Dict]: + service_uuid = service['service_id']['service_uuid']['uuid'] + src_endpoint_id = service['service_endpoint_ids'][ 0] + dst_endpoint_id = service['service_endpoint_ids'][-1] + parsed_service = { + 'service_uuid' : service_uuid, + 'service_name' : service['name'], + 'src_device_uuid' : src_endpoint_id['device_id']['device_uuid']['uuid'], + 'src_endpoint_uuid': src_endpoint_id['endpoint_uuid']['uuid'], + 'dst_device_uuid' : dst_endpoint_id['device_id']['device_uuid']['uuid'], + 'dst_endpoint_uuid': dst_endpoint_id['endpoint_uuid']['uuid'], + } + + for constraint in service.get('service_constraints', list()): + if 'custom' not in constraint: continue + constraint_type = constraint['custom']['constraint_type'] + constraint_value = constraint['custom']['constraint_value'] + if constraint_type == 'bandwidth[gbps]': + parsed_service['bitrate'] = int(float(constraint_value)) + if constraint_type == 'bidirectionality': + parsed_service['bidir'] = int(constraint_value) == 1 + if constraint_type == 'optical-band-width[GHz]': + parsed_service['ob_width'] = int(constraint_value) + + resource_key = '/services/service[{:s}]'.format(service_uuid) + return resource_key, parsed_service + + def get_services(self) -> List[Tuple[str, Dict]]: + services_url = SERVICES_URL.format(context_uuid=DEFAULT_CONTEXT_NAME) + _services = self.get(services_url) + OPTICAL_CONNECTIVITY_SERVICE_TYPES = { + 'SERVICETYPE_OPTICAL_CONNECTIVITY', + ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY + } + return [ + TfsApiClient.parse_service(service) + for service in _services['services'] + if service['service_type'] in OPTICAL_CONNECTIVITY_SERVICE_TYPES + ] + + def get_service(self, service_uuid : str) -> Tuple[str, Dict]: + service_url = SERVICE_URL.format(context_uuid=DEFAULT_CONTEXT_NAME, service_uuid=service_uuid) + service = self.get(service_url) + return TfsApiClient.parse_service(service) -- GitLab From 970d7456d7210cd27625412dfec0cbc5c895eab6 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 19:16:54 +0000 Subject: [PATCH 128/213] NBI component - TFS API: - Corrected parsing of POST service requests - Corrected return types of POST methods --- src/nbi/service/tfs_api/Resources.py | 38 +++++++++++++++------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/src/nbi/service/tfs_api/Resources.py b/src/nbi/service/tfs_api/Resources.py index ab608f2d7..294a06e6e 100644 --- a/src/nbi/service/tfs_api/Resources.py +++ b/src/nbi/service/tfs_api/Resources.py @@ -55,10 +55,10 @@ class Contexts(_Resource): json_requests = request.get_json() if 'contexts' in json_requests: json_requests = json_requests['contexts'] - return [ - format_grpc_to_json(self.context_client.SetContext(grpc_context(context))) + return jsonify([ + grpc_message_to_json(self.context_client.SetContext(grpc_context(context))) for context in json_requests - ] + ]) class Context(_Resource): def get(self, context_uuid : str): @@ -157,10 +157,10 @@ class Topologies(_Resource): for topology in json_requests: if context_uuid != topology['topology_id']['context_id']['context_uuid']['uuid']: raise BadRequest('Mismatching context_uuid') - return [ - format_grpc_to_json(self.context_client.SetTopology(grpc_topology(**topology))) + return jsonify([ + grpc_message_to_json(self.context_client.SetTopology(grpc_topology(topology))) for topology in json_requests - ] + ]) class Topology(_Resource): def get(self, context_uuid : str, topology_uuid : str): @@ -194,13 +194,15 @@ class Services(_Resource): json_requests = request.get_json() if 'services' in json_requests: json_requests = json_requests['services'] + if isinstance(json_requests, dict): + json_requests = [json_requests] for service in json_requests: if context_uuid != service['service_id']['context_id']['context_uuid']['uuid']: raise BadRequest('Mismatching context_uuid') - return [ - format_grpc_to_json(self.service_client.CreateService(grpc_service(**service))) + return jsonify([ + grpc_message_to_json(self.service_client.CreateService(grpc_service(service))) for service in json_requests - ] + ]) class Service(_Resource): def get(self, context_uuid : str, service_uuid : str): @@ -232,10 +234,10 @@ class Slices(_Resource): for slice_ in json_requests: if context_uuid != slice_['slice_id']['context_id']['context_uuid']['uuid']: raise BadRequest('Mismatching context_uuid') - return [ - format_grpc_to_json(self.slice_client.CreateSlice(grpc_slice(**slice_))) + return jsonify([ + grpc_message_to_json(self.slice_client.CreateSlice(grpc_slice(slice_))) for slice_ in json_requests - ] + ]) class Slice(_Resource): def get(self, context_uuid : str, slice_uuid : str): @@ -264,10 +266,10 @@ class Devices(_Resource): json_requests = request.get_json() if 'devices' in json_requests: json_requests = json_requests['devices'] - return [ - format_grpc_to_json(self.device_client.AddDevice(grpc_device(device))) + return jsonify([ + grpc_message_to_json(self.device_client.AddDevice(grpc_device(device))) for device in json_requests - ] + ]) class Device(_Resource): def get(self, device_uuid : str): @@ -294,10 +296,10 @@ class Links(_Resource): json_requests = request.get_json() if 'links' in json_requests: json_requests = json_requests['links'] - return [ - format_grpc_to_json(self.context_client.SetLink(grpc_link(link))) + return jsonify([ + grpc_message_to_json(self.context_client.SetLink(grpc_link(link))) for link in json_requests - ] + ]) class Link(_Resource): def get(self, link_uuid : str): -- GitLab From 0e8bc24b016ae0c94c45cb3a20e56577bc3de2b5 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 19:18:22 +0000 Subject: [PATCH 129/213] Service component - OpticalTfs Service Handler: - Corrected composition of requests for setting up and tearing down optical connectivity services --- .../optical_tfs/OpticalTfsServiceHandler.py | 52 +++++++++++++------ 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py b/src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py index 93dfce19e..1b48f90f1 100644 --- a/src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py +++ b/src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py @@ -16,7 +16,7 @@ import json, logging from typing import Any, Dict, List, Optional, Tuple, Union from common.method_wrappers.Decorator import MetricsPool, metered_subclass_method from common.proto.context_pb2 import ConfigRule, DeviceId, Service -from common.tools.object_factory.ConfigRule import json_config_rule_set +from common.tools.object_factory.ConfigRule import json_config_rule_delete, json_config_rule_set from common.tools.object_factory.Device import json_device_id from common.type_checkers.Checkers import chk_type from service.service.service_handler_api.Tools import get_device_endpoint_uuids @@ -36,6 +36,20 @@ class OpticalTfsServiceHandler(_ServiceHandler): self.__task_executor = task_executor self.__settings_handler = SettingsHandler(service.service_config, **settings) + def _get_constraints(self) -> Tuple[Optional[int], Optional[int], Optional[int]]: + bitrate = None + bidir = None + ob_width = None + for constraint in self.__service.service_constraints: + if constraint.WhichOneof('constraint') != 'custom': continue + if constraint.custom.constraint_type == 'bandwidth[gbps]': + bitrate = int(float(constraint.custom.constraint_value)) + elif constraint.custom.constraint_type == 'bidirectionality': + bidir = int(constraint.custom.constraint_value) == 1 + elif constraint.custom.constraint_type == 'optical-band-width[GHz]': + ob_width = int(constraint.custom.constraint_value) + return bitrate, bidir, ob_width + @metered_subclass_method(METRICS_POOL) def SetEndpoint( self, endpoints : List[Tuple[str, str, Optional[str]]], connection_uuid : Optional[str] = None @@ -45,9 +59,8 @@ class OpticalTfsServiceHandler(_ServiceHandler): if len(endpoints) < 2: return [] service_uuid = self.__service.service_id.service_uuid.uuid - settings = self.__settings_handler.get('/settings') - json_settings : Dict = {} if settings is None else settings.value - bitrate = json_settings['bitrate'] + service_name = self.__service.name + bitrate, bidir, ob_width = self._get_constraints() results = [] try: @@ -64,10 +77,15 @@ class OpticalTfsServiceHandler(_ServiceHandler): controller = src_controller json_config_rule = json_config_rule_set('/services/service[{:s}]'.format(service_uuid), { - 'uuid' : service_uuid, - 'src_node' : src_endpoint_uuid, - 'dst_node' : dst_endpoint_uuid, - 'bitrate' : bitrate + 'service_uuid' : service_uuid, + 'service_name' : service_name, + 'src_device_uuid' : src_device_uuid, + 'src_endpoint_uuid': src_endpoint_uuid, + 'dst_device_uuid' : dst_device_uuid, + 'dst_endpoint_uuid': dst_endpoint_uuid, + 'bitrate' : bitrate, + 'bidir' : bidir, + 'ob_width' : ob_width, }) del controller.device_config.config_rules[:] controller.device_config.config_rules.append(ConfigRule(**json_config_rule)) @@ -91,7 +109,7 @@ class OpticalTfsServiceHandler(_ServiceHandler): settings = self.__settings_handler.get('/settings') json_settings : Dict = {} if settings is None else settings.value flow_id = json_settings['flow_id'] - bitrate = json_settings['bitrate'] + bitrate, bidir, ob_width = self._get_constraints() results = [] try: @@ -107,12 +125,16 @@ class OpticalTfsServiceHandler(_ServiceHandler): controller = src_controller - json_config_rule = json_config_rule_set('/services/service[{:s}]'.format(service_uuid), { - 'uuid' : service_uuid, - 'flow_id' : flow_id, - 'src_node' : src_endpoint_uuid, - 'dst_node' : dst_endpoint_uuid, - 'bitrate' : bitrate + json_config_rule = json_config_rule_delete('/services/service[{:s}]'.format(service_uuid), { + 'flow_id' : flow_id, + 'service_uuid' : service_uuid, + 'src_device_uuid' : src_device_uuid, + 'src_endpoint_uuid': src_endpoint_uuid, + 'dst_device_uuid' : dst_device_uuid, + 'dst_endpoint_uuid': dst_endpoint_uuid, + 'bitrate' : bitrate, + 'bidir' : bidir, + 'ob_width' : ob_width, }) del controller.device_config.config_rules[:] -- GitLab From 761810ecdfc86433af3223996df439071711473d Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 19:19:05 +0000 Subject: [PATCH 130/213] OFC25 tests: - Corrected E2E and Optical descriptors --- .../ofc25/descriptors/old/topology_e2e.json | 85 +++ .../ofc25/descriptors/old/topology_opt.json | 192 ++++++ src/tests/ofc25/descriptors/topology_e2e.json | 72 +-- src/tests/ofc25/descriptors/topology_opt.json | 549 +++++++++++++++--- 4 files changed, 770 insertions(+), 128 deletions(-) create mode 100644 src/tests/ofc25/descriptors/old/topology_e2e.json create mode 100644 src/tests/ofc25/descriptors/old/topology_opt.json diff --git a/src/tests/ofc25/descriptors/old/topology_e2e.json b/src/tests/ofc25/descriptors/old/topology_e2e.json new file mode 100644 index 000000000..a8adf32ea --- /dev/null +++ b/src/tests/ofc25/descriptors/old/topology_e2e.json @@ -0,0 +1,85 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "TFS-PACKET"}}, "device_type": "teraflowsdn", + "device_drivers": ["DEVICEDRIVER_IETF_L3VPN"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.10"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8002"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "scheme": "http", "username": "admin", "password": "admin", "import_topology": "topology" + }}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TFS-OPTICAL"}}, "device_type": "teraflowsdn", + "device_drivers": ["DEVICEDRIVER_OPTICAL_TFS"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.0.2.10"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8003"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "scheme": "http", "username": "admin", "password": "admin", "import_topology": "topology" + }}} + ]} + } + ], + "links": [ + {"link_id": {"link_uuid": {"uuid": "IP1-T1.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "T1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP1-T1.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "T1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP1-T1.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "T1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + + {"link_id": {"link_uuid": {"uuid": "IP2-TP2.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP2-TP2.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP2-TP2.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + + {"link_id": {"link_uuid": {"uuid": "T1.1-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "T1.2-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "T1.3-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "TP2.1-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP2.2-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP2.3-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + ]} + ] +} diff --git a/src/tests/ofc25/descriptors/old/topology_opt.json b/src/tests/ofc25/descriptors/old/topology_opt.json new file mode 100644 index 000000000..dffa68ed2 --- /dev/null +++ b/src/tests/ofc25/descriptors/old/topology_opt.json @@ -0,0 +1,192 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "TP1.1"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TP1.2"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TP1.3"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + }, + + { + "device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "device_type": "emu-optical-roadm", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "ADP1", "type": "optical/add-drop"}, + {"uuid": "ADP2", "type": "optical/add-drop"}, + {"uuid": "ADP3", "type": "optical/add-drop"}, + {"uuid": "LINE2", "type": "optical/line" } + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "device_type": "emu-optical-roadm", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "LINE1", "type": "optical/line"}, + {"uuid": "LINE3", "type": "optical/line"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "device_type": "emu-optical-roadm", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "ADP1", "type": "optical/add-drop"}, + {"uuid": "ADP2", "type": "optical/add-drop"}, + {"uuid": "ADP3", "type": "optical/add-drop"}, + {"uuid": "LINE2", "type": "optical/line" } + ]}}} + ]} + }, + + { + "device_id": {"device_uuid": {"uuid": "TP2.1"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TP2.2"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TP2.3"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "LINE", "type": "optical/channel"} + ]}}} + ]} + } + ], + "links": [ + {"link_id": {"link_uuid": {"uuid": "MG-ON1->MG-ON2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "LINE2"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON2->MG-ON1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE1"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "LINE2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON2->MG-ON3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE3"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "LINE2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON3->MG-ON2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "LINE2"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE3"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "TP1.1->MG-ON1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP1.1" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP1.2->MG-ON1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP1.2" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP1.3->MG-ON1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP1.3" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP2.1->MG-ON3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.1" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP2.2->MG-ON3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.2" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "TP2.3->MG-ON3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "TP2.3" }}, "endpoint_uuid": {"uuid": "LINE"}}, + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP3"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "MG-ON1->TP1.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP1"}}, + {"device_id": {"device_uuid": {"uuid": "TP1.1" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON1->TP1.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP2"}}, + {"device_id": {"device_uuid": {"uuid": "TP1.2" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON1->TP1.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP3"}}, + {"device_id": {"device_uuid": {"uuid": "TP1.3" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON3->TP2.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP1"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.1" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON3->TP2.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP2"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.2" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "MG-ON3->TP2.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP3"}}, + {"device_id": {"device_uuid": {"uuid": "TP2.3" }}, "endpoint_uuid": {"uuid": "LINE"}} + ]} + ] +} diff --git a/src/tests/ofc25/descriptors/topology_e2e.json b/src/tests/ofc25/descriptors/topology_e2e.json index 16a4ead24..4d721861f 100644 --- a/src/tests/ofc25/descriptors/topology_e2e.json +++ b/src/tests/ofc25/descriptors/topology_e2e.json @@ -30,56 +30,56 @@ } ], "links": [ - {"link_id": {"link_uuid": {"uuid": "IP1-TP1.1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, - {"device_id": {"device_uuid": {"uuid": "TP1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + {"link_id": {"link_uuid": {"uuid": "IP1-T1.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "T1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "IP1-TP1.2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, - {"device_id": {"device_uuid": {"uuid": "TP1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + {"link_id": {"link_uuid": {"uuid": "IP1-T1.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "T1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "IP1-TP1.3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, - {"device_id": {"device_uuid": {"uuid": "TP1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + {"link_id": {"link_uuid": {"uuid": "IP1-T1.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "T1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "IP2-TP2.1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, - {"device_id": {"device_uuid": {"uuid": "TP2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + {"link_id": {"link_uuid": {"uuid": "IP2-T2.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "T2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "IP2-TP2.2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, - {"device_id": {"device_uuid": {"uuid": "TP2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + {"link_id": {"link_uuid": {"uuid": "IP2-T2.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "T2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "IP2-TP2.3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, - {"device_id": {"device_uuid": {"uuid": "TP2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + {"link_id": {"link_uuid": {"uuid": "IP2-T2.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "T2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.1-IP1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + {"link_id": {"link_uuid": {"uuid": "T1.1-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.2-IP1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + {"link_id": {"link_uuid": {"uuid": "T1.2-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.3-IP1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + {"link_id": {"link_uuid": {"uuid": "T1.3-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.1-IP2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + {"link_id": {"link_uuid": {"uuid": "T2.1-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.2-IP2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + {"link_id": {"link_uuid": {"uuid": "T2.2-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}} ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.3-IP2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, - {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + {"link_id": {"link_uuid": {"uuid": "T2.3-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}} ]} ] } diff --git a/src/tests/ofc25/descriptors/topology_opt.json b/src/tests/ofc25/descriptors/topology_opt.json index dffa68ed2..a39713821 100644 --- a/src/tests/ofc25/descriptors/topology_opt.json +++ b/src/tests/ofc25/descriptors/topology_opt.json @@ -7,186 +7,551 @@ ], "devices": [ { - "device_id": {"device_uuid": {"uuid": "TP1.1"}}, "device_type": "emu-optical-transponder", + "device_id": {"device_uuid": {"uuid": "T1.1"}}, "device_type": "emu-optical-transponder", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ {"uuid": "CLIENT", "type": "copper" }, - {"uuid": "LINE", "type": "optical/channel"} + {"uuid": "1", "type": "optical/channel"} ]}}} ]} }, { - "device_id": {"device_uuid": {"uuid": "TP1.2"}}, "device_type": "emu-optical-transponder", + "device_id": {"device_uuid": {"uuid": "T1.2"}}, "device_type": "emu-optical-transponder", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ {"uuid": "CLIENT", "type": "copper" }, - {"uuid": "LINE", "type": "optical/channel"} + {"uuid": "2", "type": "optical/channel"} ]}}} ]} }, { - "device_id": {"device_uuid": {"uuid": "TP1.3"}}, "device_type": "emu-optical-transponder", + "device_id": {"device_uuid": {"uuid": "T1.3"}}, "device_type": "emu-optical-transponder", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ {"uuid": "CLIENT", "type": "copper" }, - {"uuid": "LINE", "type": "optical/channel"} + {"uuid": "3", "type": "optical/channel"} ]}}} ]} }, { - "device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "device_type": "emu-optical-roadm", + "device_id": {"device_uuid": {"uuid": "MGON1"}}, "device_type": "emu-optical-roadm", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "ADP1", "type": "optical/add-drop"}, - {"uuid": "ADP2", "type": "optical/add-drop"}, - {"uuid": "ADP3", "type": "optical/add-drop"}, - {"uuid": "LINE2", "type": "optical/line" } + {"uuid": "port-33-in", "type": "optical/client-add" }, + {"uuid": "port-33-out", "type": "optical/client-drop"}, + {"uuid": "port-34-in", "type": "optical/client-add" }, + {"uuid": "port-34-out", "type": "optical/client-drop"}, + {"uuid": "port-35-in", "type": "optical/client-add" }, + {"uuid": "port-35-out", "type": "optical/client-drop"}, + {"uuid": "port-9-in", "type": "optical/line-in" }, + {"uuid": "port-9-out", "type": "optical/line-out" } ]}}} ]} }, { - "device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "device_type": "emu-optical-roadm", + "device_id": {"device_uuid": {"uuid": "MGON2"}}, "device_type": "emu-optical-roadm", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "LINE1", "type": "optical/line"}, - {"uuid": "LINE3", "type": "optical/line"} + {"uuid": "port-1-in", "type": "optical/line-in" }, + {"uuid": "port-1-out", "type": "optical/line-out" }, + {"uuid": "port-9-in", "type": "optical/line-in" }, + {"uuid": "port-9-out", "type": "optical/line-out" } ]}}} ]} }, { - "device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "device_type": "emu-optical-roadm", + "device_id": {"device_uuid": {"uuid": "MGON3"}}, "device_type": "emu-optical-roadm", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "ADP1", "type": "optical/add-drop"}, - {"uuid": "ADP2", "type": "optical/add-drop"}, - {"uuid": "ADP3", "type": "optical/add-drop"}, - {"uuid": "LINE2", "type": "optical/line" } + {"uuid": "port-33-in", "type": "optical/client-add" }, + {"uuid": "port-33-out", "type": "optical/client-drop"}, + {"uuid": "port-34-in", "type": "optical/client-add" }, + {"uuid": "port-34-out", "type": "optical/client-drop"}, + {"uuid": "port-35-in", "type": "optical/client-add" }, + {"uuid": "port-35-out", "type": "optical/client-drop"}, + {"uuid": "port-1-in", "type": "optical/line-in" }, + {"uuid": "port-1-out", "type": "optical/line-out" } ]}}} ]} }, { - "device_id": {"device_uuid": {"uuid": "TP2.1"}}, "device_type": "emu-optical-transponder", + "device_id": {"device_uuid": {"uuid": "T2.1"}}, "device_type": "emu-optical-transponder", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ {"uuid": "CLIENT", "type": "copper" }, - {"uuid": "LINE", "type": "optical/channel"} + {"uuid": "1", "type": "optical/channel"} ]}}} ]} }, { - "device_id": {"device_uuid": {"uuid": "TP2.2"}}, "device_type": "emu-optical-transponder", + "device_id": {"device_uuid": {"uuid": "T2.2"}}, "device_type": "emu-optical-transponder", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ {"uuid": "CLIENT", "type": "copper" }, - {"uuid": "LINE", "type": "optical/channel"} + {"uuid": "2", "type": "optical/channel"} ]}}} ]} }, { - "device_id": {"device_uuid": {"uuid": "TP2.3"}}, "device_type": "emu-optical-transponder", + "device_id": {"device_uuid": {"uuid": "T2.3"}}, "device_type": "emu-optical-transponder", "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", "device_config": {"config_rules": [ {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ {"uuid": "CLIENT", "type": "copper" }, - {"uuid": "LINE", "type": "optical/channel"} + {"uuid": "3", "type": "optical/channel"} ]}}} ]} } ], - "links": [ - {"link_id": {"link_uuid": {"uuid": "MG-ON1->MG-ON2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "LINE2"}}, - {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "MG-ON2->MG-ON1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE1"}}, - {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "LINE2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "MG-ON2->MG-ON3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE3"}}, - {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "LINE2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "MG-ON3->MG-ON2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "LINE2"}}, - {"device_id": {"device_uuid": {"uuid": "MG-ON2"}}, "endpoint_uuid": {"uuid": "LINE3"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "TP1.1->MG-ON1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP1.1" }}, "endpoint_uuid": {"uuid": "LINE"}}, - {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.2->MG-ON1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP1.2" }}, "endpoint_uuid": {"uuid": "LINE"}}, - {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "TP1.3->MG-ON1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP1.3" }}, "endpoint_uuid": {"uuid": "LINE"}}, - {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.1->MG-ON3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP2.1" }}, "endpoint_uuid": {"uuid": "LINE"}}, - {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.2->MG-ON3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP2.2" }}, "endpoint_uuid": {"uuid": "LINE"}}, - {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "TP2.3->MG-ON3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "TP2.3" }}, "endpoint_uuid": {"uuid": "LINE"}}, - {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP3"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "MG-ON1->TP1.1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP1"}}, - {"device_id": {"device_uuid": {"uuid": "TP1.1" }}, "endpoint_uuid": {"uuid": "LINE"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "MG-ON1->TP1.2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP2"}}, - {"device_id": {"device_uuid": {"uuid": "TP1.2" }}, "endpoint_uuid": {"uuid": "LINE"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "MG-ON1->TP1.3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "MG-ON1"}}, "endpoint_uuid": {"uuid": "ADP3"}}, - {"device_id": {"device_uuid": {"uuid": "TP1.3" }}, "endpoint_uuid": {"uuid": "LINE"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "MG-ON3->TP2.1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP1"}}, - {"device_id": {"device_uuid": {"uuid": "TP2.1" }}, "endpoint_uuid": {"uuid": "LINE"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "MG-ON3->TP2.2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP2"}}, - {"device_id": {"device_uuid": {"uuid": "TP2.2" }}, "endpoint_uuid": {"uuid": "LINE"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "MG-ON3->TP2.3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "MG-ON3"}}, "endpoint_uuid": {"uuid": "ADP3"}}, - {"device_id": {"device_uuid": {"uuid": "TP2.3" }}, "endpoint_uuid": {"uuid": "LINE"}} - ]} + "optical_links": [ + { + "name": "T1.1-MGON1", "link_id": {"link_uuid": {"uuid": "T1.1->MGON1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.1" }}, "endpoint_uuid": {"uuid": "1" }}, + {"device_id": {"device_uuid": {"uuid": "MGON1"}}, "endpoint_uuid": {"uuid": "port-33-in"}} + ], + "optical_details": { + "length": 0, "src_port": "1", "dst_port": "port-33-in", "local_peer_port": "1", "remote_peer_port": "port-33-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "T1.2-MGON1", "link_id": {"link_uuid": {"uuid": "T1.2->MGON1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.2"}}, "endpoint_uuid": {"uuid": "2"}}, + {"device_id": {"device_uuid": {"uuid": "MGON1"}},"endpoint_uuid": {"uuid": "port-34-in"}} + ], + "optical_details": { + "length": 0, + "src_port": "2", + "dst_port": "port-34-in", + "local_peer_port": "2", + "remote_peer_port": "port-34-out", + "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "T1.3-MGON1", "link_id": {"link_uuid": {"uuid": "T1.3->MGON1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.3"}}, "endpoint_uuid": {"uuid": "3"}}, + {"device_id": {"device_uuid": {"uuid": "MGON1"}},"endpoint_uuid": {"uuid": "port-35-in"}} + ], + "optical_details": { + "length": 0, "src_port": "3", "dst_port": "port-35-in", "local_peer_port": "3", "remote_peer_port": "port-35-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON1-T1.1", "link_id": {"link_uuid": {"uuid": "MGON1->T1.1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON1"}}, "endpoint_uuid": {"uuid": "port-33-out"}}, + {"device_id": {"device_uuid": {"uuid": "T1.1"}},"endpoint_uuid": {"uuid": "1"}} + ], + "optical_details": { + "length": 0, "src_port": "port-33-out", "dst_port": "1", "local_peer_port": "port-33-in", "remote_peer_port": "1", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON1-T1.2", "link_id": {"link_uuid": {"uuid": "MGON1->T1.2"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON1"}}, "endpoint_uuid": {"uuid": "port-34-out"}}, + {"device_id": {"device_uuid": {"uuid": "T1.2"}},"endpoint_uuid": {"uuid": "2"}} + ], + "optical_details": { + "length": 0, "src_port": "port-34-out", "dst_port": "2", "local_peer_port": "port-34-in", "remote_peer_port": "2", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON1-T1.3", "link_id": {"link_uuid": {"uuid": "MGON1->T1.3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON1"}}, "endpoint_uuid": {"uuid": "port-35-out"}}, + {"device_id": {"device_uuid": {"uuid": "T1.3"}},"endpoint_uuid": {"uuid": "3"}} + ], + "optical_details": { + "length": 0, "src_port": "port-35-out", "dst_port": "3", "local_peer_port": "port-35-in", "remote_peer_port": "3", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON1-MGON2", "link_id": {"link_uuid": {"uuid": "MGON1->MGON2"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON1"}}, "endpoint_uuid": {"uuid": "port-9-out"}}, + {"device_id": {"device_uuid": {"uuid": "MGON2"}},"endpoint_uuid": {"uuid": "port-1-in"}} + ], + "optical_details": { + "length": 0, "src_port": "port-9-out", "dst_port": "port-1-in", "local_peer_port": "port-9-in", "remote_peer_port": "port-1-out", + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON2-MGON1", "link_id": {"link_uuid": {"uuid": "MGON2->MGON1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON2"}}, "endpoint_uuid": {"uuid": "port-1-out"}}, + {"device_id": {"device_uuid": {"uuid": "MGON1"}},"endpoint_uuid": {"uuid": "port-9-in"}} + ], + "optical_details": { + "length": 0, "src_port": "port-1-out", "dst_port": "port-9-in", "local_peer_port": "port-1-in", "remote_peer_port": "port-9-out", + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON2-MGON3", "link_id": {"link_uuid": {"uuid": "MGON2->MGON3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON2"}}, "endpoint_uuid": {"uuid": "port-9-out"}}, + {"device_id": {"device_uuid": {"uuid": "MGON3"}},"endpoint_uuid": {"uuid": "port-1-in"}} + ], + "optical_details": { + "length": 0, "src_port": "port-9-out", "dst_port": "port-1-in", "local_peer_port": "port-9-in", "remote_peer_port": "port-1-out", + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON3-MGON2", "link_id": {"link_uuid": {"uuid": "MGON3->MGON2"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON3"}}, "endpoint_uuid": {"uuid": "port-1-out"}}, + {"device_id": {"device_uuid": {"uuid": "MGON2"}},"endpoint_uuid": {"uuid": "port-9-in"}} + ], + "optical_details": { + "length": 0, "src_port": "port-1-out", "dst_port": "port-9-in", "local_peer_port": "port-1-in", "remote_peer_port": "port-9-out", + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "T2.1-MGON3", "link_id": {"link_uuid": {"uuid": "T2.1->MGON3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.1"}}, "endpoint_uuid": {"uuid": "1"}}, + {"device_id": {"device_uuid": {"uuid": "MGON3"}},"endpoint_uuid": {"uuid": "port-33-in"}} + ], + "optical_details": { + "length": 0, "src_port": "1", "dst_port": "port-33-in", "local_peer_port": "1", "remote_peer_port": "port-33-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "T2.2-MGON3", "link_id": {"link_uuid": {"uuid": "T2.2->MGON3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.2"}}, "endpoint_uuid": {"uuid": "2"}}, + {"device_id": {"device_uuid": {"uuid": "MGON3"}},"endpoint_uuid": {"uuid": "port-34-in"}} + ], + "optical_details": { + "length": 0, "src_port": "2", "dst_port": "port-34-in", "local_peer_port": "2", "remote_peer_port": "port-34-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "T2.3-MGON3", "link_id": {"link_uuid": {"uuid": "T2.3->MGON3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.3"}}, "endpoint_uuid": {"uuid": "3"}}, + {"device_id": {"device_uuid": {"uuid": "MGON3"}},"endpoint_uuid": {"uuid": "port-35-in"}} + ], + "optical_details": { + "length": 0, "src_port": "3", "dst_port": "port-35-in", "local_peer_port": "3", "remote_peer_port": "port-35-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON3-T2.1", "link_id": {"link_uuid": {"uuid": "MGON3->T2.1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON3"}}, "endpoint_uuid": {"uuid": "port-33-out"}}, + {"device_id": {"device_uuid": {"uuid": "T2.1"}},"endpoint_uuid": {"uuid": "1"}} + ], + "optical_details": { + "length": 0, "src_port": "port-33-out", "dst_port": "1", "local_peer_port": "port-33-in", "remote_peer_port": "1", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON3-T2.2", "link_id": {"link_uuid": {"uuid": "MGON3->T2.2"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON3"}}, "endpoint_uuid": {"uuid": "port-34-out"}}, + {"device_id": {"device_uuid": {"uuid": "T2.2"}},"endpoint_uuid": {"uuid": "2"}} + ], + "optical_details": { + "length": 0, "src_port": "port-34-out", "dst_port": "2", "local_peer_port": "port-34-in", "remote_peer_port": "2", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON3-T2.3", "link_id": {"link_uuid": {"uuid": "MGON3->T2.3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON3"}}, "endpoint_uuid": {"uuid": "port-35-out"}}, + {"device_id": {"device_uuid": {"uuid": "T2.3"}},"endpoint_uuid": {"uuid": "3"}} + ], + "optical_details": { + "length": 0, "src_port": "port-35-out", "dst_port": "3", "local_peer_port": "port-35-in", "remote_peer_port": "3", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + } ] } -- GitLab From a377af3d7a34c46e729d7edd5dab35f419c96385 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 17 Mar 2025 19:21:20 +0000 Subject: [PATCH 131/213] Service component: - Added translation of UUID to name for optical connection endpoint devices - Extended Task_ConnectionConfigure to delegate on remote TeraFlowSDN controllers when needed --- src/service/service/ServiceServiceServicerImpl.py | 12 ++++++++++-- .../tasks/Task_ConnectionConfigure.py | 15 +++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/service/service/ServiceServiceServicerImpl.py b/src/service/service/ServiceServiceServicerImpl.py index b6f8a7faf..9a9bd27df 100644 --- a/src/service/service/ServiceServiceServicerImpl.py +++ b/src/service/service/ServiceServiceServicerImpl.py @@ -13,7 +13,7 @@ # limitations under the License. import grpc, json, logging, random, uuid -from typing import Optional +from typing import Dict, Optional from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method from common.method_wrappers.ServiceExceptions import ( AlreadyExistsException, InvalidArgumentException, NotFoundException, NotImplementedException, @@ -265,10 +265,18 @@ class ServiceServiceServicerImpl(ServiceServiceServicer): devices = topology_details.devices context_uuid_x = topology_details.topology_id.context_id.context_uuid.uuid topology_uuid_x = topology_details.topology_id.topology_uuid.uuid + + device_names : Dict[str, str] = dict() + for device in devices: + device_uuid = device.device_id.device_uuid.uuid + device_names[device_uuid] = device.name + devs = [] ports = [] for endpoint_id in service.service_endpoint_ids: - devs.append(endpoint_id.device_id.device_uuid.uuid) + endpoint_device_uuid = endpoint_id.device_id.device_uuid.uuid + endpoint_device_name = device_names[endpoint_device_uuid] + devs.append(endpoint_device_name) ports.append(endpoint_id.endpoint_uuid.uuid) src = devs[0] dst = devs[1] diff --git a/src/service/service/task_scheduler/tasks/Task_ConnectionConfigure.py b/src/service/service/task_scheduler/tasks/Task_ConnectionConfigure.py index fac991432..d98daf280 100644 --- a/src/service/service/task_scheduler/tasks/Task_ConnectionConfigure.py +++ b/src/service/service/task_scheduler/tasks/Task_ConnectionConfigure.py @@ -56,12 +56,15 @@ class Task_ConnectionConfigure(_Task): endpointids_to_set = endpointids_to_raw(connection.path_hops_endpoint_ids) errors = list() - for _, (service_handler, connection_devices) in service_handlers.items(): - _endpointids_to_set = [ - (device_uuid, endpoint_uuid, topology_uuid) - for device_uuid, endpoint_uuid, topology_uuid in endpointids_to_set - if device_uuid in connection_devices - ] + for device_type, (service_handler, connection_devices) in service_handlers.items(): + if device_type == DeviceTypeEnum.TERAFLOWSDN_CONTROLLER: + _endpointids_to_set = endpointids_to_set + else: + _endpointids_to_set = [ + (device_uuid, endpoint_uuid, topology_uuid) + for device_uuid, endpoint_uuid, topology_uuid in endpointids_to_set + if device_uuid in connection_devices + ] results_setendpoint = service_handler.SetEndpoint( _endpointids_to_set, connection_uuid=connection_uuid ) -- GitLab From 7cfd29c6215372fcdd726381dc63dea1bf72a545 Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Tue, 18 Mar 2025 10:33:08 +0000 Subject: [PATCH 132/213] Solve some minor typo --- manifests/osm_clientservice.yaml | 3 +-- src/osm_client/Config.py | 4 +--- src/osm_client/client/OsmClient.py | 3 ++- src/osm_client/service/OsmClientServiceServicerImpl.py | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/manifests/osm_clientservice.yaml b/manifests/osm_clientservice.yaml index bf536e2fd..ef9eaa2f8 100644 --- a/manifests/osm_clientservice.yaml +++ b/manifests/osm_clientservice.yaml @@ -71,5 +71,4 @@ spec: - name: metrics protocol: TCP port: 9192 - targetPort: ---- \ No newline at end of file + targetPort: 9192 diff --git a/src/osm_client/Config.py b/src/osm_client/Config.py index 84feff3d9..d34980c43 100644 --- a/src/osm_client/Config.py +++ b/src/osm_client/Config.py @@ -15,6 +15,4 @@ from common.Settings import get_setting DEFAULT_OSM_ADDRESS = '127.0.0.1' -OSM_ADDRESS = get_setting('OSM_ADDRESS', DEFAULT_OSM_ADDRESS) - - \ No newline at end of file +OSM_ADDRESS = get_setting('OSM_ADDRESS', default=DEFAULT_OSM_ADDRESS) diff --git a/src/osm_client/client/OsmClient.py b/src/osm_client/client/OsmClient.py index 239e2a2fb..2ef7a414e 100644 --- a/src/osm_client/client/OsmClient.py +++ b/src/osm_client/client/OsmClient.py @@ -16,6 +16,7 @@ import grpc, logging from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_service_port_grpc from common.proto.osm_client_pb2_grpc import OsmServiceStub +from common.proto.osm_client_pb2 import CreateRequest, CreateResponse, NsiListResponse, GetRequest, GetResponse, DeleteRequest, DeleteResponse from common.proto.context_pb2 import (Empty) from common.tools.client.RetryDecorator import retry, delay_exponential from common.tools.grpc.Tools import grpc_message_to_json_string @@ -76,4 +77,4 @@ class OsmClient: LOGGER.debug('NsiDelete request: {:s}'.format(grpc_message_to_json_string(request))) response = self.stub.NsiDelete(request) LOGGER.debug('NsiDelete result: {:s}'.format(grpc_message_to_json_string(response))) - return response \ No newline at end of file + return response diff --git a/src/osm_client/service/OsmClientServiceServicerImpl.py b/src/osm_client/service/OsmClientServiceServicerImpl.py index 5bbde3b8b..8e9bf1ea6 100644 --- a/src/osm_client/service/OsmClientServiceServicerImpl.py +++ b/src/osm_client/service/OsmClientServiceServicerImpl.py @@ -67,4 +67,4 @@ class OsmClientServiceServicerImpl(OsmServiceServicer): resp = DeleteResponse(succeded = False, errormessage = str(e)) else: resp = DeleteResponse(succeded = True) - return resp \ No newline at end of file + return resp -- GitLab From 1d4f227b04de6d47a9ceaa35e640fe161a608136 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 13:55:44 +0000 Subject: [PATCH 133/213] Common - Object Factory tools: - Added field name to json_link() --- src/common/tools/object_factory/Link.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/common/tools/object_factory/Link.py b/src/common/tools/object_factory/Link.py index 358a30b96..35cef889a 100644 --- a/src/common/tools/object_factory/Link.py +++ b/src/common/tools/object_factory/Link.py @@ -15,6 +15,8 @@ import copy from typing import Dict, List, Optional, Tuple +from common.proto.context_pb2 import LinkTypeEnum + def get_link_uuid(a_endpoint_id : Dict, z_endpoint_id : Dict) -> str: return '{:s}/{:s}=={:s}/{:s}'.format( a_endpoint_id['device_id']['device_uuid']['uuid'], a_endpoint_id['endpoint_uuid']['uuid'], @@ -25,9 +27,13 @@ def json_link_id(link_uuid : str) -> Dict: def json_link( link_uuid : str, endpoint_ids : List[Dict], name : Optional[str] = None, + link_type : LinkTypeEnum = LinkTypeEnum.LINKTYPE_UNKNOWN, total_capacity_gbps : Optional[float] = None, used_capacity_gbps : Optional[float] = None ) -> Dict: - result = {'link_id': json_link_id(link_uuid), 'link_endpoint_ids': copy.deepcopy(endpoint_ids)} + result = { + 'link_id': json_link_id(link_uuid), 'link_type': link_type, + 'link_endpoint_ids': copy.deepcopy(endpoint_ids), + } if name is not None: result['name'] = name if total_capacity_gbps is not None: attributes : Dict = result.setdefault('attributes', dict()) -- GitLab From 055dae1e2df9a664283df7a33a00e3fc7705a088 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 13:56:14 +0000 Subject: [PATCH 134/213] Context component: - Added field "position" to optical link endpoints --- src/context/service/database/Link.py | 4 +++- src/context/service/database/OpticalLink.py | 10 +++++----- .../service/database/models/OpticalLinkModel.py | 15 +++++++++++---- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/context/service/database/Link.py b/src/context/service/database/Link.py index 6244a8517..5782667be 100644 --- a/src/context/service/database/Link.py +++ b/src/context/service/database/Link.py @@ -18,7 +18,9 @@ from sqlalchemy.engine import Engine from sqlalchemy.orm import Session, selectinload, sessionmaker from sqlalchemy_cockroachdb import run_transaction from typing import Dict, List, Optional, Set, Tuple -from common.proto.context_pb2 import Empty, EventTypeEnum, Link, LinkId, LinkIdList, LinkList, TopologyId +from common.proto.context_pb2 import ( + Empty, EventTypeEnum, Link, LinkId, LinkIdList, LinkList, TopologyId +) from common.message_broker.MessageBroker import MessageBroker from common.method_wrappers.ServiceExceptions import NotFoundException from common.tools.object_factory.Link import json_link_id diff --git a/src/context/service/database/OpticalLink.py b/src/context/service/database/OpticalLink.py index 1f45daf43..785ce8098 100644 --- a/src/context/service/database/OpticalLink.py +++ b/src/context/service/database/OpticalLink.py @@ -66,9 +66,10 @@ def optical_link_set(db_engine : Engine, messagebroker : MessageBroker, request now = datetime.datetime.now(datetime.timezone.utc) - # By default, always add link to default Context/Topology topology_uuids : Set[str] = set() related_topologies : List[Dict] = list() + + # By default, always add link to default Context/Topology _,topology_uuid = topology_get_uuid(TopologyId(), allow_random=False, allow_default=True) related_topologies.append({ 'topology_uuid': topology_uuid, @@ -77,15 +78,14 @@ def optical_link_set(db_engine : Engine, messagebroker : MessageBroker, request topology_uuids.add(topology_uuid) link_endpoints_data : List[Dict] = list() - for i,endpoint_id in enumerate(request.link_endpoint_ids): - endpoint_topology_uuid, endpoint_device_uuid, endpoint_uuid = endpoint_get_uuid( - endpoint_id, endpoint_name="", allow_random=True) + endpoint_topology_uuid, _, endpoint_uuid = endpoint_get_uuid( + endpoint_id, allow_random=False) link_endpoints_data.append({ 'link_uuid' : link_uuid, 'endpoint_uuid': endpoint_uuid, - + 'position' : i, }) if endpoint_topology_uuid not in topology_uuids: diff --git a/src/context/service/database/models/OpticalLinkModel.py b/src/context/service/database/models/OpticalLinkModel.py index 930e8935c..d43fee018 100644 --- a/src/context/service/database/models/OpticalLinkModel.py +++ b/src/context/service/database/models/OpticalLinkModel.py @@ -12,13 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. - -from sqlalchemy import Column, DateTime, ForeignKey, Integer, String ,Boolean +import operator +from sqlalchemy import ( + Boolean, CheckConstraint, Column, DateTime, ForeignKey, Integer, String +) from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from typing import Dict from ._Base import _Base -from .Slot import C_Slot ,S_Slot , L_Slot +from .Slot import C_Slot, S_Slot, L_Slot class OpticalLinkModel(_Base): __tablename__ = 'opticallink' @@ -59,7 +61,7 @@ class OpticalLinkModel(_Base): }, 'link_endpoint_ids' : [ optical_endpoint.endpoint.dump_id() - for optical_endpoint in self.opticallink_endpoints + for optical_endpoint in sorted(self.opticallink_endpoints, key=operator.attrgetter('position')) ], } return result @@ -69,6 +71,11 @@ class OpticalLinkEndPointModel(_Base): link_uuid = Column(ForeignKey('opticallink.opticallink_uuid', ondelete='CASCADE' ), primary_key=True) endpoint_uuid = Column(ForeignKey('endpoint.endpoint_uuid', ondelete='RESTRICT'), primary_key=True, index=True) + position = Column(Integer, nullable=False) optical_link = relationship('OpticalLinkModel', back_populates='opticallink_endpoints') endpoint = relationship('EndPointModel', lazy='selectin') + + __table_args__ = ( + CheckConstraint(position >= 0, name='check_position_value'), + ) -- GitLab From 7f1e6dd1d0aee98bb35a67f445370e466bfd7304 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 13:57:06 +0000 Subject: [PATCH 135/213] E2E Orchestrator component: - Corrected vnt recommendations message formatting --- .../dispatchers/recommendation/ClientNamespace.py | 4 ++-- .../subscriptions/dispatchers/recommendation/Dispatcher.py | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py index 168a136de..b20b5a5f0 100644 --- a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/ClientNamespace.py @@ -54,7 +54,7 @@ class ClientNamespace(socketio.ClientNamespace): reply['_request_key'] = request_key try: reply['result'] = result.result() - event = reply['result']['event'] + event = reply['result'].pop('event') except Exception as e: reply['error'] = str(e) #reply['stacktrace'] = str(e) @@ -87,7 +87,7 @@ class ClientNamespace(socketio.ClientNamespace): reply['_request_key'] = request_key try: reply['result'] = result.result() - event = reply['result']['event'] + event = reply['result'].pop('event') except Exception as e: reply['error'] = str(e) #reply['stacktrace'] = str(e) diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py index 4fd452857..6913014ad 100644 --- a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Dispatcher.py @@ -43,12 +43,13 @@ class RecommendationDispatcher(_Dispatcher): service_client = ServiceClient() service_id = service_client.CreateService(Service(**vlink_optical_service_add)) - vlink_optical_service['service_id']['service_uuid']['uuid'] = service_id.service_uuid.uuid + service_uuid = service_id.service_uuid.uuid + vlink_optical_service['service_id']['service_uuid']['uuid'] = service_uuid service_id = service_client.UpdateService(Service(**vlink_optical_service)) - result = {'event': 'vlink_created'} + result = {'event': 'vlink_created', 'vlink_uuid': service_uuid} elif request.action == RecommendationAction.VLINK_REMOVE: - vlink_service_uuid = request.data['link_id']['link_uuid']['uuid'] + vlink_service_uuid = request.data['link_uuid']['uuid'] context_id = json_context_id(DEFAULT_CONTEXT_NAME) vlink_optical_service_id = json_service_id(vlink_service_uuid, context_id=context_id) -- GitLab From 69337db48a7904b62f74a27a56082c49f9354711 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 13:58:23 +0000 Subject: [PATCH 136/213] NBI component - TFS API connector: - Implemented vLink creation --- src/nbi/service/tfs_api/Resources.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/nbi/service/tfs_api/Resources.py b/src/nbi/service/tfs_api/Resources.py index 294a06e6e..d634a0a59 100644 --- a/src/nbi/service/tfs_api/Resources.py +++ b/src/nbi/service/tfs_api/Resources.py @@ -14,6 +14,7 @@ import json import logging +from typing import Dict, List from flask.json import jsonify from flask_restful import Resource, request from werkzeug.exceptions import BadRequest @@ -296,10 +297,15 @@ class Links(_Resource): json_requests = request.get_json() if 'links' in json_requests: json_requests = json_requests['links'] - return jsonify([ - grpc_message_to_json(self.context_client.SetLink(grpc_link(link))) - for link in json_requests - ]) + json_link_ids : List[Dict] = list() + for link_json in json_requests: + link = grpc_link(link_json) + if link.link_type == LinkTypeEnum.LINKTYPE_VIRTUAL: + link_id = self.vntmanager_client.SetVirtualLink(link) + else: + link_id = self.context_client.SetLink(link) + json_link_ids.append(grpc_message_to_json(link_id)) + return jsonify(json_link_ids) class Link(_Resource): def get(self, link_uuid : str): -- GitLab From 2a4a21326db7df5abb6273879fef36da77735c41 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 13:58:49 +0000 Subject: [PATCH 137/213] PathComp component - Frontend: - Corrected default link total capacity --- .../frontend/service/algorithms/tools/ComposeRequest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pathcomp/frontend/service/algorithms/tools/ComposeRequest.py b/src/pathcomp/frontend/service/algorithms/tools/ComposeRequest.py index 3ca4dec3e..f9672d070 100644 --- a/src/pathcomp/frontend/service/algorithms/tools/ComposeRequest.py +++ b/src/pathcomp/frontend/service/algorithms/tools/ComposeRequest.py @@ -130,7 +130,7 @@ def compose_link(grpc_link : Link) -> Dict: elif total_capacity_gbps is not None: used_capacity_gbps = total_capacity_gbps - if total_capacity_gbps is None: total_capacity_gbps = 100 + if total_capacity_gbps is None: total_capacity_gbps = 100000 if used_capacity_gbps is None: used_capacity_gbps = 0 available_capacity_gbps = total_capacity_gbps - used_capacity_gbps -- GitLab From ca65ef73f7870be1a38af02962bc2daa999abd98 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 13:59:19 +0000 Subject: [PATCH 138/213] OFC25 tests: - Corrected Optical descriptors --- src/tests/ofc25/descriptors/topology_opt.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/tests/ofc25/descriptors/topology_opt.json b/src/tests/ofc25/descriptors/topology_opt.json index a39713821..6b6d5f260 100644 --- a/src/tests/ofc25/descriptors/topology_opt.json +++ b/src/tests/ofc25/descriptors/topology_opt.json @@ -165,12 +165,7 @@ {"device_id": {"device_uuid": {"uuid": "MGON1"}},"endpoint_uuid": {"uuid": "port-34-in"}} ], "optical_details": { - "length": 0, - "src_port": "2", - "dst_port": "port-34-in", - "local_peer_port": "2", - "remote_peer_port": "port-34-out", - "used": false, + "length": 0, "src_port": "2", "dst_port": "port-34-in", "local_peer_port": "2", "remote_peer_port": "port-34-out", "used": false, "c_slots": { "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, -- GitLab From 49aa2da810885789c97ce9083f59a2df0da5b25f Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 14:00:10 +0000 Subject: [PATCH 139/213] WebUI component: - Implemented vlink removal - Added sanity checks in device and link removal --- src/webui/service/device/routes.py | 27 ++++++++++++++------------- src/webui/service/link/routes.py | 24 +++++++++++++----------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/webui/service/device/routes.py b/src/webui/service/device/routes.py index 16b86c769..977f0ec4b 100644 --- a/src/webui/service/device/routes.py +++ b/src/webui/service/device/routes.py @@ -184,20 +184,21 @@ def logical(device_uuid: str): @device.get('<path:device_uuid>/delete') def delete(device_uuid): try: + context_client.connect() + + device_obj = get_device( + context_client, device_uuid, rw_copy=False, include_components=False, + include_config_rules=False, include_endpoints=False + ) + if device_obj is None: + flash('Device({:s}) not found'.format(str(device_uuid)), 'danger') + else: + device_client.connect() + device_client.DeleteDevice(device_obj.device_id) + device_client.close() + flash(f'Device "{device_uuid}" deleted successfully!', 'success') - # first, check if device exists! - # request: DeviceId = DeviceId() - # request.device_uuid.uuid = device_uuid - # response: Device = client.GetDevice(request) - # TODO: finalize implementation - - request = DeviceId() - request.device_uuid.uuid = device_uuid # pylint: disable=no-member - device_client.connect() - device_client.DeleteDevice(request) - device_client.close() - - flash(f'Device "{device_uuid}" deleted successfully!', 'success') + context_client.close() except Exception as e: # pylint: disable=broad-except flash(f'Problem deleting device "{device_uuid}": {e.details()}', 'danger') current_app.logger.exception(e) diff --git a/src/webui/service/link/routes.py b/src/webui/service/link/routes.py index 42f5984a3..34b2af27f 100644 --- a/src/webui/service/link/routes.py +++ b/src/webui/service/link/routes.py @@ -21,10 +21,12 @@ from common.tools.context_queries.EndPoint import get_endpoint_names from common.tools.context_queries.Link import get_link from common.tools.context_queries.Topology import get_topology from context.client.ContextClient import ContextClient +from vnt_manager.client.VNTManagerClient import VNTManagerClient link = Blueprint('link', __name__, url_prefix='/link') context_client = ContextClient() +vntm_client = VNTManagerClient() @link.get('/') def home(): @@ -77,20 +79,20 @@ def detail(link_uuid: str): @link.get('<path:link_uuid>/delete') def delete(link_uuid): try: + context_client.connect() - # first, check if link exists! - # request: LinkId = LinkId() - # request.link_uuid.uuid = link_uuid - # response: Link = client.GetLink(request) - # TODO: finalize implementation + link_obj = get_link(context_client, link_uuid, rw_copy=False) + if link_obj is None: + flash('Link({:s}) not found'.format(str(link_uuid)), 'danger') + else: + link_type = link_obj.link_type + if link_type == LinkTypeEnum.LINKTYPE_VIRTUAL: + vntm_client.RemoveVirtualLink(link_obj.link_id) + else: + context_client.RemoveLink(link_obj.link_id) + flash(f'Link "{link_uuid}" deleted successfully!', 'success') - request = LinkId() - request.link_uuid.uuid = link_uuid # pylint: disable=no-member - context_client.connect() - context_client.RemoveLink(request) context_client.close() - - flash(f'Link "{link_uuid}" deleted successfully!', 'success') except Exception as e: # pylint: disable=broad-except flash(f'Problem deleting link "{link_uuid}": {e.details()}', 'danger') current_app.logger.exception(e) -- GitLab From cc05832044ee48e3f32f0e4f2e8ee3d9551fed8b Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 14:02:46 +0000 Subject: [PATCH 140/213] Optical component: - Corrected composition of topology graph - Ignored addition of special devices such as controllers - Added special print method to dump log messages --- src/opticalcontroller/OpticalController.py | 55 ++++++++++++++++------ src/opticalcontroller/RSA.py | 5 ++ 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/src/opticalcontroller/OpticalController.py b/src/opticalcontroller/OpticalController.py index 74fd78826..9cf0f6733 100644 --- a/src/opticalcontroller/OpticalController.py +++ b/src/opticalcontroller/OpticalController.py @@ -15,6 +15,7 @@ import logging, time from flask import Flask from flask import render_template +from common.DeviceTypes import DeviceTypeEnum from flask_restplus import Resource, Api from google.protobuf.json_format import MessageToDict from common.proto.context_pb2 import TopologyId @@ -317,7 +318,44 @@ class GetTopology(Resource): node_dict = {} topo, nodes = readTopologyDataFromContext(topog_id) - for link in topo: + OPTICAL_ROADM_TYPES = { + DeviceTypeEnum.OPTICAL_ROADM.value, DeviceTypeEnum.EMULATED_OPTICAL_ROADM.value + } + OPTICAL_TRANSPONDER_TYPES = { + DeviceTypeEnum.OPTICAL_TRANSPONDER.value, DeviceTypeEnum.EMULATED_OPTICAL_TRANSPONDER.value + } + added_device_uuids = set() + for device in nodes: + if device.device_type in OPTICAL_ROADM_TYPES: + dev_type = "OC-ROADM" + elif device.device_type in OPTICAL_TRANSPONDER_TYPES: + dev_type = "OC-TP" + else: + continue + + dev_dic = { + "id":device.device_id.device_uuid.uuid, + #"ip":f"10.30.2.{207+i}", + #"port":"50001", + "type": dev_type, + "driver": "OpticalOC" + } + node_dict[device.name] = dev_dic + added_device_uuids.add(device.device_id.device_uuid.uuid) + #i+=1 + #print(f"refresh_optical controller optical_links_dict= {links_dict}") + #print(f"refresh_optical controller node_dict {node_dict}") + + for link in topo: + endpoint_id_a = link.link_endpoint_ids[ 0] + endpoint_id_z = link.link_endpoint_ids[-1] + + device_uuid_a = endpoint_id_a.device_id.device_uuid.uuid + if device_uuid_a not in added_device_uuids: continue + + device_uuid_z = endpoint_id_z.device_id.device_uuid.uuid + if device_uuid_z not in added_device_uuids: continue + link_dict_type = MessageToDict(link, preserving_proto_field_name=True) if "c_slots" in link_dict_type["optical_details"]: @@ -331,19 +369,6 @@ class GetTopology(Resource): links_dict["optical_links"].append(link_dict_type) - for device in nodes : - dev_dic = { - "id":device.device_id.device_uuid.uuid, - #"ip":f"10.30.2.{207+i}", - #"port":"50001", - "type":"OC-ROADM" if device.device_type =="optical-roadm" else "OC-TP", - "driver": "OpticalOC" - } - node_dict[device.name] = dev_dic - #i+=1 - #print(f"refresh_optical controller optical_links_dict= {links_dict}") - #print(f"refresh_optical controller node_dict {node_dict}") - rsa = RSA(node_dict, links_dict) if debug: print(rsa.init_link_slots2()) @@ -354,4 +379,4 @@ class GetTopology(Resource): return "Error", 400 if __name__ == '__main__': - app.run(host='0.0.0.0', port=10060) + app.run(host='0.0.0.0', port=10060, debug=True) diff --git a/src/opticalcontroller/RSA.py b/src/opticalcontroller/RSA.py index da31187eb..e5cf6e406 100644 --- a/src/opticalcontroller/RSA.py +++ b/src/opticalcontroller/RSA.py @@ -12,10 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. +import logging from opticalcontroller.dijkstra import Graph, shortest_path from opticalcontroller.tools import * from opticalcontroller.variables import * +LOGGER = logging.getLogger(__name__) + +def print(*args) -> None: + LOGGER.info(' '.join([str(a) for a in args])) class RSA(): def __init__(self, nodes, links): -- GitLab From 2a85e17ae402c2717b209341820156c6d53f0c36 Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Tue, 21 Jan 2025 10:50:42 +0000 Subject: [PATCH 141/213] Add osm_client microservice Implement new osm_client.proto Create logic to manage request provide by NBI microservice Including ServiceServicer implementation ToDo: Automatic test with HTTP Mock Dockerfile --- manifests/osm_clientservice.yaml | 75 ++++++++++++++++++ proto/osm_client.proto | 71 +++++++++++++++++ src/common/Constants.py | 2 + src/osm_client/Config.py | 20 +++++ src/osm_client/__init__.py | 14 ++++ src/osm_client/client/OsmClient.py | 79 +++++++++++++++++++ src/osm_client/client/__init__.py | 14 ++++ src/osm_client/service/OsmClientService.py | 33 ++++++++ .../service/OsmClientServiceServicerImpl.py | 70 ++++++++++++++++ src/osm_client/service/__init__.py | 14 ++++ src/osm_client/service/__main__.py | 68 ++++++++++++++++ 11 files changed, 460 insertions(+) create mode 100644 manifests/osm_clientservice.yaml create mode 100644 proto/osm_client.proto create mode 100644 src/osm_client/Config.py create mode 100644 src/osm_client/__init__.py create mode 100644 src/osm_client/client/OsmClient.py create mode 100644 src/osm_client/client/__init__.py create mode 100644 src/osm_client/service/OsmClientService.py create mode 100644 src/osm_client/service/OsmClientServiceServicerImpl.py create mode 100644 src/osm_client/service/__init__.py create mode 100644 src/osm_client/service/__main__.py diff --git a/manifests/osm_clientservice.yaml b/manifests/osm_clientservice.yaml new file mode 100644 index 000000000..bf536e2fd --- /dev/null +++ b/manifests/osm_clientservice.yaml @@ -0,0 +1,75 @@ +# Copyright 2022-2024 ETSI 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. + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: osm_clientservice +spec: + selector: + matchLabels: + app: osm_clientservice + #replicas: 1 + template: + metadata: + labels: + app: osm_clientservice + spec: + terminationGracePeriodSeconds: 5 + containers: + - name: server + image: labs.etsi.org:5050/tfs/controller/osm_client:latest + imagePullPolicy: Always + ports: + - containerPort: 30210 + - containerPort: 9192 + env: + - name: OSM_ADDRESS + value: "127.0.0.1" + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:30210"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:30210"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi +--- +apiVersion: v1 +kind: Service +metadata: + name: osm_clientservice + labels: + app: osm_clientservice +spec: + type: ClusterIP + selector: + app: osm_clientservice + ports: + - name: grpc + protocol: TCP + port: 30210 + targetPort: 30210 + - name: metrics + protocol: TCP + port: 9192 + targetPort: +--- \ No newline at end of file diff --git a/proto/osm_client.proto b/proto/osm_client.proto new file mode 100644 index 000000000..b44781641 --- /dev/null +++ b/proto/osm_client.proto @@ -0,0 +1,71 @@ +// Copyright 2022-2024 ETSI 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. + +syntax = "proto3"; +package osmClient; + +import "context.proto"; + +service OsmService { + rpc NsiCreate (CreateRequest) returns(CreateResponse) {} + rpc NsiList (context.Empty) returns(NsiListResponse) {} + rpc NsiGet (GetRequest) returns(GetResponse) {} + rpc NsiDelete (DeleteRequest) returns(DeleteResponse) {} +} + +message CreateRequest { + string nst_name = 1; + string nsi_name = 2; + string config = 3; + string ssh_key = 4; + string account = 5; +} + +//OSM library doesn't return nsi ID, just an exception +message CreateResponse { + bool succeded = 1; + string errormessage = 2; +} + +message NsiListResponse { + repeated string id = 1; +} + +message GetRequest { + string id = 1; +} + +message GetResponse { + NsiObject nsi = 1; +} + +message NsiObject { + string nst_name = 1; + string nsi_name = 2; + string description = 3; + string VimAccountId = 4; + string Netslice_Subnet_id = 5; + string Netslice_vld_ip = 6; +} + +message DeleteRequest { + string id = 1; +} + +//OSM library doesn't return nsi ID, just an exception +message DeleteResponse { + bool succeded = 1; + string errormessage = 2; +} + diff --git a/src/common/Constants.py b/src/common/Constants.py index 682007646..8b5b714b5 100644 --- a/src/common/Constants.py +++ b/src/common/Constants.py @@ -72,6 +72,7 @@ class ServiceNameEnum(Enum): ANALYTICS = 'analytics' ANALYTICSBACKEND = 'analytics-backend' QOSPROFILE = 'qos-profile' + OSMCLIENT = 'osm-client' # Used for test and debugging only DLT_GATEWAY = 'dltgateway' @@ -112,6 +113,7 @@ DEFAULT_SERVICE_GRPC_PORTS = { ServiceNameEnum.ANALYTICS .value : 30080, ServiceNameEnum.ANALYTICSBACKEND .value : 30090, ServiceNameEnum.AUTOMATION .value : 30200, + ServiceNameEnum.OSMCLIENT .value : 30210, # Used for test and debugging only ServiceNameEnum.DLT_GATEWAY .value : 50051, diff --git a/src/osm_client/Config.py b/src/osm_client/Config.py new file mode 100644 index 000000000..84feff3d9 --- /dev/null +++ b/src/osm_client/Config.py @@ -0,0 +1,20 @@ +# Copyright 2022-2024 ETSI 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. + +from common.Settings import get_setting + +DEFAULT_OSM_ADDRESS = '127.0.0.1' +OSM_ADDRESS = get_setting('OSM_ADDRESS', DEFAULT_OSM_ADDRESS) + + \ No newline at end of file diff --git a/src/osm_client/__init__.py b/src/osm_client/__init__.py new file mode 100644 index 000000000..53d5157f7 --- /dev/null +++ b/src/osm_client/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/osm_client/client/OsmClient.py b/src/osm_client/client/OsmClient.py new file mode 100644 index 000000000..a040f661c --- /dev/null +++ b/src/osm_client/client/OsmClient.py @@ -0,0 +1,79 @@ +# Copyright 2022-2024 ETSI 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 grpc, logging +from common.Constants import ServiceNameEnum +from common.Settings import get_service_host, get_service_port_grpc +from common.proto.osm_client_pb2_grpc import osmClientServiceStub +from common.proto.context_pb2 import (Empty) +from common.tools.client.RetryDecorator import retry, delay_exponential +from common.tools.grpc.Tools import grpc_message_to_json_string + +from osmclient import client +from osmclient.common.exceptions import ClientException + + +LOGGER = logging.getLogger(__name__) +MAX_RETRIES = 15 +DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0) +RETRY_DECORATOR = retry(max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, prepare_method_name='connect') + +class OsmClient: + def __init__(self, host=None, port=None): + if not host: host = get_service_host(ServiceNameEnum.OSMCLIENT) + if not port: port = get_service_port_grpc(ServiceNameEnum.OSMCLIENT) + self.endpoint = '{:s}:{:s}'.format(str(host), str(port)) + LOGGER.debug('Creating channel to {:s}...'.format(str(self.endpoint))) + self.channel = None + self.stub = None + self.connect() + LOGGER.debug('Channel created') + + + def connect(self): + self.channel = grpc.insecure_channel(self.endpoint) + self.stub = osmClientServiceStub(self.channel) + + def close(self): + if self.channel is not None: self.channel.close() + self.channel = None + self.stub = None + + @RETRY_DECORATOR + def NsiCreate(self, request : CreateRequest) -> CreateResponse: + LOGGER.debug('NsiCreate request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.NsiCreate(request) + LOGGER.debug('NsiCreate result: {:s}'.format(grpc_message_to_json_string(response))) + return response + + @RETRY_DECORATOR + def NsiList(self, request : Empty) -> NsiListResponse: + LOGGER.debug('NsiList request') + response = self.stub.NsiList(request) + LOGGER.debug('NsiList result: {:s}'.format(grpc_message_to_json_string(response))) + return response + + @RETRY_DECORATOR + def NsiGet(self, request : GetRequest) -> GetResponse: + LOGGER.debug('NsiGet request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.NsiGet(request) + LOGGER.debug('NsiGet result: {:s}'.format(grpc_message_to_json_string(response))) + return response + + @RETRY_DECORATOR + def NsiDelete(self, request : DeleteRequest) -> DeleteResponse: + LOGGER.debug('NsiDelete request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.NsiDelete(request) + LOGGER.debug('NsiDelete result: {:s}'.format(grpc_message_to_json_string(response))) + return response \ No newline at end of file diff --git a/src/osm_client/client/__init__.py b/src/osm_client/client/__init__.py new file mode 100644 index 000000000..53d5157f7 --- /dev/null +++ b/src/osm_client/client/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/osm_client/service/OsmClientService.py b/src/osm_client/service/OsmClientService.py new file mode 100644 index 000000000..ccbf15366 --- /dev/null +++ b/src/osm_client/service/OsmClientService.py @@ -0,0 +1,33 @@ +# Copyright 2022-2024 ETSI 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. + +from common.Constants import ServiceNameEnum +from common.Settings import get_service_port_grpc +from common.proto.osm_client_pb2_grpc import add_OsmServiceServicer_to_server +from common.tools.service.GenericGrpcService import GenericGrpcService +from osm_client.service.OsmClientServiceServicerImpl import OsmClientServiceServicerImpl + +from osmclient import client +from osmclient.common.exceptions import ClientException + + +class OsmClientService(GenericGrpcService): + def __init__(self, cls_name: str = __name__) -> None: + port = get_service_port_grpc(ServiceNameEnum.OSMCLIENT) + super().__init__(port, cls_name=cls_name) + self.osmClient_servicer = OsmClientServiceServicerImpl() + + + def install_servicers(self): + add_OsmServiceServicer_to_server(self.osmClient_servicer, self.server) diff --git a/src/osm_client/service/OsmClientServiceServicerImpl.py b/src/osm_client/service/OsmClientServiceServicerImpl.py new file mode 100644 index 000000000..f45c682a4 --- /dev/null +++ b/src/osm_client/service/OsmClientServiceServicerImpl.py @@ -0,0 +1,70 @@ +# Copyright 2022-2024 ETSI 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 grpc, logging +from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method +from common.tools.grpc.Tools import grpc_message_to_json_string +from common.proto.context_pb2 import (Empty) +from common.proto.osm_client_pb2 import CreateRequest, CreateResponse, NsiListResponse, GetRequest, GetResponse, DeleteRequest, DeleteResponse +from common.proto.osm_client_pb2_grpc import osmCLientServiceServicer +from osmclient import client +from osmclient.common.exceptions import ClientException +from osm_client.Config import OSM_ADDRESS + +LOGGER = logging.getLogger(__name__) + +METRICS_POOL = MetricsPool('OSMCLIENT', 'RPC') + +class OsmClientServiceServicerImpl(osmCLientServiceServicer): + def __init__(self): + LOGGER.info('Creating Servicer...') + self.myclient = client.Client(host=OSM_ADDRESS, sol005=True) + LOGGER.info('osmClient created') + + LOGGER.info('Servicer Created') + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def NsiCreate(self, request : CreateRequest, context : grpc.ServicerContext) -> CreateResponse: + try: + #OSM library doesn't return nsi ID, just an exception + self.myclient.nsi.create(request.nst_name, request.nsi_name, request.account) + except Exception as e: + resp = CreateResponse(succeded = False, errormessage = str(e)) + else: + resp = CreateResponse(succeded = True) + return resp + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def NsiList(self, request : Empty, context : grpc.ServicerContext) -> NsiListResponse: + nsiIDs = self.myclient.nsi.list() + resp = NsiListResponse(id=nsiIDs) + return resp + + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def NsiGet(self, request : GetRequest, context : grpc.ServicerContext) -> GetResponse: + nsiObject = self.myclient.nsi.get(request.id) + resp = GetResponse(NsiObject = nsiObject) + return resp + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def NsiDelete(self, request : DeleteRequest, context : grpc.ServicerContext) -> DeleteResponse: + try: + #OSM library doesn't return nsi ID, just an exception + self.myclient.nsi.delete(request.id, False, False) + except Exception as e: + resp = DeleteResponse(succeded = False, errormessage = str(e)) + else: + resp = DeleteResponse(succeded = True) + return resp \ No newline at end of file diff --git a/src/osm_client/service/__init__.py b/src/osm_client/service/__init__.py new file mode 100644 index 000000000..53d5157f7 --- /dev/null +++ b/src/osm_client/service/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/osm_client/service/__main__.py b/src/osm_client/service/__main__.py new file mode 100644 index 000000000..d27b5c80a --- /dev/null +++ b/src/osm_client/service/__main__.py @@ -0,0 +1,68 @@ +# Copyright 2022-2024 ETSI 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 logging, signal, sys, threading +from common.Constants import ServiceNameEnum +from common.Settings import ( + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, + get_env_var_name, get_log_level, + wait_for_environment_variables +) +from .OsmClientService import OsmClientService + +terminate = threading.Event() +LOGGER = None + +def signal_handler(signal, frame): # pylint: disable=redefined-outer-name, unused-argument + LOGGER.warning('Terminate signal received') + terminate.set() + +def main(): + global LOGGER # pylint: disable=global-statement + + log_level = get_log_level() + logging.basicConfig(level=log_level) + LOGGER = logging.getLogger(__name__) + + wait_for_environment_variables([ + get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.DEVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_HOST ), + get_env_var_name(ServiceNameEnum.SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC), + ]) + + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + + LOGGER.info('Starting...') + + # Starting OsmClient service + grpc_service = OsmClientService() + grpc_service.start() + + LOGGER.debug('Configured Rules:') + + # Wait for Ctrl+C or termination signal + while not terminate.wait(timeout=1.0): pass + + LOGGER.info('Terminating...') + grpc_service.stop() + + LOGGER.info('Bye') + return 0 + +if __name__ == '__main__': + sys.exit(main()) -- GitLab From a431db9a7bac33dd5a93af4afa2eec6958490ed1 Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Thu, 23 Jan 2025 13:14:46 +0000 Subject: [PATCH 142/213] Add DockerFile to osm_client MicroServices Solve imports typo --- src/osm_client/Dockerfile | 77 +++++++++++++++++++ src/osm_client/client/OsmClient.py | 4 +- src/osm_client/service/OsmClientService.py | 4 - .../service/OsmClientServiceServicerImpl.py | 4 +- 4 files changed, 81 insertions(+), 8 deletions(-) create mode 100644 src/osm_client/Dockerfile diff --git a/src/osm_client/Dockerfile b/src/osm_client/Dockerfile new file mode 100644 index 000000000..1c7427404 --- /dev/null +++ b/src/osm_client/Dockerfile @@ -0,0 +1,77 @@ +# Copyright 2022-2024 ETSI 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. + +FROM python:3.10.16-slim + + +# Install dependencies +RUN apt-get --yes --quiet --quiet update +RUN apt-get --yes --quiet --quiet install wget g++ git build-essential cmake make git \ + libpcre2-dev python3-dev python3-pip python3-cffi curl software-properties-common && \ + rm -rf /var/lib/apt/lists/* + +# Set Python to show logs as they occur +ENV PYTHONUNBUFFERED=0 + + +# Download the gRPC health probe +RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ + wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ + chmod +x /bin/grpc_health_probe + +# Get generic Python packages +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools + +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components +WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt + +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; + +# Create component sub-folders +RUN mkdir -p /var/teraflow/osm_client +WORKDIR /var/teraflow/osm_client +ENV OSM_CLIENT_VERSION=v16.0 +RUN python3 -m pip install -r "https://osm.etsi.org/gitweb/?p=osm/IM.git;a=blob_plain;f=requirements.txt;hb=${OSM_CLIENT_VERSION}" +RUN python3 -m pip install "git+https://osm.etsi.org/gerrit/osm/IM.git@${OSM_CLIENT_VERSION}#egg=osm-im" --upgrade +#Clone OsmCLient code +RUN git clone https://osm.etsi.org/gerrit/osm/osmclient +RUN git -C osmclient checkout ${OSM_CLIENT_VERSION} +# Install osmClient using pip +RUN python3 -m pip install -r osmclient/requirements.txt +RUN python3 -m pip install ./osmclient + +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/osm_client/. osm_client/ + +# Start the service +ENTRYPOINT ["python", "-m", "osm_client.service"] diff --git a/src/osm_client/client/OsmClient.py b/src/osm_client/client/OsmClient.py index a040f661c..239e2a2fb 100644 --- a/src/osm_client/client/OsmClient.py +++ b/src/osm_client/client/OsmClient.py @@ -15,7 +15,7 @@ import grpc, logging from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_service_port_grpc -from common.proto.osm_client_pb2_grpc import osmClientServiceStub +from common.proto.osm_client_pb2_grpc import OsmServiceStub from common.proto.context_pb2 import (Empty) from common.tools.client.RetryDecorator import retry, delay_exponential from common.tools.grpc.Tools import grpc_message_to_json_string @@ -43,7 +43,7 @@ class OsmClient: def connect(self): self.channel = grpc.insecure_channel(self.endpoint) - self.stub = osmClientServiceStub(self.channel) + self.stub = OsmServiceStub(self.channel) def close(self): if self.channel is not None: self.channel.close() diff --git a/src/osm_client/service/OsmClientService.py b/src/osm_client/service/OsmClientService.py index ccbf15366..81ec534d2 100644 --- a/src/osm_client/service/OsmClientService.py +++ b/src/osm_client/service/OsmClientService.py @@ -18,10 +18,6 @@ from common.proto.osm_client_pb2_grpc import add_OsmServiceServicer_to_server from common.tools.service.GenericGrpcService import GenericGrpcService from osm_client.service.OsmClientServiceServicerImpl import OsmClientServiceServicerImpl -from osmclient import client -from osmclient.common.exceptions import ClientException - - class OsmClientService(GenericGrpcService): def __init__(self, cls_name: str = __name__) -> None: port = get_service_port_grpc(ServiceNameEnum.OSMCLIENT) diff --git a/src/osm_client/service/OsmClientServiceServicerImpl.py b/src/osm_client/service/OsmClientServiceServicerImpl.py index f45c682a4..5bbde3b8b 100644 --- a/src/osm_client/service/OsmClientServiceServicerImpl.py +++ b/src/osm_client/service/OsmClientServiceServicerImpl.py @@ -17,7 +17,7 @@ from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_m from common.tools.grpc.Tools import grpc_message_to_json_string from common.proto.context_pb2 import (Empty) from common.proto.osm_client_pb2 import CreateRequest, CreateResponse, NsiListResponse, GetRequest, GetResponse, DeleteRequest, DeleteResponse -from common.proto.osm_client_pb2_grpc import osmCLientServiceServicer +from common.proto.osm_client_pb2_grpc import OsmServiceServicer from osmclient import client from osmclient.common.exceptions import ClientException from osm_client.Config import OSM_ADDRESS @@ -26,7 +26,7 @@ LOGGER = logging.getLogger(__name__) METRICS_POOL = MetricsPool('OSMCLIENT', 'RPC') -class OsmClientServiceServicerImpl(osmCLientServiceServicer): +class OsmClientServiceServicerImpl(OsmServiceServicer): def __init__(self): LOGGER.info('Creating Servicer...') self.myclient = client.Client(host=OSM_ADDRESS, sol005=True) -- GitLab From 4022dccf9e6b45d1ac757b2059e7b2849881d683 Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Tue, 18 Mar 2025 10:33:08 +0000 Subject: [PATCH 143/213] Solve some minor typo --- manifests/osm_clientservice.yaml | 3 +-- src/osm_client/Config.py | 4 +--- src/osm_client/client/OsmClient.py | 3 ++- src/osm_client/service/OsmClientServiceServicerImpl.py | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/manifests/osm_clientservice.yaml b/manifests/osm_clientservice.yaml index bf536e2fd..ef9eaa2f8 100644 --- a/manifests/osm_clientservice.yaml +++ b/manifests/osm_clientservice.yaml @@ -71,5 +71,4 @@ spec: - name: metrics protocol: TCP port: 9192 - targetPort: ---- \ No newline at end of file + targetPort: 9192 diff --git a/src/osm_client/Config.py b/src/osm_client/Config.py index 84feff3d9..d34980c43 100644 --- a/src/osm_client/Config.py +++ b/src/osm_client/Config.py @@ -15,6 +15,4 @@ from common.Settings import get_setting DEFAULT_OSM_ADDRESS = '127.0.0.1' -OSM_ADDRESS = get_setting('OSM_ADDRESS', DEFAULT_OSM_ADDRESS) - - \ No newline at end of file +OSM_ADDRESS = get_setting('OSM_ADDRESS', default=DEFAULT_OSM_ADDRESS) diff --git a/src/osm_client/client/OsmClient.py b/src/osm_client/client/OsmClient.py index 239e2a2fb..2ef7a414e 100644 --- a/src/osm_client/client/OsmClient.py +++ b/src/osm_client/client/OsmClient.py @@ -16,6 +16,7 @@ import grpc, logging from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_service_port_grpc from common.proto.osm_client_pb2_grpc import OsmServiceStub +from common.proto.osm_client_pb2 import CreateRequest, CreateResponse, NsiListResponse, GetRequest, GetResponse, DeleteRequest, DeleteResponse from common.proto.context_pb2 import (Empty) from common.tools.client.RetryDecorator import retry, delay_exponential from common.tools.grpc.Tools import grpc_message_to_json_string @@ -76,4 +77,4 @@ class OsmClient: LOGGER.debug('NsiDelete request: {:s}'.format(grpc_message_to_json_string(request))) response = self.stub.NsiDelete(request) LOGGER.debug('NsiDelete result: {:s}'.format(grpc_message_to_json_string(response))) - return response \ No newline at end of file + return response diff --git a/src/osm_client/service/OsmClientServiceServicerImpl.py b/src/osm_client/service/OsmClientServiceServicerImpl.py index 5bbde3b8b..8e9bf1ea6 100644 --- a/src/osm_client/service/OsmClientServiceServicerImpl.py +++ b/src/osm_client/service/OsmClientServiceServicerImpl.py @@ -67,4 +67,4 @@ class OsmClientServiceServicerImpl(OsmServiceServicer): resp = DeleteResponse(succeded = False, errormessage = str(e)) else: resp = DeleteResponse(succeded = True) - return resp \ No newline at end of file + return resp -- GitLab From d10df48f9ef84d050ee59fd7401e82cc038af17a Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 16:14:27 +0000 Subject: [PATCH 144/213] OFC25 tests: - Added convenience scripts for logging --- src/tests/ofc25/dump-logs.sh | 55 ++++++++++++++++++++++++++++++++++++ src/tests/ofc25/dump_logs.sh | 51 --------------------------------- 2 files changed, 55 insertions(+), 51 deletions(-) create mode 100755 src/tests/ofc25/dump-logs.sh delete mode 100755 src/tests/ofc25/dump_logs.sh diff --git a/src/tests/ofc25/dump-logs.sh b/src/tests/ofc25/dump-logs.sh new file mode 100755 index 000000000..234537fba --- /dev/null +++ b/src/tests/ofc25/dump-logs.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + + +rm logs -rf tmp/exec + +echo "Collecting logs for E2E..." +mkdir -p tmp/exec/e2e +kubectl logs --namespace tfs-e2e deployment/contextservice -c server > tmp/exec/e2e/context.log +kubectl logs --namespace tfs-e2e deployment/deviceservice -c server > tmp/exec/e2e/device.log +kubectl logs --namespace tfs-e2e deployment/serviceservice -c server > tmp/exec/e2e/service.log +kubectl logs --namespace tfs-e2e deployment/pathcompservice -c frontend > tmp/exec/e2e/pathcomp-frontend.log +kubectl logs --namespace tfs-e2e deployment/pathcompservice -c backend > tmp/exec/e2e/pathcomp-backend.log +kubectl logs --namespace tfs-e2e deployment/webuiservice -c server > tmp/exec/e2e/webui.log +kubectl logs --namespace tfs-e2e deployment/nbiservice -c server > tmp/exec/e2e/nbi.log +kubectl logs --namespace tfs-e2e deployment/e2e-orchestratorservice -c server > tmp/exec/e2e/e2eorch.log +printf logs "\n" + +echo "Collecting logs for IP..." +mkdir -p tmp/exec/ip +kubectl logs --namespace tfs-ip deployment/contextservice -c server > tmp/exec/ip/context.log +kubectl logs --namespace tfs-ip deployment/deviceservice -c server > tmp/exec/ip/device.log +kubectl logs --namespace tfs-ip deployment/serviceservice -c server > tmp/exec/ip/service.log +kubectl logs --namespace tfs-ip deployment/pathcompservice -c frontend > tmp/exec/ip/pathcomp-frontend.log +kubectl logs --namespace tfs-ip deployment/pathcompservice -c backend > tmp/exec/ip/pathcomp-backend.log +kubectl logs --namespace tfs-ip deployment/webuiservice -c server > tmp/exec/ip/webui.log +kubectl logs --namespace tfs-ip deployment/nbiservice -c server > tmp/exec/ip/nbi.log +kubectl logs --namespace tfs-ip deployment/vnt-managerservice -c server > tmp/exec/ip/vntm.log +printf logs "\n" + +echo "Collecting logs for OPT..." +mkdir -p tmp/exec/opt +kubectl logs --namespace tfs-opt deployment/contextservice -c server > tmp/exec/opt/context.log +kubectl logs --namespace tfs-opt deployment/deviceservice -c server > tmp/exec/opt/device.log +kubectl logs --namespace tfs-opt deployment/serviceservice -c server > tmp/exec/opt/service.log +kubectl logs --namespace tfs-opt deployment/pathcompservice -c frontend > tmp/exec/opt/pathcomp-frontend.log +kubectl logs --namespace tfs-opt deployment/pathcompservice -c backend > tmp/exec/opt/pathcomp-backend.log +kubectl logs --namespace tfs-opt deployment/webuiservice -c server > tmp/exec/opt/webui.log +kubectl logs --namespace tfs-opt deployment/nbiservice -c server > tmp/exec/opt/nbi.log +kubectl logs --namespace tfs-opt deployment/opticalcontrollerservice -c server > tmp/exec/opt/ctrl.log +printf "\n" + +echo "Done!" diff --git a/src/tests/ofc25/dump_logs.sh b/src/tests/ofc25/dump_logs.sh deleted file mode 100755 index 02b1f524c..000000000 --- a/src/tests/ofc25/dump_logs.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# Copyright 2022-2024 ETSI 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. - - -rm -rf tmp/exec - -echo "Collecting logs for IP..." -mkdir -p tmp/exec/ip -kubectl --namespace tfs-ip logs deployment/contextservice -c server > tmp/exec/ip/context.log -kubectl --namespace tfs-ip logs deployment/deviceservice -c server > tmp/exec/ip/device.log -kubectl --namespace tfs-ip logs deployment/pathcompservice -c frontend > tmp/exec/ip/pathcomp-frontend.log -kubectl --namespace tfs-ip logs deployment/pathcompservice -c backend > tmp/exec/ip/pathcomp-backend.log -kubectl --namespace tfs-ip logs deployment/serviceservice -c server > tmp/exec/ip/service.log -kubectl --namespace tfs-ip logs deployment/nbiservice -c server > tmp/exec/ip/nbi.log -kubectl --namespace tfs-ip logs deployment/vnt-managerservice -c server > tmp/exec/ip/vntm.log -printf "\n" - -echo "Collecting logs for IP..." -mkdir -p tmp/exec/opt -kubectl --namespace tfs-opt logs deployment/contextservice -c server > tmp/exec/opt/context.log -kubectl --namespace tfs-opt logs deployment/deviceservice -c server > tmp/exec/opt/device.log -kubectl --namespace tfs-opt logs deployment/pathcompservice -c frontend > tmp/exec/opt/pathcomp-frontend.log -kubectl --namespace tfs-opt logs deployment/pathcompservice -c backend > tmp/exec/opt/pathcomp-backend.log -kubectl --namespace tfs-opt logs deployment/serviceservice -c server > tmp/exec/opt/service.log -kubectl --namespace tfs-opt logs deployment/nbiservice -c server > tmp/exec/opt/nbi.log -printf "\n" - -echo "Collecting logs for E2E..." -mkdir -p tmp/exec/e2e -kubectl --namespace tfs-e2e logs deployment/contextservice -c server > tmp/exec/e2e/context.log -kubectl --namespace tfs-e2e logs deployment/deviceservice -c server > tmp/exec/e2e/device.log -kubectl --namespace tfs-e2e logs deployment/pathcompservice -c frontend > tmp/exec/e2e/pathcomp-frontend.log -kubectl --namespace tfs-e2e logs deployment/pathcompservice -c backend > tmp/exec/e2e/pathcomp-backend.log -kubectl --namespace tfs-e2e logs deployment/serviceservice -c server > tmp/exec/e2e/service.log -kubectl --namespace tfs-e2e logs deployment/nbiservice -c server > tmp/exec/e2e/nbi.log -kubectl --namespace tfs-e2e logs deployment/e2e-orchestratorservice -c server > tmp/exec/e2e/e2eorch.log -printf "\n" - -echo "Done!" -- GitLab From ff3aa5016f969d2e48c527ec06fdc892a332b680 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 16:22:50 +0000 Subject: [PATCH 145/213] Manifests: - Removed unneeded fields - Enabled DEBUG when needed --- manifests/e2e_orchestratorservice.yaml | 12 ------------ manifests/nbiservice.yaml | 2 +- manifests/pathcompservice.yaml | 2 +- manifests/vnt_managerservice.yaml | 9 ++++----- 4 files changed, 6 insertions(+), 19 deletions(-) diff --git a/manifests/e2e_orchestratorservice.yaml b/manifests/e2e_orchestratorservice.yaml index 8c39f4712..c628df3a7 100644 --- a/manifests/e2e_orchestratorservice.yaml +++ b/manifests/e2e_orchestratorservice.yaml @@ -41,18 +41,6 @@ spec: env: - name: LOG_LEVEL value: "DEBUG" - - name: WS_IP_HOST - value: "nbiservice.tfs-ip.svc.cluster.local" - - name: WS_IP_PORT - value: "8761" - - name: WS_E2E_HOST - value: "e2e-orchestratorservice.tfs-e2e.svc.cluster.local" - - name: WS_E2E_PORT - value: "8762" - - name: EXT_CONTROLLER1_ADD - value: "10.1.1.96" - - name: EXT_CONTROLLER1_PORT - value: "8003" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:10050"] diff --git a/manifests/nbiservice.yaml b/manifests/nbiservice.yaml index 3e6d1de84..2bf31678f 100644 --- a/manifests/nbiservice.yaml +++ b/manifests/nbiservice.yaml @@ -39,7 +39,7 @@ spec: #- containerPort: 9192 env: - name: LOG_LEVEL - value: "INFO" + value: "DEBUG" - name: FLASK_ENV value: "production" # change to "development" if developing - name: IETF_NETWORK_RENDERER diff --git a/manifests/pathcompservice.yaml b/manifests/pathcompservice.yaml index 0cac6cc18..b6f969bf4 100644 --- a/manifests/pathcompservice.yaml +++ b/manifests/pathcompservice.yaml @@ -36,7 +36,7 @@ spec: - containerPort: 9192 env: - name: LOG_LEVEL - value: "INFO" + value: "DEBUG" - name: ENABLE_FORECASTER value: "NO" readinessProbe: diff --git a/manifests/vnt_managerservice.yaml b/manifests/vnt_managerservice.yaml index 41735a589..6f82a341c 100644 --- a/manifests/vnt_managerservice.yaml +++ b/manifests/vnt_managerservice.yaml @@ -39,11 +39,10 @@ spec: - containerPort: 9192 env: - name: LOG_LEVEL - value: "INFO" - - name: WS_IP_PORT - value: "8761" - - name: WS_E2E_PORT - value: "8762" + value: "DEBUG" + envFrom: + - secretRef: + name: kfk-kpi-data readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:10080"] -- GitLab From aee95791928d204725e01723885edce8c62aaf02 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 16:23:55 +0000 Subject: [PATCH 146/213] NBI component - VNTM Recommendation: - Corrected log levels - Corrected management of request_keys --- src/nbi/service/vntm_recommend/Namespaces.py | 22 +++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/nbi/service/vntm_recommend/Namespaces.py b/src/nbi/service/vntm_recommend/Namespaces.py index a7660f859..b19550fae 100644 --- a/src/nbi/service/vntm_recommend/Namespaces.py +++ b/src/nbi/service/vntm_recommend/Namespaces.py @@ -37,23 +37,24 @@ class VntRecommServerNamespace(Namespace): def on_connect(self, auth): MSG = '[on_connect] Client connect: sid={:s}, auth={:s}' - LOGGER.info(MSG.format(str(request.sid), str(auth))) + LOGGER.debug(MSG.format(str(request.sid), str(auth))) join_room(SIO_ROOM, namespace=SIO_NAMESPACE) def on_disconnect(self, reason): MSG = '[on_disconnect] Client disconnect: sid={:s}, reason={:s}' - LOGGER.info(MSG.format(str(request.sid), str(reason))) + LOGGER.debug(MSG.format(str(request.sid), str(reason))) leave_room(SIO_ROOM, namespace=SIO_NAMESPACE) def on_vlink_created(self, data): MSG = '[on_vlink_created] begin: sid={:s}, data={:s}' - LOGGER.info(MSG.format(str(request.sid), str(data))) + LOGGER.debug(MSG.format(str(request.sid), str(data))) data = json.loads(data) - request_key = data.pop('_request_key') - + request_key = str(data.pop('_request_key')).encode('utf-8') vntm_reply = json.dumps({'event': 'vlink_created', 'data': data}).encode('utf-8') - LOGGER.info('[on_vlink_created] vntm_reply={:s}'.format(str(vntm_reply))) + LOGGER.debug('[on_vlink_created] request_key={:s}/{:s}'.format(str(type(request_key)), str(request_key))) + LOGGER.debug('[on_vlink_created] vntm_reply={:s}/{:s}'.format(str(type(vntm_reply)), str(vntm_reply))) + self.kafka_producer.send( KafkaTopic.VNTMANAGER_RESPONSE.value, key=request_key, value=vntm_reply ) @@ -61,13 +62,14 @@ class VntRecommServerNamespace(Namespace): def on_vlink_removed(self, data): MSG = '[on_vlink_removed] begin: sid={:s}, data={:s}' - LOGGER.info(MSG.format(str(request.sid), str(data))) + LOGGER.debug(MSG.format(str(request.sid), str(data))) data = json.loads(data) - request_key = data.pop('_request_key') - + request_key = str(data.pop('_request_key')).encode('utf-8') vntm_reply = json.dumps({'event': 'vlink_removed', 'data': data}).encode('utf-8') - LOGGER.info('[on_vlink_removed] vntm_reply={:s}'.format(str(vntm_reply))) + LOGGER.debug('[on_vlink_removed] request_key={:s}/{:s}'.format(str(type(request_key)), str(request_key))) + LOGGER.debug('[on_vlink_removed] vntm_reply={:s}/{:s}'.format(str(type(vntm_reply)), str(vntm_reply))) + self.kafka_producer.send( KafkaTopic.VNTMANAGER_RESPONSE.value, key=request_key, value=vntm_reply ) -- GitLab From 606fb96c940373018e8288e16679630ce9c81fc6 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 16:24:52 +0000 Subject: [PATCH 147/213] Service component - L3NM OpenConfig: - Corrected management of settings --- .../l3nm_openconfig/ConfigRules.py | 80 ++++++++++++------- 1 file changed, 51 insertions(+), 29 deletions(-) diff --git a/src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py b/src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py index 37f8256b1..99d4bc8e5 100644 --- a/src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py +++ b/src/service/service/service_handlers/l3nm_openconfig/ConfigRules.py @@ -12,52 +12,74 @@ # See the License for the specific language governing permissions and # limitations under the License. +import functools from typing import Any, Dict, List, Optional, Tuple from common.tools.object_factory.ConfigRule import json_config_rule_delete, json_config_rule_set from service.service.service_handler_api.AnyTreeTools import TreeNode -def get_value(field_name : str, *containers, default=None) -> Optional[Any]: +def get_settings_containers( + service_settings : TreeNode, device_settings : TreeNode, endpoint_settings : TreeNode +) -> List[Dict]: + settings_containers : List[Dict] = list() + + # highest priority settings container + if endpoint_settings is not None: + json_endpoint_settings : Dict = endpoint_settings.value + settings_containers.append(json_endpoint_settings) + + if device_settings is not None: + json_device_settings : Dict = device_settings.value + settings_containers.append(json_device_settings) + + # lowest priority settings container + if service_settings is not None: + json_service_settings : Dict = service_settings.value + settings_containers.append(json_service_settings) + + return settings_containers + +def get_value(containers : List[Dict], field_name : str, **kwargs) -> Optional[Any]: if len(containers) == 0: raise Exception('No containers specified') + for container in containers: if field_name not in container: continue return container[field_name] - return default + + if 'default' in kwargs: + return kwargs['default'] + + MSG = 'Field({:s}) not found in containers specified({:s}) and no default value specified' + # pylint: disable=broad-exception-raised + raise Exception(MSG.format(str(field_name), str(containers))) def setup_config_rules( service_uuid : str, connection_uuid : str, device_uuid : str, endpoint_uuid : str, endpoint_name : str, service_settings : TreeNode, device_settings : TreeNode, endpoint_settings : TreeNode, endpoint_acls : List [Tuple] ) -> List[Dict]: - if service_settings is None: return [] - if device_settings is None: return [] - if endpoint_settings is None: return [] - - json_settings : Dict = service_settings.value - json_device_settings : Dict = device_settings.value - json_endpoint_settings : Dict = endpoint_settings.value - - settings = (json_settings, json_endpoint_settings, json_device_settings) - - mtu = get_value('mtu', *settings, default=1450) # 1512 - #address_families = json_settings.get('address_families', [] ) # ['IPV4'] - bgp_as = get_value('bgp_as', *settings, default=65000) # 65000 - - router_id = json_endpoint_settings.get('router_id', '0.0.0.0') # '10.95.0.10' - route_distinguisher = json_settings.get('route_distinguisher', '65000:101' ) # '60001:801' - sub_interface_index = json_endpoint_settings.get('sub_interface_index', 0 ) # 1 - vlan_id = json_endpoint_settings.get('vlan_id', 1 ) # 400 - address_ip = json_endpoint_settings.get('address_ip', '0.0.0.0') # '2.2.2.1' - address_prefix = json_endpoint_settings.get('address_prefix', 24 ) # 30 - - policy_import = json_endpoint_settings.get('policy_AZ', '2' ) # 2 - policy_export = json_endpoint_settings.get('policy_ZA', '7' ) # 30 + settings_containers : Tuple[Dict] = get_settings_containers( + service_settings, device_settings, endpoint_settings + ) + get_settings_value = functools.partial(get_value, settings_containers) + + mtu = get_settings_value('mtu', default=1450 ) # 1512 + #address_families = get_settings_value('address_families', default=[] ) # ['IPV4'] + bgp_as = get_settings_value('bgp_as', default=65000 ) # 65000 + router_id = get_settings_value('router_id', default='0.0.0.0' ) # '10.95.0.10' + route_distinguisher = get_settings_value('route_distinguisher', default='65000:101') # '60001:801' + sub_interface_index = get_settings_value('sub_interface_index', default=0 ) # 1 + vlan_id = get_settings_value('vlan_id', default=1 ) # 400 + address_ip = get_settings_value('address_ip', default='0.0.0.0' ) # '2.2.2.1' + address_prefix = get_settings_value('address_prefix', default=24 ) # 30 + policy_import = get_settings_value('policy_AZ', default='2' ) # 2 + policy_export = get_settings_value('policy_ZA', default='7' ) # 30 #network_interface_desc = '{:s}-NetIf'.format(service_uuid) - network_interface_desc = json_endpoint_settings.get('ni_description','') + network_interface_desc = get_settings_value('ni_description', default='' ) #network_subinterface_desc = '{:s}-NetSubIf'.format(service_uuid) - network_subinterface_desc = json_endpoint_settings.get('subif_description','') - #service_short_uuid = service_uuid.split('-')[-1] + network_subinterface_desc = get_settings_value('subif_description', default='' ) + service_short_uuid = service_uuid.split('-')[-1] #network_instance_name = '{:s}-NetInst'.format(service_short_uuid) - network_instance_name = json_endpoint_settings.get('ni_name', service_uuid.split('-')[-1]) #ELAN-AC:1 + network_instance_name = get_settings_value('ni_name', default=service_short_uuid) #ELAN-AC:1 if_subif_name = '{:s}.{:d}'.format(endpoint_name, vlan_id) -- GitLab From 9e8ceb44271838c4d1ce7d684cc7f7596061bdbb Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 16:25:29 +0000 Subject: [PATCH 148/213] Service component - Optical TFS Service Handler: - Corrected DeleteEndpoint method() --- .../optical_tfs/OpticalTfsServiceHandler.py | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py b/src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py index 1b48f90f1..4ac85f3ac 100644 --- a/src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py +++ b/src/service/service/service_handlers/optical_tfs/OpticalTfsServiceHandler.py @@ -106,19 +106,16 @@ class OpticalTfsServiceHandler(_ServiceHandler): if len(endpoints) < 2: return [] service_uuid = self.__service.service_id.service_uuid.uuid - settings = self.__settings_handler.get('/settings') - json_settings : Dict = {} if settings is None else settings.value - flow_id = json_settings['flow_id'] - bitrate, bidir, ob_width = self._get_constraints() + service_name = self.__service.name results = [] try: - src_device_uuid, src_endpoint_uuid = get_device_endpoint_uuids(endpoints[0]) + src_device_uuid, _ = get_device_endpoint_uuids(endpoints[0]) src_device = self.__task_executor.get_device(DeviceId(**json_device_id(src_device_uuid))) src_controller = self.__task_executor.get_device_controller(src_device) if src_controller is None: src_controller = src_device - dst_device_uuid, dst_endpoint_uuid = get_device_endpoint_uuids(endpoints[1]) + dst_device_uuid, _ = get_device_endpoint_uuids(endpoints[-1]) dst_device = self.__task_executor.get_device(DeviceId(**json_device_id(dst_device_uuid))) dst_controller = self.__task_executor.get_device_controller(dst_device) if dst_controller is None: dst_controller = dst_device @@ -126,15 +123,8 @@ class OpticalTfsServiceHandler(_ServiceHandler): controller = src_controller json_config_rule = json_config_rule_delete('/services/service[{:s}]'.format(service_uuid), { - 'flow_id' : flow_id, - 'service_uuid' : service_uuid, - 'src_device_uuid' : src_device_uuid, - 'src_endpoint_uuid': src_endpoint_uuid, - 'dst_device_uuid' : dst_device_uuid, - 'dst_endpoint_uuid': dst_endpoint_uuid, - 'bitrate' : bitrate, - 'bidir' : bidir, - 'ob_width' : ob_width, + 'service_uuid': service_uuid, + 'service_name': service_name, }) del controller.device_config.config_rules[:] -- GitLab From b055fc3fca2cec9c57c4f9a6b0f6172cb8e495ab Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 16:27:34 +0000 Subject: [PATCH 149/213] Service component: - Corrected ConnectionDeconfigure task to enable management of underlaying TFS controllers - Enhanced DeleteService to identify if optical controller is present --- src/service/service/ServiceServiceServicerImpl.py | 2 +- .../tasks/Task_ConnectionDeconfigure.py | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/service/service/ServiceServiceServicerImpl.py b/src/service/service/ServiceServiceServicerImpl.py index 9a9bd27df..3a376c014 100644 --- a/src/service/service/ServiceServiceServicerImpl.py +++ b/src/service/service/ServiceServiceServicerImpl.py @@ -367,7 +367,7 @@ class ServiceServiceServicerImpl(ServiceServiceServicer): context_client.RemoveService(request) return Empty() - if service.service_type == ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY: + if is_deployed_optical() and service.service_type == ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY: params = { "src" : None, "dst" : None, diff --git a/src/service/service/task_scheduler/tasks/Task_ConnectionDeconfigure.py b/src/service/service/task_scheduler/tasks/Task_ConnectionDeconfigure.py index cb1e91cc2..8528f8365 100644 --- a/src/service/service/task_scheduler/tasks/Task_ConnectionDeconfigure.py +++ b/src/service/service/task_scheduler/tasks/Task_ConnectionDeconfigure.py @@ -56,12 +56,15 @@ class Task_ConnectionDeconfigure(_Task): endpointids_to_delete = endpointids_to_raw(connection.path_hops_endpoint_ids) errors = list() - for _, (service_handler, connection_devices) in service_handlers.items(): - _endpointids_to_delete = [ - (device_uuid, endpoint_uuid, topology_uuid) - for device_uuid, endpoint_uuid, topology_uuid in endpointids_to_delete - if device_uuid in connection_devices - ] + for device_type, (service_handler, connection_devices) in service_handlers.items(): + if device_type == DeviceTypeEnum.TERAFLOWSDN_CONTROLLER: + _endpointids_to_delete = endpointids_to_delete + else: + _endpointids_to_delete = [ + (device_uuid, endpoint_uuid, topology_uuid) + for device_uuid, endpoint_uuid, topology_uuid in endpointids_to_delete + if device_uuid in connection_devices + ] results_deleteendpoint = service_handler.DeleteEndpoint( _endpointids_to_delete, connection_uuid=connection_uuid ) -- GitLab From 7eea7be329b2bffa8ab327fe6dccaa98275b42fc Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 16:28:11 +0000 Subject: [PATCH 150/213] VNT Manager component: - Reviewed complete logic to request creation/removal of virtual links --- .../service/VNTManagerServiceServicerImpl.py | 236 ++++++++++++------ 1 file changed, 155 insertions(+), 81 deletions(-) diff --git a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py index ca1a1b2f3..2424f5530 100644 --- a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py +++ b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py @@ -12,30 +12,44 @@ # See the License for the specific language governing permissions and # limitations under the License. +from typing import Dict, Optional import grpc, json, logging, uuid from confluent_kafka import Consumer as KafkaConsumer from confluent_kafka import Producer as KafkaProducer from confluent_kafka import KafkaError from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method -from common.proto.context_pb2 import Empty, Link, LinkId, LinkList +from common.proto.context_pb2 import Empty, Link, LinkId, LinkList, LinkTypeEnum from common.proto.vnt_manager_pb2_grpc import VNTManagerServiceServicer -from common.tools.grpc.Tools import grpc_message_to_json_string +#from common.tools.context_queries.EndPoint import get_endpoint_names +from common.tools.grpc.Tools import grpc_message_to_json, grpc_message_to_json_string from common.tools.kafka.Variables import KafkaConfig, KafkaTopic +#from common.tools.object_factory.Device import json_device_id +#from common.tools.object_factory.EndPoint import json_endpoint_id +from common.tools.object_factory.Link import json_link, json_link_id from context.client.ContextClient import ContextClient -from .vntm_config_device import configure, deconfigure +#from .vntm_config_device import configure, deconfigure LOGGER = logging.getLogger(__name__) -METRICS_POOL = MetricsPool("VNTManager", "RPC") +METRICS_POOL = MetricsPool('VNTManager', 'RPC') class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): def __init__(self): - LOGGER.debug("Creating Servicer...") + LOGGER.debug('Creating Servicer...') self.context_client = ContextClient() + self.kafka_producer = KafkaProducer({ + 'bootstrap.servers' : KafkaConfig.get_kafka_address() + }) + self.kafka_consumer = KafkaConsumer({ + 'bootstrap.servers' : KafkaConfig.get_kafka_address(), + 'group.id' : str(uuid.uuid4()), + 'auto.offset.reset' : 'latest' + }) + self.kafka_consumer.subscribe([KafkaTopic.VNTMANAGER_RESPONSE.value]) self.links = [] - LOGGER.debug("Servicer Created") + LOGGER.debug('Servicer Created') @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def ListVirtualLinks(self, request : Empty, context : grpc.ServicerContext) -> LinkList: @@ -47,94 +61,154 @@ class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): link = self.context_client.GetLink(request) return link if link.virtual else Empty() + def send_recommendation(self, vntm_request : Dict) -> str: + request_key = str(uuid.uuid4()) + vntm_request = json.dumps(vntm_request) + MSG = '[send_recommendation] request_key={:s} vntm_request={:s}' + LOGGER.info(MSG.format(str(request_key), str(vntm_request))) + self.kafka_producer.produce( + KafkaTopic.VNTMANAGER_REQUEST.value, + key=request_key.encode('utf-8'), + value=vntm_request.encode('utf-8'), + ) + self.kafka_producer.flush() + return request_key + + def send_vlink_create(self, request : Link) -> str: + return self.send_recommendation({ + 'event': 'vlink_create', 'data': grpc_message_to_json_string(request) + }) + + def send_vlink_remove(self, request : LinkId) -> str: + return self.send_recommendation({ + 'event': 'vlink_remove', 'data': grpc_message_to_json_string(request) + }) + + def wait_for_reply(self, request_key : str) -> Optional[Dict]: + LOGGER.info('[wait_for_reply] request_key={:s}'.format(str(request_key))) + + while True: + receive_msg = self.kafka_consumer.poll(2.0) + if receive_msg is None: continue + LOGGER.info('[wait_for_reply] receive_msg={:s}'.format(str(receive_msg))) + if receive_msg.error(): + if receive_msg.error().code() == KafkaError._PARTITION_EOF: continue + LOGGER.error('[wait_for_reply] Consumer error: {:s}'.format(str(receive_msg.error()))) + return None + + reply_key = receive_msg.key().decode('utf-8') + LOGGER.info('[wait_for_reply] reply_key={:s}'.format(str(reply_key))) + if reply_key == request_key: + LOGGER.info('[wait_for_reply] match!') + break + LOGGER.info('[wait_for_reply] no match... waiting...') + + json_receive_msg = json.loads(receive_msg.value().decode('utf-8')) + LOGGER.info('[wait_for_reply] json_receive_msg={:s}'.format(str(json_receive_msg))) + + if 'data' not in json_receive_msg: + MSG = 'Malformed reply: {:s}' + raise Exception(MSG.format(str(json_receive_msg))) + data = json_receive_msg['data'] + + if 'error' in data: + MSG = 'Something went wrong: {:s}' + raise Exception(MSG.format(str(data['error']))) + + if 'result' not in data: + MSG = 'Malformed reply: {:s}' + raise Exception(MSG.format(str(data))) + return data['result'] + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def SetVirtualLink(self, request : Link, context : grpc.ServicerContext) -> LinkId: try: LOGGER.info('[SetVirtualLink] request={:s}'.format(grpc_message_to_json_string(request))) - request_key = str(uuid.uuid4()) - kafka_producer = KafkaProducer({ - 'bootstrap.servers' : KafkaConfig.get_kafka_address() - }) - - vntm_request = json.dumps({ - 'event': 'vlink_create', 'data': grpc_message_to_json_string(request) - }).encode('utf-8') - LOGGER.info('[SetVirtualLink] vntm_request={:s}'.format(str(vntm_request))) - kafka_producer.produce( - KafkaTopic.VNTMANAGER_REQUEST.value, key=request_key, value=vntm_request - ) - kafka_producer.flush() - - kafka_consumer = KafkaConsumer({ - 'bootstrap.servers' : KafkaConfig.get_kafka_address(), - 'group.id' : str(uuid.uuid4()), - 'auto.offset.reset' : 'latest' - }) - kafka_consumer.subscribe([KafkaTopic.VNTMANAGER_RESPONSE.value]) - while True: - receive_msg = kafka_consumer.poll(2.0) - if receive_msg is None: continue - LOGGER.info('[SetVirtualLink] receive_msg={:s}'.format(str(receive_msg))) - if receive_msg.error(): - if receive_msg.error().code() == KafkaError._PARTITION_EOF: continue - LOGGER.error('Consumer error: {:s}'.format(str(receive_msg.error()))) - break - reply_key = receive_msg.key().decode('utf-8') - if reply_key == request_key: break - - link = Link(**json.loads(receive_msg.value().decode('utf-8'))) - # at this point, we know the request was accepted and an optical connection was created - - # configure('CSGW1', 'xe5', 'CSGW2', 'xe5', 'ecoc2024-1') - self.context_client.SetLink(link) + request_key = self.send_vlink_create(request) + reply = self.wait_for_reply(request_key) + LOGGER.info('[SetVirtualLink] reply={:s}'.format(str(reply))) + + # At this point, we know the request is processed and an optical connection was created + + vlink_uuid = reply['vlink_uuid'] + LOGGER.info('[SetVirtualLink] vlink_uuid={:s}'.format(str(vlink_uuid))) + + vlink_name = request.name + if len(vlink_name) == 0: vlink_name = request.link_id.link_uuid.uuid + LOGGER.info('[SetVirtualLink] vlink_name={:s}'.format(str(vlink_name))) + + vlink_endpoint_ids = [ + grpc_message_to_json(endpoint_id) + for endpoint_id in request.link_endpoint_ids + ] + LOGGER.info('[SetVirtualLink] vlink_endpoint_ids={:s}'.format(str(vlink_endpoint_ids))) + + total_capacity_gbps = request.attributes.total_capacity_gbps + LOGGER.info('[SetVirtualLink] total_capacity_gbps={:s}'.format(str(total_capacity_gbps))) + + vlink = Link(**json_link( + vlink_uuid, vlink_endpoint_ids, name=vlink_name, + link_type=LinkTypeEnum.LINKTYPE_VIRTUAL, + total_capacity_gbps=total_capacity_gbps, + )) + LOGGER.info('[SetVirtualLink] vlink={:s}'.format(grpc_message_to_json_string(vlink))) + + #device_names, endpoints_data = get_endpoint_names(self.context_client, request.link_endpoint_ids) + + #device_uuid_or_name_a = vlink_endpoint_ids[ 0]['device_id']['device_uuid']['uuid'] + #device_name_a = device_names.get(device_uuid_or_name_a, device_uuid_or_name_a) + + #device_uuid_or_name_b = vlink_endpoint_ids[-1]['device_id']['device_uuid']['uuid'] + #device_name_b = device_names.get(device_uuid_or_name_b, device_uuid_or_name_b) + + #endpoint_uuid_or_name_a = vlink_endpoint_ids[ 0]['endpoint_uuid']['uuid'] + #endpoint_name_a = endpoints_data.get(endpoint_uuid_or_name_a, (endpoint_uuid_or_name_a, None)) + #endpoint_name_a = endpoint_name_a.replace('PORT-', '') + + #endpoint_uuid_or_name_b = vlink_endpoint_ids[-1]['endpoint_uuid']['uuid'] + #endpoint_name_b = endpoints_data.get(endpoint_uuid_or_name_b, (endpoint_uuid_or_name_b, None)) + #endpoint_name_b = endpoint_name_b.replace('PORT-', '') + + #network_instance_name = '-'.join([ + # device_name_a, endpoint_name_a, device_name_b, endpoint_name_b + #]) + #configure( + # device_name_a, endpoint_name_a, device_name_b, endpoint_name_b, network_instance_name + #) + + vlink_id = self.context_client.SetLink(vlink) + + MSG = 'Virtual link created, vlink_id={:s}' + LOGGER.info(MSG.format(grpc_message_to_json_string(vlink_id))) + return vlink_id except: # pylint: disable=bare-except MSG = 'Exception setting virtual link={:s}' LOGGER.exception(MSG.format(str(request.link_id.link_uuid.uuid))) - return request.link_id + raise @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def RemoveVirtualLink(self, request : LinkId, context : grpc.ServicerContext) -> Empty: try: - LOGGER.debug('Removing virtual link') - request_key = str(uuid.uuid4()) - - kafka_producer = KafkaProducer({ - 'bootstrap.servers' : KafkaConfig.get_kafka_address() - }) - - vntm_request = json.dumps({ - 'event': 'vlink_remove', 'data': grpc_message_to_json_string(request) - }).encode('utf-8') - LOGGER.info('[RemoveVirtualLink] vntm_request={:s}'.format(str(vntm_request))) - kafka_producer.produce( - KafkaTopic.VNTMANAGER_REQUEST.value, key=request_key, value=vntm_request - ) - kafka_producer.flush() - - kafka_consumer = KafkaConsumer({ - 'bootstrap.servers' : KafkaConfig.get_kafka_address(), - 'group.id' : str(uuid.uuid4()), - 'auto.offset.reset' : 'latest' - }) - kafka_consumer.subscribe([KafkaTopic.VNTMANAGER_RESPONSE.value]) - while True: - receive_msg = kafka_consumer.poll(2.0) - if receive_msg is None: continue - if receive_msg.error(): - if receive_msg.error().code() == KafkaError._PARTITION_EOF: continue - LOGGER.error('Consumer error: {:s}'.format(str(receive_msg.error()))) - break - reply_key = receive_msg.key().decode('utf-8') - if reply_key == request_key: break - - link_id = LinkId(**json.loads(receive_msg.value().decode('utf-8'))) - # at this point, we know the request was accepted and an optical connection was deleted + LOGGER.info('[RemoveVirtualLink] request={:s}'.format(grpc_message_to_json_string(request))) + request_key = self.send_vlink_remove(request) + reply = self.wait_for_reply(request_key) + LOGGER.info('[RemoveVirtualLink] reply={:s}'.format(str(reply))) + + # At this point, we know the request is processed and an optical connection was removed + + vlink_uuid = request.link_uuid.uuid + LOGGER.info('[RemoveVirtualLink] vlink_uuid={:s}'.format(str(vlink_uuid))) + + vlink_id = LinkId(**json_link_id(vlink_uuid)) + LOGGER.info('[RemoveVirtualLink] vlink_id={:s}'.format(grpc_message_to_json_string(vlink_id))) # deconfigure('CSGW1', 'xe5', 'CSGW2', 'xe5', 'ecoc2024-1') - self.context_client.RemoveLink(link_id) - LOGGER.info('Removed') + self.context_client.RemoveLink(vlink_id) + + MSG = 'Virtual link removed, vlink_id={:s}' + LOGGER.info(MSG.format(grpc_message_to_json_string(vlink_id))) + return Empty() except: # pylint: disable=bare-except MSG = 'Exception removing virtual link={:s}' LOGGER.exception(MSG.format(str(request.link_uuid.uuid))) - - return Empty() + raise -- GitLab From 2fc95bd17dabf09948087a00ddcbc309a0d7d2a9 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 16:34:54 +0000 Subject: [PATCH 151/213] Manifests: - Enabled DEBUG when needed --- manifests/opticalcontrollerservice.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/opticalcontrollerservice.yaml b/manifests/opticalcontrollerservice.yaml index d537076fe..341af782a 100644 --- a/manifests/opticalcontrollerservice.yaml +++ b/manifests/opticalcontrollerservice.yaml @@ -36,7 +36,7 @@ spec: - containerPort: 9192 env: - name: LOG_LEVEL - value: "INFO" + value: "DEBUG" #readinessProbe: # exec: # command: ["/bin/grpc_health_probe", "-addr=:10060"] -- GitLab From 681e6276696c7ecb543d65acfcfac3c6696bbdb8 Mon Sep 17 00:00:00 2001 From: hajipour <shajipour@cttc.es> Date: Tue, 18 Mar 2025 17:41:56 +0100 Subject: [PATCH 152/213] debug & refactor: ConnectionEntry added as a dependency of the ConnectionEntry --- .../algorithms/tools/ComputeSubServices.py | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py b/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py index 053e6d542..7cd419c6b 100644 --- a/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py +++ b/src/pathcomp/frontend/service/algorithms/tools/ComputeSubServices.py @@ -61,9 +61,11 @@ class ConnectionEntry: uuid: str = '' service_type : ServiceTypeEnum = ServiceTypeEnum.SERVICETYPE_UNKNOWN path_hops : List[Dict] = field(default_factory=list) - dependencies : List[str] = field(default_factory=list) + dependencies : List['ConnectionEntry'] = field(default_factory=list) def calculate_subservice_uuid(self, main_service_uuid: str) -> None: + if self.uuid: + return composed_string = main_service_uuid + '-'.join( f'{path_hop["device"]}/{path_hop["ingress_ep"]}/{path_hop["egress_ep"]}' for path_hop in self.path_hops ) @@ -103,28 +105,25 @@ def convert_explicit_path_hops_to_connections( prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) - connection_entry.calculate_subservice_uuid(main_service_uuid) connection_stack.put(connection_entry) # underlying connection ended connection: ConnectionEntry = connection_stack.get() connections.append(connection) - connection_stack.queue[-1].dependencies.append(connection.uuid) - #connection_stack.queue[-1][2].append(path_hop) + connection_stack.queue[-1].dependencies.append(connection) elif prv_res_class[2] is None and res_class[2] is not None: # entering domain of a device controller, create underlying connection LOGGER.debug(' entering domain of a device controller, create underlying connection') prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) - connection_entry.calculate_subservice_uuid(main_service_uuid) connection_stack.put(connection_entry) elif prv_res_class[2] is not None and res_class[2] is None: # leaving domain of a device controller, terminate underlying connection LOGGER.debug(' leaving domain of a device controller, terminate underlying connection') connection = connection_stack.get() connections.append(connection) - connection_stack.queue[-1].dependencies.append(connection.uuid) + connection_stack.queue[-1].dependencies.append(connection) connection_stack.queue[-1].path_hops.append(path_hop) elif prv_res_class[2] is not None and res_class[2] is not None: if prv_res_class[2] == res_class[2]: @@ -136,12 +135,11 @@ def convert_explicit_path_hops_to_connections( LOGGER.debug(' switching to different device controller, chain connections') connection = connection_stack.get() connections.append(connection) - connection_stack.queue[-1].dependencies.append(connection.uuid) + connection_stack.queue[-1].dependencies.append(connection) prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) - connection_entry.calculate_subservice_uuid (main_service_uuid) connection_stack.put(connection_entry) elif prv_res_class[0] is None: # path ingress @@ -154,7 +152,6 @@ def convert_explicit_path_hops_to_connections( prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) - connection_entry.calculate_subservice_uuid(main_service_uuid) connection_stack.put(connection_entry) elif prv_res_class[0] == res_class[0]: # same resource group kind @@ -168,19 +165,18 @@ def convert_explicit_path_hops_to_connections( LOGGER.debug(' chain connections') connection = connection_stack.get() connections.append(connection) - connection_stack.queue[-1].dependencies.append(connection.uuid) + connection_stack.queue[-1].dependencies.append(connection) prv_service_type = connection_stack.queue[-1].service_type service_type = get_service_type(res_class[1], prv_service_type) connection_entry = ConnectionEntry(service_type=service_type, path_hops=[path_hop]) - connection_entry.calculate_subservice_uuid(main_service_uuid) connection_stack.put(connection_entry) elif prv_res_class[0] < res_class[0]: # underlying connection ended LOGGER.debug(' underlying connection ended') connection = connection_stack.get() connections.append(connection) - connection_stack.queue[-1].dependencies.append(connection.uuid) + connection_stack.queue[-1].dependencies.append(connection) connection_stack.queue[-1].path_hops.append(path_hop) else: raise Exception('Uncontrolled condition') @@ -193,7 +189,9 @@ def convert_explicit_path_hops_to_connections( connections.append(connection_stack.get()) LOGGER.debug('connections={:s}'.format(str(connections))) assert connection_stack.empty() - return [(c.uuid, c.service_type, c.path_hops, c.dependencies) for c in connections] + for c in connections: + c.calculate_subservice_uuid(main_service_uuid) + return [(c.uuid, c.service_type, c.path_hops, [cd.uuid for cd in c.dependencies]) for c in connections] def convert_explicit_path_hops_to_plain_connection( path_hops : List[Dict], main_service_uuid : str, main_service_type : ServiceTypeEnum -- GitLab From e62ec3fddc3e39a50e059c01c9c2ebd2c8550d5d Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 17:01:40 +0000 Subject: [PATCH 153/213] OFC25 tests: - Removed unneeded scripts - Fixed deploy.sh script --- src/tests/ofc25/_old/subscription_ws_e2e.sh | 42 --------------------- src/tests/ofc25/_old/subscription_ws_ip.sh | 42 --------------------- src/tests/ofc25/deploy.sh | 15 ++------ 3 files changed, 3 insertions(+), 96 deletions(-) delete mode 100755 src/tests/ofc25/_old/subscription_ws_e2e.sh delete mode 100755 src/tests/ofc25/_old/subscription_ws_ip.sh diff --git a/src/tests/ofc25/_old/subscription_ws_e2e.sh b/src/tests/ofc25/_old/subscription_ws_e2e.sh deleted file mode 100755 index 26c430cdf..000000000 --- a/src/tests/ofc25/_old/subscription_ws_e2e.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -# Copyright 2022-2024 ETSI 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. - - -######################################################################################################################## -# Read deployment settings -######################################################################################################################## - -# If not already set, set the namespace where CockroackDB will be deployed. -export SUBSCRIPTION_WS_NAMESPACE=${SUBSCRIPTION_WS_NAMESPACE:-"tfs-e2e"} - -# If not already set, set the external port interface will be exposed to. -export SUBSCRIPTION_WS_EXT_PORT=${SUBSCRIPTION_WS_EXT_PORT:-"8761"} - - -######################################################################################################################## -# Automated steps start here -######################################################################################################################## - - -echo "Subscription WebSocket Port Mapping" -echo ">>> ExposeSubscription WebSocket port (${SUBSCRIPTION_WS_EXT_PORT}->${SUBSCRIPTION_WS_EXT_PORT})" -PATCH='{"data": {"'${SUBSCRIPTION_WS_EXT_PORT}'": "'${SUBSCRIPTION_WS_NAMESPACE}'/nbiservice:'${SUBSCRIPTION_WS_EXT_PORT}'"}}' -kubectl patch configmap nginx-ingress-tcp-microk8s-conf-e2e --namespace ingress --patch "${PATCH}" - -PORT_MAP='{"containerPort": '${SUBSCRIPTION_WS_EXT_PORT}', "hostPort": '${SUBSCRIPTION_WS_EXT_PORT}'}' -CONTAINER='{"name": "nginx-ingress-microk8s", "ports": ['${PORT_MAP}']}' -PATCH='{"spec": {"template": {"spec": {"containers": ['${CONTAINER}']}}}}' -kubectl patch daemonset nginx-ingress-microk8s-controller-e2e --namespace ingress --patch "${PATCH}" -echo diff --git a/src/tests/ofc25/_old/subscription_ws_ip.sh b/src/tests/ofc25/_old/subscription_ws_ip.sh deleted file mode 100755 index 379929d73..000000000 --- a/src/tests/ofc25/_old/subscription_ws_ip.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -# Copyright 2022-2024 ETSI 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. - - -######################################################################################################################## -# Read deployment settings -######################################################################################################################## - -# If not already set, set the namespace where CockroackDB will be deployed. -export SUBSCRIPTION_WS_NAMESPACE=${SUBSCRIPTION_WS_NAMESPACE:-"tfs-ip"} - -# If not already set, set the external port interface will be exposed to. -export SUBSCRIPTION_WS_INT_PORT=${SUBSCRIPTION_WS_INT_PORT:-"8762"} -######################################################################################################################## -# Automated steps start here -######################################################################################################################## - - - - -echo "Subscription WebSocket Port Mapping" -echo ">>> ExposeSubscription WebSocket port (${SUBSCRIPTION_WS_INT_PORT}->${SUBSCRIPTION_WS_INT_PORT})" -PATCH='{"data": {"'${SUBSCRIPTION_WS_INT_PORT}'": "'${SUBSCRIPTION_WS_NAMESPACE}'/nbiservice:'${SUBSCRIPTION_WS_INT_PORT}'"}}' -kubectl patch configmap nginx-ingress-tcp-microk8s-conf-ip --namespace ingress --patch "${PATCH}" - -PORT_MAP='{"containerPort": '${SUBSCRIPTION_WS_INT_PORT}', "hostPort": '${SUBSCRIPTION_WS_INT_PORT}'}' -CONTAINER='{"name": "nginx-ingress-microk8s", "ports": ['${PORT_MAP}']}' -PATCH='{"spec": {"template": {"spec": {"containers": ['${CONTAINER}']}}}}' -kubectl patch daemonset nginx-ingress-microk8s-controller-ip --namespace ingress --patch "${PATCH}" -echo diff --git a/src/tests/ofc25/deploy.sh b/src/tests/ofc25/deploy.sh index 8bd0b8989..fb892e14c 100755 --- a/src/tests/ofc25/deploy.sh +++ b/src/tests/ofc25/deploy.sh @@ -47,9 +47,9 @@ #yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/vntmservice.yaml # Create secondary ingress controllers -#kubectl apply -f src/tests/ofc25/nginx-ingress-controller-opt.yaml -#kubectl apply -f src/tests/ofc25/nginx-ingress-controller-ip.yaml -#kubectl apply -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml +kubectl apply -f src/tests/ofc25/nginx-ingress-controller-opt.yaml +kubectl apply -f src/tests/ofc25/nginx-ingress-controller-ip.yaml +kubectl apply -f src/tests/ofc25/nginx-ingress-controller-e2e.yaml cp manifests/contextservice.yaml manifests/contextservice.yaml.bak @@ -111,13 +111,4 @@ while ! kubectl --namespace tfs-e2e logs deployment/contextservice -c server 2>& kubectl --namespace tfs-e2e logs deployment/contextservice -c server -# ===== Onboarding topologies ========================= -# TODO: pending... - - -# ===== Configure subscriptions ========================= -# This should not be needed -#./src/tests/ofc25/subscription_ws_ip.sh -#./src/tests/ofc25/subscription_ws_e2e.sh - echo "Done!" -- GitLab From 5a155f4bc15485cb575df81c555a7a22c525b716 Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Wed, 27 Nov 2024 16:21:42 +0100 Subject: [PATCH 154/213] First draft --- proto/ztp_server.proto | 23 + src/common/Constants.py | 2 + src/ztp_server/.gitlab-ci.yml | 120 + src/ztp_server/Config.py | 20 + src/ztp_server/Dockerfile | 97 + src/ztp_server/README.md | 35 + src/ztp_server/__init__.py | 14 + src/ztp_server/client/ZtpClient.py | 61 + src/ztp_server/client/__init__.py | 14 + src/ztp_server/data/nso_client.proto | 60 + .../data/provisioning_script_sonic.sh | 38 + src/ztp_server/data/ztp.json | 11 + src/ztp_server/requirements.in | 28 + src/ztp_server/service/ZtpServerService.py | 28 + .../service/ZtpServerServiceServicerImpl.py | 40 + src/ztp_server/service/__init__.py | 14 + src/ztp_server/service/__main__.py | 78 + .../service/context_subscription/__init__.py | 64 + .../service/rest_server/RestServer.py | 23 + .../service/rest_server/__init__.py | 14 + .../rest_server/ztpServer_plugins/__init__.py | 14 + .../ztpServer_plugins/tfs_api/Resources.py | 47 + .../ztpServer_plugins/tfs_api/Tools.py | 41 + .../ztpServer_plugins/tfs_api/__init__.py | 30 + .../ztpServer_plugins/tools/Authentication.py | 25 + .../tools/HttpStatusCodes.py | 20 + .../ztpServer_plugins/tools/Validator.py | 35 + .../ztpServer_plugins/tools/__init__.py | 14 + src/ztp_server/tests/Constants.py | 85 + .../tests/MockService_Dependencies.py | 58 + src/ztp_server/tests/PrepareTestScenario.py | 169 + src/ztp_server/tests/__init__.py | 14 + src/ztp_server/tests/data/ietf_acl.json | 56 + .../tests/data/ietf_l3vpn_req_svc1.json | 231 ++ .../tests/data/ietf_l3vpn_req_svc2.json | 231 ++ .../tests/data/test-ietf-network.json | 1962 +++++++++++ src/ztp_server/tests/data/tfs_api_dummy.json | 442 +++ .../data/topology-7router-emu-dummy.json | 157 + .../tests/data/topology-7router-emu.json | 156 + src/ztp_server/tests/data/topology-dummy.json | 3134 +++++++++++++++++ src/ztp_server/tests/data/topology-real.json | 259 ++ src/ztp_server/tests/ietf_acl_client.py | 89 + src/ztp_server/tests/test_etsi_bwm.py | 240 ++ src/ztp_server/tests/test_ietf_l2vpn.py | 75 + src/ztp_server/tests/test_ietf_l3vpn.py | 113 + src/ztp_server/tests/test_ietf_network.py | 105 + src/ztp_server/tests/test_slice.py | 125 + src/ztp_server/tests/test_tfs_api.py | 217 ++ src/ztp_server/tests/test_yang_acl.py | 104 + 49 files changed, 9032 insertions(+) create mode 100755 proto/ztp_server.proto create mode 100755 src/ztp_server/.gitlab-ci.yml create mode 100755 src/ztp_server/Config.py create mode 100755 src/ztp_server/Dockerfile create mode 100755 src/ztp_server/README.md create mode 100755 src/ztp_server/__init__.py create mode 100755 src/ztp_server/client/ZtpClient.py create mode 100755 src/ztp_server/client/__init__.py create mode 100644 src/ztp_server/data/nso_client.proto create mode 100644 src/ztp_server/data/provisioning_script_sonic.sh create mode 100644 src/ztp_server/data/ztp.json create mode 100755 src/ztp_server/requirements.in create mode 100755 src/ztp_server/service/ZtpServerService.py create mode 100755 src/ztp_server/service/ZtpServerServiceServicerImpl.py create mode 100755 src/ztp_server/service/__init__.py create mode 100755 src/ztp_server/service/__main__.py create mode 100755 src/ztp_server/service/context_subscription/__init__.py create mode 100755 src/ztp_server/service/rest_server/RestServer.py create mode 100755 src/ztp_server/service/rest_server/__init__.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/__init__.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tools/Authentication.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py create mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tools/__init__.py create mode 100755 src/ztp_server/tests/Constants.py create mode 100755 src/ztp_server/tests/MockService_Dependencies.py create mode 100755 src/ztp_server/tests/PrepareTestScenario.py create mode 100755 src/ztp_server/tests/__init__.py create mode 100755 src/ztp_server/tests/data/ietf_acl.json create mode 100755 src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json create mode 100755 src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json create mode 100755 src/ztp_server/tests/data/test-ietf-network.json create mode 100755 src/ztp_server/tests/data/tfs_api_dummy.json create mode 100755 src/ztp_server/tests/data/topology-7router-emu-dummy.json create mode 100755 src/ztp_server/tests/data/topology-7router-emu.json create mode 100755 src/ztp_server/tests/data/topology-dummy.json create mode 100755 src/ztp_server/tests/data/topology-real.json create mode 100755 src/ztp_server/tests/ietf_acl_client.py create mode 100755 src/ztp_server/tests/test_etsi_bwm.py create mode 100755 src/ztp_server/tests/test_ietf_l2vpn.py create mode 100755 src/ztp_server/tests/test_ietf_l3vpn.py create mode 100755 src/ztp_server/tests/test_ietf_network.py create mode 100755 src/ztp_server/tests/test_slice.py create mode 100755 src/ztp_server/tests/test_tfs_api.py create mode 100755 src/ztp_server/tests/test_yang_acl.py diff --git a/proto/ztp_server.proto b/proto/ztp_server.proto new file mode 100755 index 000000000..37ccc71d3 --- /dev/null +++ b/proto/ztp_server.proto @@ -0,0 +1,23 @@ +// Copyright 2022-2024 ETSI 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. + +syntax = "proto3"; +package ztpServer; + +import "context.proto"; + +service ZtpServerService { + rpc GetProvisioningScript (context.ProvisioningScriptName ) returns (context.ProvisioningScript ) {} + rpc GetZtpProvisioning (context.ZtpFileName ) returns (context.ZtpFile ) {} +} diff --git a/src/common/Constants.py b/src/common/Constants.py index 682007646..660e99f04 100644 --- a/src/common/Constants.py +++ b/src/common/Constants.py @@ -42,6 +42,7 @@ class ServiceNameEnum(Enum): SERVICE = 'service' SLICE = 'slice' ZTP = 'ztp' + ZTP_SERVER = 'ztp_server' POLICY = 'policy' MONITORING = 'monitoring' DLT = 'dlt' @@ -84,6 +85,7 @@ DEFAULT_SERVICE_GRPC_PORTS = { ServiceNameEnum.SERVICE .value : 3030, ServiceNameEnum.SLICE .value : 4040, ServiceNameEnum.ZTP .value : 5050, + ServiceNameEnum.ZTP_SERVER .value : 5051, ServiceNameEnum.POLICY .value : 6060, ServiceNameEnum.MONITORING .value : 7070, ServiceNameEnum.DLT .value : 8080, diff --git a/src/ztp_server/.gitlab-ci.yml b/src/ztp_server/.gitlab-ci.yml new file mode 100755 index 000000000..71bf223ba --- /dev/null +++ b/src/ztp_server/.gitlab-ci.yml @@ -0,0 +1,120 @@ +# Copyright 2022-2024 ETSI 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. + +# Build, tag, and push the Docker image to the GitLab Docker registry +build nbi: + variables: + IMAGE_NAME: 'nbi' # name of the microservice + IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) + stage: build + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + script: + - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . + - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + after_script: + - docker images --filter="dangling=true" --quiet | xargs -r docker rmi + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - changes: + - src/common/**/*.py + - proto/*.proto + - src/$IMAGE_NAME/**/*.{py,in,yml} + - src/$IMAGE_NAME/Dockerfile + - src/$IMAGE_NAME/tests/*.py + - manifests/${IMAGE_NAME}service.yaml + - .gitlab-ci.yml + +# Apply unit test to the component +unit_test nbi: + variables: + IMAGE_NAME: 'nbi' # name of the microservice + IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) + stage: unit_test + needs: + - build nbi + before_script: + - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY + - > + if docker network list | grep teraflowbridge; then + echo "teraflowbridge is already created"; + else + docker network create -d bridge teraflowbridge; + fi + - > + if docker container ls | grep $IMAGE_NAME; then + docker rm -f $IMAGE_NAME; + else + echo "$IMAGE_NAME image is not in the system"; + fi + script: + - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" + - docker run --name $IMAGE_NAME -d -p 9090:9090 -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG + - sleep 5 + - docker ps -a + - docker logs $IMAGE_NAME + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" + coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' + after_script: + - docker rm -f $IMAGE_NAME + - docker network rm teraflowbridge + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' + - changes: + - src/common/**/*.py + - proto/*.proto + - src/$IMAGE_NAME/**/*.{py,in,yml} + - src/$IMAGE_NAME/Dockerfile + - src/$IMAGE_NAME/tests/*.py + - src/$IMAGE_NAME/tests/Dockerfile + - manifests/${IMAGE_NAME}service.yaml + - .gitlab-ci.yml + artifacts: + when: always + reports: + junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report_*.xml + +## Deployment of the service in Kubernetes Cluster +#deploy nbi: +# variables: +# IMAGE_NAME: 'nbi' # name of the microservice +# IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) +# stage: deploy +# needs: +# - unit test nbi +# # - integ_test execute +# script: +# - 'sed -i "s/$IMAGE_NAME:.*/$IMAGE_NAME:$IMAGE_TAG/" manifests/${IMAGE_NAME}service.yaml' +# - kubectl version +# - kubectl get all +# - kubectl apply -f "manifests/${IMAGE_NAME}service.yaml" +# - kubectl get all +# # environment: +# # name: test +# # url: https://example.com +# # kubernetes: +# # namespace: test +# rules: +# - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' +# when: manual +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' +# when: manual diff --git a/src/ztp_server/Config.py b/src/ztp_server/Config.py new file mode 100755 index 000000000..83a350058 --- /dev/null +++ b/src/ztp_server/Config.py @@ -0,0 +1,20 @@ +# Copyright 2022-2024 ETSI 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. + +from werkzeug.security import generate_password_hash + +# REST-API users +RESTAPI_USERS = { # TODO: implement a database of credentials and permissions + 'admin': generate_password_hash('admin'), +} diff --git a/src/ztp_server/Dockerfile b/src/ztp_server/Dockerfile new file mode 100755 index 000000000..a9be06d37 --- /dev/null +++ b/src/ztp_server/Dockerfile @@ -0,0 +1,97 @@ +# Copyright 2022-2024 ETSI 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. + +FROM python:3.9-slim + +# Install dependencies +RUN apt-get --yes --quiet --quiet update && \ + apt-get --yes --quiet --quiet install wget g++ git build-essential cmake libpcre2-dev python3-dev python3-cffi && \ + rm -rf /var/lib/apt/lists/* + +# Download, build and install libyang. Note that APT package is outdated +# - Ref: https://github.com/CESNET/libyang +# - Ref: https://github.com/CESNET/libyang-python/ +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" .. +RUN make +RUN make install +RUN ldconfig + +# Set Python to show logs as they occur +ENV PYTHONUNBUFFERED=0 + +# Download the gRPC health probe +RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \ + wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \ + chmod +x /bin/grpc_health_probe + +# Get generic Python packages +RUN python3 -m pip install --upgrade pip +RUN python3 -m pip install --upgrade setuptools wheel +RUN python3 -m pip install --upgrade pip-tools + +# Get common Python packages +# Note: this step enables sharing the previous Docker build steps among all the Python components +WORKDIR /var/teraflow +COPY common_requirements.in common_requirements.in +RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in +RUN python3 -m pip install -r common_requirements.txt + +# Add common files into working directory +WORKDIR /var/teraflow/common +COPY src/common/. ./ +RUN rm -rf proto + +# Create proto sub-folder, copy .proto files, and generate Python code +RUN mkdir -p /var/teraflow/common/proto +WORKDIR /var/teraflow/common/proto +RUN touch __init__.py +COPY proto/*.proto ./ +RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto +RUN rm *.proto +RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; + +# Create component sub-folders, get specific Python packages +RUN mkdir -p /var/teraflow/nbi +WORKDIR /var/teraflow/nbi +COPY src/nbi/requirements.in requirements.in +RUN pip-compile --quiet --output-file=requirements.txt requirements.in +RUN python3 -m pip install -r requirements.txt + +# Add component files into working directory +WORKDIR /var/teraflow +COPY src/nbi/. nbi/ +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/service/__init__.py service/__init__.py +COPY src/service/client/. service/client/ +COPY src/slice/__init__.py slice/__init__.py +COPY src/slice/client/. slice/client/ +COPY src/qkd_app/__init__.py qkd_app/__init__.py +COPY src/qkd_app/client/. qkd_app/client/ +COPY src/vnt_manager/__init__.py vnt_manager/__init__.py +COPY src/vnt_manager/client/. vnt_manager/client/ +RUN mkdir -p /var/teraflow/tests/tools +COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ + +# Start the service +ENTRYPOINT ["python", "-m", "nbi.service"] diff --git a/src/ztp_server/README.md b/src/ztp_server/README.md new file mode 100755 index 000000000..32902a0b3 --- /dev/null +++ b/src/ztp_server/README.md @@ -0,0 +1,35 @@ +# NBI Component + +The NBI component uses libyang to validate and process messages. Follow instructions below to install it. + +## Install libyang +- Ref: https://github.com/CESNET/libyang +- Ref: https://github.com/CESNET/libyang-python/ + +__NOTE__: APT package is extremely outdated and does not work for our purposes. + +### Build Requisites +```bash +sudo apt-get install build-essential cmake libpcre2-dev +sudo apt-get install python3-dev gcc python3-cffi +``` + +### Build from source +```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" .. +make +sudo make install +sudo ldconfig +``` + +### Install Python bindings +```bash +pip install libyang==2.8.0 +``` diff --git a/src/ztp_server/__init__.py b/src/ztp_server/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/client/ZtpClient.py b/src/ztp_server/client/ZtpClient.py new file mode 100755 index 000000000..a790b76e2 --- /dev/null +++ b/src/ztp_server/client/ZtpClient.py @@ -0,0 +1,61 @@ +# Copyright 2022-2024 ETSI 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 grpc, logging +from common.Constants import ServiceNameEnum +from common.Settings import get_service_host, get_service_port_grpc +from common.proto.ztpServer_pb2_grpc import ztpServerServiceStub #TODO +from common.proto.context_pb2 import ( + ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) +from common.tools.client.RetryDecorator import retry, delay_exponential +from common.tools.grpc.Tools import grpc_message_to_json_string + +LOGGER = logging.getLogger(__name__) +MAX_RETRIES = 15 +DELAY_FUNCTION = delay_exponential(initial=0.01, increment=2.0, maximum=5.0) +RETRY_DECORATOR = retry(max_retries=MAX_RETRIES, delay_function=DELAY_FUNCTION, prepare_method_name='connect') + +class ZtpClient: + def __init__(self, host=None, port=None): + if not host: host = get_service_host(ServiceNameEnum.ZTP_SERVER) + if not port: port = get_service_port_grpc(ServiceNameEnum.ZTP_SERVER) + self.endpoint = '{:s}:{:s}'.format(str(host), str(port)) + LOGGER.debug('Creating channel to {:s}...'.format(str(self.endpoint))) + self.channel = None + self.stub = None + self.connect() + LOGGER.debug('Channel created') + + def connect(self): + self.channel = grpc.insecure_channel(self.endpoint) + self.stub = ztpServerServiceStub(self.channel) #TODO + + def close(self): + if self.channel is not None: self.channel.close() + self.channel = None + self.stub = None + + @RETRY_DECORATOR + def GetProvisioningScript(self, request : ProvisioningScriptName) -> ProvisioningScript: + LOGGER.debug('GetProvisioningScript request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.GetProvisioningScript(request) + LOGGER.debug('GetProvisioningScript result: {:s}'.format(grpc_message_to_json_string(response))) + return response + + @RETRY_DECORATOR + def GetZtpProvisioning(self, request : ZtpFileName) -> ZtpFile: + LOGGER.debug('GetZtpProvisioning request: {:s}'.format(grpc_message_to_json_string(request))) + response = self.stub.GetZtpProvisioning(request) + LOGGER.debug('GetZtpProvisioning result: {:s}'.format(grpc_message_to_json_string(response))) + return response diff --git a/src/ztp_server/client/__init__.py b/src/ztp_server/client/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/client/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/data/nso_client.proto b/src/ztp_server/data/nso_client.proto new file mode 100644 index 000000000..d5983c62c --- /dev/null +++ b/src/ztp_server/data/nso_client.proto @@ -0,0 +1,60 @@ +// 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. + +syntax = "proto3"; +package nos_client; + +message NOS_SW { + string ztp_device_sw_url = 1; + bytes ztp_device_sw_file = 2; +} + +// For ONIE Requests +message NOS_SW_REQ { + string serial_number = 1; + string eth_addr = 2; + string vendor_id = 3; + string machine = 4; + string machine_rev = 5; + string arch = 6; + string security_key = 7; + string operation = 8; +} + +message Config_Script { + string config_script_url = 1; + bytes config_script_file = 2; +} + +message Config_Script_REQ { + string agent = 1; + string machine = 2; + string serial_number = 3; + string eth_addr = 4; + string version = 5; +} + +message Status_Notification { + string status = 1; + string serial_number = 2; + string eth_addr = 3; +} + +message Empty{} + +service nos_client { + rpc GetNOSFile (NOS_SW_REQ) returns (NOS_SW) {} + rpc GetConfigScriptFile (Config_Script_REQ) returns (Config_Script) {} + rpc NotifyStatus (Status_Notification) returns (Empty) {} +} diff --git a/src/ztp_server/data/provisioning_script_sonic.sh b/src/ztp_server/data/provisioning_script_sonic.sh new file mode 100644 index 000000000..c4dd20438 --- /dev/null +++ b/src/ztp_server/data/provisioning_script_sonic.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +PRODUCT_NAME=$(show version | grep 'Platform' | awk '{print $2}') +SERIAL_NUMBER=$(show version | grep 'Serial Number' | awk '{print $3}') +BASE_MAC_ADDRESS=$(show platform syseeprom | grep 'Base MAC Address' | awk '{print $6}') +SONIC_VERSION=$(show version | grep 'SONiC Software Version' | awk '{print $4}') + +# URL of the config_db.json file +CONFIG_DB_URL="http://10.1.1.119:9001/config/config_db.json" + +# Directory where the file will be saved +DEST_DIR="/etc/sonic" +DEST_FILE="$DEST_DIR/config_db.json" + +# Download the config_db.json file +curl -o $DEST_FILE -H "User-Agent: SONiC-ZTP/0.1" \ + -H "PRODUCT-NAME: $PRODUCT_NAME" \ + -H "SERIAL-NUMBER: $SERIAL_NUMBER" \ + -H "BASE-MAC-ADDRESS: $BASE_MAC_ADDRESS" \ + -H "SONiC-VERSION: $SONIC_VERSION" \ + $CONFIG_DB_URL +if [ $? -ne 0 ]; then + logger "Error: Failed to download the file from $CONFIG_DB_URL" + exit 1 +fi + +# Reload the configuration database +sudo config reload -y + +# Check if the reload was successful +if [ $? -eq 0 ]; then + logger "The configuration database reloaded successfully." +else + logger "Error: Failed to reload the configuration database." + exit 1 +fi + +logger "Plugin executed successfully." diff --git a/src/ztp_server/data/ztp.json b/src/ztp_server/data/ztp.json new file mode 100644 index 000000000..6e606a5e8 --- /dev/null +++ b/src/ztp_server/data/ztp.json @@ -0,0 +1,11 @@ +{ + "ztp": { + "01-provisioning-script": { + "plugin": { + "url": "http://localhost:9001/provisioning/provisioning_script_sonic.sh" + }, + "reboot-on-success": true + } + } + } + \ No newline at end of file diff --git a/src/ztp_server/requirements.in b/src/ztp_server/requirements.in new file mode 100755 index 000000000..0d7804836 --- /dev/null +++ b/src/ztp_server/requirements.in @@ -0,0 +1,28 @@ +# Copyright 2022-2024 ETSI 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. + +deepdiff==6.7.* +deepmerge==1.1.* +Flask==2.1.3 +Flask-HTTPAuth==4.5.0 +Flask-RESTful==0.3.9 +jsonschema==4.4.0 +libyang==2.8.0 +netaddr==0.9.0 +pyang==2.6.0 +git+https://github.com/robshakir/pyangbind.git +pydantic==2.6.3 +requests==2.27.1 +werkzeug==2.3.7 +websockets==12.0 diff --git a/src/ztp_server/service/ZtpServerService.py b/src/ztp_server/service/ZtpServerService.py new file mode 100755 index 000000000..2b4da4f93 --- /dev/null +++ b/src/ztp_server/service/ZtpServerService.py @@ -0,0 +1,28 @@ +# Copyright 2022-2024 ETSI 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. + +from common.Constants import ServiceNameEnum +from common.Settings import get_service_port_grpc +from common.proto.ztpServer_pb2_grpc import add_Ztp_ServerServiceServicer_to_server +from common.tools.service.GenericGrpcService import GenericGrpcService +from ztp_server.service.ZtpServerServiceServicerImpl import ZtpServerServiceServicerImpl + +class ZtpServerService(GenericGrpcService): + def __init__(self, cls_name: str = __name__) -> None: + port = get_service_port_grpc(ServiceNameEnum.ZTP_SERVER) + super().__init__(port, cls_name=cls_name) + self.ztp_servicer = ZtpServerServiceServicerImpl() + + def install_servicers(self): + add_Ztp_ServerServiceServicer_to_server(self.ztp_servicer, self.server) diff --git a/src/ztp_server/service/ZtpServerServiceServicerImpl.py b/src/ztp_server/service/ZtpServerServiceServicerImpl.py new file mode 100755 index 000000000..009cda922 --- /dev/null +++ b/src/ztp_server/service/ZtpServerServiceServicerImpl.py @@ -0,0 +1,40 @@ +# Copyright 2022-2024 ETSI 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 grpc, logging +from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method +from common.proto.context_pb2 import ( + ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) +from common.proto.ztpServer_pb2_grpc import ztpServerServiceServicer + +LOGGER = logging.getLogger(__name__) + +METRICS_POOL = MetricsPool('ZTP_SERVER', 'RPC') + +class ZtpServerServiceServicerImpl(ztpServerServiceServicer): + def __init__(self): + LOGGER.info('Creating Servicer...') + LOGGER.info('Servicer Created') + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def GetZtpProvisioning(self, request : ProvisioningScriptName, context : grpc.ServicerContext) -> ProvisioningScript: + LOGGER.warning('NOT IMPLEMENTED') + return ProvisioningScript() + + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) + def GetZtpProvisioning(self, request : ZtpFileName, context : grpc.ServicerContext) -> ZtpFile: + LOGGER.warning('NOT IMPLEMENTED') + return ZtpFile() + + diff --git a/src/ztp_server/service/__init__.py b/src/ztp_server/service/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/service/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/service/__main__.py b/src/ztp_server/service/__main__.py new file mode 100755 index 000000000..25e8605d3 --- /dev/null +++ b/src/ztp_server/service/__main__.py @@ -0,0 +1,78 @@ +# Copyright 2022-2024 ETSI 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 logging, signal, sys, threading +from prometheus_client import start_http_server +from common.Constants import ServiceNameEnum +from common.Settings import ( + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, + get_env_var_name, get_log_level, get_metrics_port, +) +from .ZtpServerService import ZtpServerService +from .rest_server.RestServer import RestServer + +from .context_subscription import register_context_subscription + +terminate = threading.Event() +LOGGER = None + +def signal_handler(signal, frame): # pylint: disable=redefined-outer-name, unused-argument + LOGGER.warning('Terminate signal received') + terminate.set() + +def main(): + global LOGGER # pylint: disable=global-statement + + log_level = get_log_level() + logging.basicConfig(level=log_level) + LOGGER = logging.getLogger(__name__) + + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) + + LOGGER.info('Starting...') + + # Start metrics server + metrics_port = get_metrics_port() + start_http_server(metrics_port) + + # Starting ZtpServer service + grpc_service = ZtpServerService() + grpc_service.start() + + rest_server = RestServer() + register_tfs_api(rest_server) + rest_server.start() + + LOGGER.debug('Configured Resources:') + for resource in rest_server.api.resources: + LOGGER.debug(' - {:s}'.format(str(resource))) + + LOGGER.debug('Configured Rules:') + for rule in rest_server.app.url_map.iter_rules(): + LOGGER.debug(' - {:s}'.format(str(rule))) + + # Wait for Ctrl+C or termination signal + while not terminate.wait(timeout=1.0): pass + + LOGGER.info('Terminating...') + grpc_service.stop() + rest_server.shutdown() + rest_server.join() + + LOGGER.info('Bye') + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/ztp_server/service/context_subscription/__init__.py b/src/ztp_server/service/context_subscription/__init__.py new file mode 100755 index 000000000..758f3d82c --- /dev/null +++ b/src/ztp_server/service/context_subscription/__init__.py @@ -0,0 +1,64 @@ +# Copyright 2022-2024 ETSI 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 logging + +from websockets.sync.server import serve +from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest +from common.Settings import get_setting +from context.client.ContextClient import ContextClient +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.tools.object_factory.Topology import json_topology_id +from common.tools.object_factory.Context import json_context_id +from common.proto.context_pb2 import ContextId, TopologyId +import json +import os +from vnt_manager.client.VNTManagerClient import VNTManagerClient + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) +ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) + +vnt_manager_client: VNTManagerClient = VNTManagerClient() +context_client: ContextClient = ContextClient() + +ALL_HOSTS = "0.0.0.0" +WS_E2E_PORT = int(get_setting('WS_E2E_PORT', default='8762')) + +LOGGER = logging.getLogger(__name__) + + +def register_context_subscription(): + with serve(subcript_to_vnt_manager, ALL_HOSTS, WS_E2E_PORT, logger=LOGGER) as server: + LOGGER.info("Running subscription server...: {}:{}".format(ALL_HOSTS, str(WS_E2E_PORT))) + server.serve_forever() + LOGGER.info("Exiting subscription server...") + + +def subcript_to_vnt_manager(websocket): + for message in websocket: + LOGGER.debug("Message received: {}".format(message)) + message_json = json.loads(message) + request = VNTSubscriptionRequest() + request.host = message_json['host'] + request.port = message_json['port'] + LOGGER.debug("Received gRPC from ws: {}".format(request)) + + try: + vntm_reply = vnt_manager_client.VNTSubscript(request) + LOGGER.debug("Received gRPC from vntm: {}".format(vntm_reply)) + except Exception as e: + LOGGER.error('Could not subscript to VTNManager: {}'.format(e)) + + websocket.send(vntm_reply.subscription) diff --git a/src/ztp_server/service/rest_server/RestServer.py b/src/ztp_server/service/rest_server/RestServer.py new file mode 100755 index 000000000..0c4e45a8c --- /dev/null +++ b/src/ztp_server/service/rest_server/RestServer.py @@ -0,0 +1,23 @@ +# Copyright 2022-2024 ETSI 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. + +from common.Constants import ServiceNameEnum +from common.Settings import get_service_baseurl_http, get_service_port_http +from common.tools.service.GenericRestServer import GenericRestServer + +class RestServer(GenericRestServer): + def __init__(self, cls_name: str = __name__) -> None: + bind_port = get_service_port_http(ServiceNameEnum.ZTP_SERVER) + base_url = get_service_baseurl_http(ServiceNameEnum.ZTP_SERVER) + super().__init__(bind_port, base_url, cls_name=cls_name) diff --git a/src/ztp_server/service/rest_server/__init__.py b/src/ztp_server/service/rest_server/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/service/rest_server/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/__init__.py b/src/ztp_server/service/rest_server/ztpServer_plugins/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py new file mode 100755 index 000000000..c1b8c3733 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py @@ -0,0 +1,47 @@ +# Copyright 2022-2024 ETSI 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 +import logging +from flask.json import jsonify +from flask_restful import Resource, request +from werkzeug.exceptions import BadRequest +from common.proto.context_pb2 import Empty, LinkTypeEnum +from common.tools.grpc.Tools import grpc_message_to_json +from context.client.ContextClient import ContextClient +from device.client.DeviceClient import DeviceClient +from service.client.ServiceClient import ServiceClient +from slice.client.SliceClient import SliceClient +from vnt_manager.client.VNTManagerClient import VNTManagerClient + +from .Tools import ( + format_grpc_to_json, returnConfigFile +) + +LOGGER = logging.getLogger(__name__) + + +class _Resource(Resource): + def __init__(self) -> None: + super().__init__() + self.context_client = ContextClient() + self.device_client = DeviceClient() + self.service_client = ServiceClient() + self.vntmanager_client = VNTManagerClient() + self.slice_client = SliceClient() + + +class config(_Resource): + def get(self, config_db : str): + return returnConfigFile(config_db) #TODO define how to return configFile.json diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py new file mode 100755 index 000000000..6665dd4ce --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py @@ -0,0 +1,41 @@ +# Copyright 2022-2024 ETSI 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. + +from typing import Dict +from flask.json import jsonify +from common.proto.context_pb2 import ( + ConnectionId, returnConfigFile +) +from common.proto.policy_pb2 import PolicyRule, PolicyRuleId +from common.tools.grpc.Tools import grpc_message_to_json +from common.tools.object_factory.Connection import json_connection_id +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Device import json_device_id +from common.tools.object_factory.Link import json_link_id +from common.tools.object_factory.PolicyRule import json_policyrule_id +from common.tools.object_factory.Service import json_service_id +from common.tools.object_factory.Slice import json_slice_id +from common.tools.object_factory.Topology import json_topology_id + + +def format_grpc_to_json(grpc_reply): + return jsonify(grpc_message_to_json(grpc_reply)) + +def returnConfigFile(config_db): + path = config_db + + with open(path, 'r', encoding='utf-8') as configFile: + content = configFile.read() + + return content \ No newline at end of file diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py new file mode 100755 index 000000000..7062772b4 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py @@ -0,0 +1,30 @@ +# Copyright 2022-2024 ETSI 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. + +from ztp_server.service.rest_server.RestServer import RestServer +from .Resources import ( + config +) + +URL_PREFIX = '/provisioning' + +# Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type. +RESOURCES = [ + # (endpoint_name, resource_class, resource_url) + ('api.config', config, '/config/<path:config_db>'), +] + +def register_tfs_api(rest_server : RestServer): + for endpoint_name, resource_class, resource_url in RESOURCES: + rest_server.add_resource(resource_class, URL_PREFIX + resource_url, endpoint=endpoint_name) diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Authentication.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Authentication.py new file mode 100755 index 000000000..aab239f36 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Authentication.py @@ -0,0 +1,25 @@ +# Copyright 2022-2024 ETSI 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. + +from flask_httpauth import HTTPBasicAuth +from werkzeug.security import check_password_hash +from ztp_server.Config import RESTAPI_USERS + +HTTP_AUTH = HTTPBasicAuth() + +@HTTP_AUTH.verify_password +def verify_password(username, password): + if username not in RESTAPI_USERS: return None + if not check_password_hash(RESTAPI_USERS[username], password): return None + return username diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py new file mode 100755 index 000000000..56ea475c7 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py @@ -0,0 +1,20 @@ +# Copyright 2022-2024 ETSI 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. + +HTTP_OK = 200 +HTTP_CREATED = 201 +HTTP_NOCONTENT = 204 +HTTP_BADREQUEST = 400 +HTTP_SERVERERROR = 500 +HTTP_GATEWAYTIMEOUT = 504 \ No newline at end of file diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py new file mode 100755 index 000000000..66b607c8b --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py @@ -0,0 +1,35 @@ +# Copyright 2022-2024 ETSI 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. + +from typing import List +from flask.json import jsonify +from jsonschema import _utils +from jsonschema.validators import validator_for +from jsonschema.protocols import Validator +from jsonschema.exceptions import ValidationError +from werkzeug.exceptions import BadRequest +from .HttpStatusCodes import HTTP_BADREQUEST + +def validate_message(schema, message): + validator_class = validator_for(schema) + validator : Validator = validator_class(schema) + errors : List[ValidationError] = sorted(validator.iter_errors(message), key=str) + if len(errors) == 0: return + response = jsonify([ + {'message': str(error.message), 'schema': str(error.schema), 'validator': str(error.validator), + 'where': str(_utils.format_as_index(container='message', indices=error.relative_path))} + for error in errors + ]) + response.status_code = HTTP_BADREQUEST + raise BadRequest(response=response) diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/__init__.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/tests/Constants.py b/src/ztp_server/tests/Constants.py new file mode 100755 index 000000000..886ddcafa --- /dev/null +++ b/src/ztp_server/tests/Constants.py @@ -0,0 +1,85 @@ +# Copyright 2022-2024 ETSI 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. + +USERNAME = 'admin' +PASSWORD = 'admin' + +# Ref: https://osm.etsi.org/wikipub/index.php/WIM +WIM_MAPPING = [ + { + 'device-id' : 'dev-1', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-1', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R1-EMU:13/1/2'}, + 'site-id': '1', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, + { + 'device-id' : 'dev-2', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-2', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R2-EMU:13/1/2'}, + 'site-id': '2', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, + { + 'device-id' : 'dev-3', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-3', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R3-EMU:13/1/2'}, + 'site-id': '3', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, + { + 'device-id' : 'dev-4', # pop_switch_dpid + #'device_interface_id' : ??, # pop_switch_port + 'service_endpoint_id' : 'ep-4', # wan_service_endpoint_id + 'service_mapping_info': { # wan_service_mapping_info, other extra info + 'bearer': {'bearer-reference': 'R4-EMU:13/1/2'}, + 'site-id': '4', + }, + #'switch_dpid' : ??, # wan_switch_dpid + #'switch_port' : ??, # wan_switch_port + #'datacenter_id' : ??, # vim_account + }, +] + +SERVICE_TYPE = 'ELINE' + +SERVICE_CONNECTION_POINTS_1 = [ + {'service_endpoint_id': 'ep-1', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, + {'service_endpoint_id': 'ep-2', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, +] + +SERVICE_CONNECTION_POINTS_2 = [ + {'service_endpoint_id': 'ep-3', + 'service_endpoint_encapsulation_type': 'dot1q', + 'service_endpoint_encapsulation_info': {'vlan': 1234}}, +] \ No newline at end of file diff --git a/src/ztp_server/tests/MockService_Dependencies.py b/src/ztp_server/tests/MockService_Dependencies.py new file mode 100755 index 000000000..322441367 --- /dev/null +++ b/src/ztp_server/tests/MockService_Dependencies.py @@ -0,0 +1,58 @@ +# Copyright 2022-2024 ETSI 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 os +from typing import Union +from common.Constants import ServiceNameEnum +from common.Settings import ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name +from common.proto.context_pb2_grpc import add_ContextServiceServicer_to_server +from common.proto.service_pb2_grpc import add_ServiceServiceServicer_to_server +from common.proto.slice_pb2_grpc import add_SliceServiceServicer_to_server +from common.tests.MockServicerImpl_Context import MockServicerImpl_Context +from common.tests.MockServicerImpl_Service import MockServicerImpl_Service +from common.tests.MockServicerImpl_Slice import MockServicerImpl_Slice +from common.tools.service.GenericGrpcService import GenericGrpcService + +LOCAL_HOST = '127.0.0.1' + +SERVICE_CONTEXT = ServiceNameEnum.CONTEXT +SERVICE_SERVICE = ServiceNameEnum.SERVICE +SERVICE_SLICE = ServiceNameEnum.SLICE + +class MockService_Dependencies(GenericGrpcService): + # Mock Service implementing Context, Service and Slice to simplify unitary tests of NBI + + def __init__(self, bind_port: Union[str, int]) -> None: + super().__init__(bind_port, LOCAL_HOST, enable_health_servicer=False, cls_name='MockService') + + # pylint: disable=attribute-defined-outside-init + def install_servicers(self): + self.context_servicer = MockServicerImpl_Context() + add_ContextServiceServicer_to_server(self.context_servicer, self.server) + + self.service_servicer = MockServicerImpl_Service() + add_ServiceServiceServicer_to_server(self.service_servicer, self.server) + + self.slice_servicer = MockServicerImpl_Slice() + add_SliceServiceServicer_to_server(self.slice_servicer, self.server) + + def configure_env_vars(self): + os.environ[get_env_var_name(SERVICE_CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) + os.environ[get_env_var_name(SERVICE_CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) + + os.environ[get_env_var_name(SERVICE_SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) + os.environ[get_env_var_name(SERVICE_SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) + + os.environ[get_env_var_name(SERVICE_SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) + os.environ[get_env_var_name(SERVICE_SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) diff --git a/src/ztp_server/tests/PrepareTestScenario.py b/src/ztp_server/tests/PrepareTestScenario.py new file mode 100755 index 000000000..a574f086b --- /dev/null +++ b/src/ztp_server/tests/PrepareTestScenario.py @@ -0,0 +1,169 @@ +# Copyright 2022-2024 ETSI 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 enum, logging, os, pytest, requests, time +from typing import Any, Dict, List, Optional, Set, Union +from common.Constants import ServiceNameEnum +from common.Settings import ( + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_HTTP, + get_env_var_name, get_service_baseurl_http, get_service_port_http +) +from context.client.ContextClient import ContextClient +from nbi.service.rest_server.RestServer import RestServer +from nbi.service.rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api +from nbi.service.rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn +from nbi.service.rest_server.nbi_plugins.ietf_l3vpn import register_ietf_l3vpn +from nbi.service.rest_server.nbi_plugins.ietf_network import register_ietf_network +from nbi.service.rest_server.nbi_plugins.tfs_api import register_tfs_api +from nbi.tests.MockService_Dependencies import MockService_Dependencies +from service.client.ServiceClient import ServiceClient +from slice.client.SliceClient import SliceClient +from tests.tools.mock_osm.MockOSM import MockOSM +from .Constants import USERNAME, PASSWORD, WIM_MAPPING + +LOCAL_HOST = '127.0.0.1' +MOCKSERVICE_PORT = 10000 +NBI_SERVICE_PORT = MOCKSERVICE_PORT + get_service_port_http(ServiceNameEnum.NBI) # avoid privileged ports +os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) +os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) + +@pytest.fixture(scope='session') +def mock_service(): + _service = MockService_Dependencies(MOCKSERVICE_PORT) + _service.configure_env_vars() + _service.start() + yield _service + _service.stop() + +@pytest.fixture(scope='session') +def nbi_service_rest(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument + _rest_server = RestServer() + register_etsi_bwm_api(_rest_server) + register_ietf_l2vpn(_rest_server) + register_ietf_l3vpn(_rest_server) + register_ietf_network(_rest_server) + register_tfs_api(_rest_server) + _rest_server.start() + time.sleep(1) # bring time for the server to start + yield _rest_server + _rest_server.shutdown() + _rest_server.join() + +@pytest.fixture(scope='session') +def osm_wim(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + wim_url = 'http://{:s}:{:d}'.format(LOCAL_HOST, NBI_SERVICE_PORT) + return MockOSM(wim_url, WIM_MAPPING, USERNAME, PASSWORD) + +@pytest.fixture(scope='session') +def context_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument + _client = ContextClient() + yield _client + _client.close() + +@pytest.fixture(scope='session') +def service_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument + _client = ServiceClient() + yield _client + _client.close() + +@pytest.fixture(scope='session') +def slice_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument + _client = SliceClient() + yield _client + _client.close() + +class RestRequestMethod(enum.Enum): + GET = 'get' + POST = 'post' + PUT = 'put' + PATCH = 'patch' + DELETE = 'delete' + +EXPECTED_STATUS_CODES : Set[int] = { + requests.codes['OK' ], + requests.codes['CREATED' ], + requests.codes['ACCEPTED' ], + requests.codes['NO_CONTENT'], +} + +def do_rest_request( + method : RestRequestMethod, url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + base_url = get_service_baseurl_http(ServiceNameEnum.NBI) or '' + request_url = 'http://{:s}:{:s}@{:s}:{:d}{:s}{:s}'.format( + USERNAME, PASSWORD, LOCAL_HOST, NBI_SERVICE_PORT, str(base_url), url + ) + if logger is not None: + msg = 'Request: {:s} {:s}'.format(str(method.value).upper(), str(request_url)) + if body is not None: msg += ' body={:s}'.format(str(body)) + logger.warning(msg) + reply = requests.request(method.value, request_url, timeout=timeout, json=body, allow_redirects=allow_redirects) + if logger is not None: + logger.warning('Reply: {:s}'.format(str(reply.text))) + assert reply.status_code in expected_status_codes, 'Reply failed with status code {:d}'.format(reply.status_code) + + if reply.content and len(reply.content) > 0: return reply.json() + return None + +def do_rest_get_request( + url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + return do_rest_request( + RestRequestMethod.GET, url, body=body, timeout=timeout, allow_redirects=allow_redirects, + expected_status_codes=expected_status_codes, logger=logger + ) + +def do_rest_post_request( + url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + return do_rest_request( + RestRequestMethod.POST, url, body=body, timeout=timeout, allow_redirects=allow_redirects, + expected_status_codes=expected_status_codes, logger=logger + ) + +def do_rest_put_request( + url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + return do_rest_request( + RestRequestMethod.PUT, url, body=body, timeout=timeout, allow_redirects=allow_redirects, + expected_status_codes=expected_status_codes, logger=logger + ) + +def do_rest_patch_request( + url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + return do_rest_request( + RestRequestMethod.PATCH, url, body=body, timeout=timeout, allow_redirects=allow_redirects, + expected_status_codes=expected_status_codes, logger=logger + ) + +def do_rest_delete_request( + url : str, body : Optional[Any] = None, timeout : int = 10, + allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, + logger : Optional[logging.Logger] = None +) -> Optional[Union[Dict, List]]: + return do_rest_request( + RestRequestMethod.DELETE, url, body=body, timeout=timeout, allow_redirects=allow_redirects, + expected_status_codes=expected_status_codes, logger=logger + ) diff --git a/src/ztp_server/tests/__init__.py b/src/ztp_server/tests/__init__.py new file mode 100755 index 000000000..53d5157f7 --- /dev/null +++ b/src/ztp_server/tests/__init__.py @@ -0,0 +1,14 @@ +# Copyright 2022-2024 ETSI 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. + diff --git a/src/ztp_server/tests/data/ietf_acl.json b/src/ztp_server/tests/data/ietf_acl.json new file mode 100755 index 000000000..072df6d01 --- /dev/null +++ b/src/ztp_server/tests/data/ietf_acl.json @@ -0,0 +1,56 @@ +{ + "ietf-access-control-list": { + "acls": { + "acl": [ + { + "name": "sample-ipv4-acl", + "type": "ipv4-acl-type", + "aces": { + "ace": [ + { + "name": "rule1", + "matches": { + "ipv4": { + "dscp": 18, + "source-ipv4-network": "128.32.10.6/24", + "destination-ipv4-network": "172.10.33.0/24" + }, + "tcp": { + "flags": "syn", + "source-port": { + "port": 1444, + "operator": "eq" + }, + "destination-port": { + "port": 1333, + "operator": "eq" + } + } + }, + "actions": { + "forwarding": "drop" + } + } + ] + } + } + ], + "attachment-points": { + "interface": [ + { + "interface-id": "200", + "ingress": { + "acl-sets": { + "acl-set": [ + { + "name": "sample-ipv4-acl" + } + ] + } + } + } + ] + } + } + } +} diff --git a/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json b/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json new file mode 100755 index 000000000..bfeb93fb7 --- /dev/null +++ b/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json @@ -0,0 +1,231 @@ +{ + "ietf-l3vpn-svc:l3vpn-svc": { + "vpn-services": { + "vpn-service": [ + { + "vpn-id": "vpn1" + } + ] + }, + "sites": { + "site": [ + { + "site-id": "site_OLT", + "management": { + "type": "ietf-l3vpn-svc:provider-managed" + }, + "locations": { + "location": [ + { + "location-id": "OLT" + } + ] + }, + "devices": { + "device": [ + { + "device-id": "128.32.33.5", + "location": "OLT" + } + ] + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "128.32.10.1/24", + "lan-tag": "vlan21", + "next-hop": "128.32.33.2" + }, + { + "lan": "128.32.20.1/24", + "lan-tag": "vlan21", + "next-hop": "128.32.33.2" + } + ] + } + } + } + ] + }, + "site-network-accesses": { + "site-network-access": [ + { + "site-network-access-id": "500", + "site-network-access-type": "ietf-l3vpn-svc:multipoint", + "device-reference": "128.32.33.5", + "vpn-attachment": { + "vpn-id": "vpn1", + "site-role": "ietf-l3vpn-svc:spoke-role" + }, + "ip-connection": { + "ipv4": { + "address-allocation-type": "ietf-l3vpn-svc:static-address", + "addresses": { + "provider-address": "128.32.33.254", + "customer-address": "128.32.33.2", + "prefix-length": 24 + } + } + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "172.1.101.1/24", + "lan-tag": "vlan21", + "next-hop": "128.32.33.254" + } + ] + } + } + } + ] + }, + "service": { + "svc-mtu": 1500, + "svc-input-bandwidth": 1000000000, + "svc-output-bandwidth": 1000000000, + "qos": { + "qos-profile": { + "classes": { + "class": [ + { + "class-id": "qos-realtime", + "direction": "ietf-l3vpn-svc:both", + "latency": { + "latency-boundary": 10 + }, + "bandwidth": { + "guaranteed-bw-percent": 100 + } + } + ] + } + } + } + } + } + ] + } + }, + { + "site-id": "site_POP", + "management": { + "type": "ietf-l3vpn-svc:provider-managed" + }, + "locations": { + "location": [ + { + "location-id": "POP" + } + ] + }, + "devices": { + "device": [ + { + "device-id": "172.10.33.5", + "location": "POP" + } + ] + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "172.1.101.1/24", + "lan-tag": "vlan101", + "next-hop": "172.10.33.2" + } + ] + } + } + } + ] + }, + "site-network-accesses": { + "site-network-access": [ + { + "site-network-access-id": "500", + "site-network-access-type": "ietf-l3vpn-svc:multipoint", + "device-reference": "172.10.33.5", + "vpn-attachment": { + "vpn-id": "vpn1", + "site-role": "ietf-l3vpn-svc:hub-role" + }, + "ip-connection": { + "ipv4": { + "address-allocation-type": "ietf-l3vpn-svc:static-address", + "addresses": { + "provider-address": "172.10.33.254", + "customer-address": "172.10.33.2", + "prefix-length": 24 + } + } + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "128.32.10.1/24", + "lan-tag": "vlan101", + "next-hop": "172.10.33.254" + }, + { + "lan": "128.32.20.1/24", + "lan-tag": "vlan101", + "next-hop": "172.10.33.254" + } + ] + } + } + } + ] + }, + "service": { + "svc-mtu": 1500, + "svc-input-bandwidth": 1000000000, + "svc-output-bandwidth": 1000000000, + "qos": { + "qos-profile": { + "classes": { + "class": [ + { + "class-id": "qos-realtime", + "direction": "ietf-l3vpn-svc:both", + "latency": { + "latency-boundary": 10 + }, + "bandwidth": { + "guaranteed-bw-percent": 100 + } + } + ] + } + } + } + } + } + ] + } + } + ] + } + } +} \ No newline at end of file diff --git a/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json b/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json new file mode 100755 index 000000000..2cc512e59 --- /dev/null +++ b/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json @@ -0,0 +1,231 @@ +{ + "ietf-l3vpn-svc:l3vpn-svc": { + "vpn-services": { + "vpn-service": [ + { + "vpn-id": "vpn2" + } + ] + }, + "sites": { + "site": [ + { + "site-id": "site_OLT", + "management": { + "type": "ietf-l3vpn-svc:provider-managed" + }, + "locations": { + "location": [ + { + "location-id": "OLT" + } + ] + }, + "devices": { + "device": [ + { + "device-id": "128.32.33.5", + "location": "OLT" + } + ] + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "128.32.10.1/24", + "lan-tag": "vlan31", + "next-hop": "128.32.33.2" + }, + { + "lan": "128.32.20.1/24", + "lan-tag": "vlan31", + "next-hop": "128.32.33.2" + } + ] + } + } + } + ] + }, + "site-network-accesses": { + "site-network-access": [ + { + "site-network-access-id": "500", + "site-network-access-type": "ietf-l3vpn-svc:multipoint", + "device-reference": "128.32.33.5", + "vpn-attachment": { + "vpn-id": "vpn2", + "site-role": "ietf-l3vpn-svc:spoke-role" + }, + "ip-connection": { + "ipv4": { + "address-allocation-type": "ietf-l3vpn-svc:static-address", + "addresses": { + "provider-address": "128.32.33.254", + "customer-address": "128.32.33.2", + "prefix-length": 24 + } + } + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "172.1.201.1/24", + "lan-tag": "vlan31", + "next-hop": "128.32.33.254" + } + ] + } + } + } + ] + }, + "service": { + "svc-mtu": 1500, + "svc-input-bandwidth": 1000000000, + "svc-output-bandwidth": 1000000000, + "qos": { + "qos-profile": { + "classes": { + "class": [ + { + "class-id": "qos-realtime", + "direction": "ietf-l3vpn-svc:both", + "latency": { + "latency-boundary": 10 + }, + "bandwidth": { + "guaranteed-bw-percent": 100 + } + } + ] + } + } + } + } + } + ] + } + }, + { + "site-id": "site_POP", + "management": { + "type": "ietf-l3vpn-svc:provider-managed" + }, + "locations": { + "location": [ + { + "location-id": "POP" + } + ] + }, + "devices": { + "device": [ + { + "device-id": "172.10.33.5", + "location": "POP" + } + ] + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "172.1.201.1/24", + "lan-tag": "vlan201", + "next-hop": "172.10.33.2" + } + ] + } + } + } + ] + }, + "site-network-accesses": { + "site-network-access": [ + { + "site-network-access-id": "500", + "site-network-access-type": "ietf-l3vpn-svc:multipoint", + "device-reference": "172.10.33.5", + "vpn-attachment": { + "vpn-id": "vpn2", + "site-role": "ietf-l3vpn-svc:hub-role" + }, + "ip-connection": { + "ipv4": { + "address-allocation-type": "ietf-l3vpn-svc:static-address", + "addresses": { + "provider-address": "172.10.33.254", + "customer-address": "172.10.33.2", + "prefix-length": 24 + } + } + }, + "routing-protocols": { + "routing-protocol": [ + { + "type": "ietf-l3vpn-svc:static", + "static": { + "cascaded-lan-prefixes": { + "ipv4-lan-prefixes": [ + { + "lan": "128.32.10.1/24", + "lan-tag": "vlan201", + "next-hop": "172.10.33.254" + }, + { + "lan": "128.32.20.1/24", + "lan-tag": "vlan201", + "next-hop": "172.10.33.254" + } + ] + } + } + } + ] + }, + "service": { + "svc-mtu": 1500, + "svc-input-bandwidth": 1000000000, + "svc-output-bandwidth": 1000000000, + "qos": { + "qos-profile": { + "classes": { + "class": [ + { + "class-id": "qos-realtime", + "direction": "ietf-l3vpn-svc:both", + "latency": { + "latency-boundary": 10 + }, + "bandwidth": { + "guaranteed-bw-percent": 100 + } + } + ] + } + } + } + } + } + ] + } + } + ] + } + } +} \ No newline at end of file diff --git a/src/ztp_server/tests/data/test-ietf-network.json b/src/ztp_server/tests/data/test-ietf-network.json new file mode 100755 index 000000000..7643ef53a --- /dev/null +++ b/src/ztp_server/tests/data/test-ietf-network.json @@ -0,0 +1,1962 @@ +{ + "ietf-network:networks": { + "network": [ + { + "network-id": "providerId-10-clientId-0-topologyId-1", + "ietf-te-topology:te": { + "name": "Huawei-Network" + }, + "ietf-te-topology:te-topology-identifier": { + "provider-id": 10, + "client-id": 0, + "topology-id": "1" + }, + "network-types": { + "ietf-te-topology:te-topology": { + "ietf-otn-topology:otn-topology": {} + } + }, + "node": [ + { + "node-id": "10.0.10.1", + "ietf-te-topology:te-node-id": "10.0.10.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "OA" + }, + "tunnel-termination-point": [ + { + "tunnel-tp-id": "NTAx", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "501" + } + ] + } + }, + { + "tunnel-tp-id": "NTAw", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "500" + } + ] + } + } + ] + } + }, + { + "node-id": "10.0.20.1", + "ietf-te-topology:te-node-id": "10.0.20.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "P" + }, + "tunnel-termination-point": [ + { + "tunnel-tp-id": "NTAx", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "501" + } + ] + } + }, + { + "tunnel-tp-id": "NTAw", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "500" + } + ] + } + } + ] + } + }, + { + "node-id": "10.0.40.1", + "ietf-te-topology:te-node-id": "10.0.40.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + }, + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "P" + }, + "tunnel-termination-point": [ + { + "tunnel-tp-id": "NTAw", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "500" + } + ] + } + }, + { + "tunnel-tp-id": "NTAx", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "501" + } + ] + } + } + ] + } + }, + { + "node-id": "10.0.30.1", + "ietf-te-topology:te-node-id": "10.0.30.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + }, + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-te-topology:te": { + "name": "1-1-1-1-1", + "admin-status": "up", + "oper-status": "up", + "ietf-otn-topology:client-svc": { + "client-facing": false + }, + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-oduk", + "switching-capability": "ietf-te-types:switching-otn", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odu-type": "ietf-layer1-types:ODU4" + } + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "OE" + }, + "tunnel-termination-point": [ + { + "tunnel-tp-id": "NTAw", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "500" + } + ] + } + }, + { + "tunnel-tp-id": "NTAx", + "admin-status": "up", + "oper-status": "up", + "encoding": "ietf-te-types:lsp-encoding-oduk", + "name": "1-1-1-1-1", + "protection-type": "ietf-te-types:lsp-protection-unprotected", + "switching-capability": "ietf-te-types:switching-otn", + "local-link-connectivities": { + "local-link-connectivity": [ + { + "is-allowed": true, + "link-tp-ref": "501" + } + ] + } + } + ] + } + } + ], + "ietf-network-topology:link": [ + { + "link-id": "10.0.10.1-501", + "source": { + "source-node": "10.0.10.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.20.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.10.1-501", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.10.1-500", + "source": { + "source-node": "10.0.10.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.40.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.10.1-500", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.20.1-501", + "source": { + "source-node": "10.0.20.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.10.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.20.1-501", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.20.1-500", + "source": { + "source-node": "10.0.20.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.30.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.20.1-500", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.40.1-500", + "source": { + "source-node": "10.0.40.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.10.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.40.1-500", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.40.1-501", + "source": { + "source-node": "10.0.40.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.30.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.40.1-501", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.30.1-500", + "source": { + "source-node": "10.0.30.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.20.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.30.1-500", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + }, + { + "link-id": "10.0.30.1-501", + "source": { + "source-node": "10.0.30.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.40.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.30.1-501", + "te-delay-metric": 1, + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "odu-type": "ietf-layer1-types:ODU0", + "ts-number": 80 + } + ] + } + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-otn-topology:otn": { + "odulist": [ + { + "ts-number": 80, + "odu-type": "ietf-layer1-types:ODU0" + } + ] + } + } + } + ] + } + } + } + ] + }, + { + "network-id": "providerId-10-clientId-0-topologyId-2", + "ietf-te-topology:te": { + "name": "Huawei-Network" + }, + "ietf-te-topology:te-topology-identifier": { + "provider-id": 10, + "client-id": 0, + "topology-id": "2" + }, + "network-types": { + "ietf-te-topology:te-topology": { + "ietf-eth-te-topology:eth-tran-topology": {} + } + }, + "node": [ + { + "node-id": "10.0.10.1", + "ietf-te-topology:te-node-id": "10.0.10.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "200", + "ietf-te-topology:te-tp-id": "128.32.33.254", + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "OA" + } + } + }, + { + "node-id": "10.0.20.1", + "ietf-te-topology:te-node-id": "10.0.20.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "P" + } + } + }, + { + "node-id": "10.0.40.1", + "ietf-te-topology:te-node-id": "10.0.40.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "P" + } + } + }, + { + "node-id": "10.0.30.1", + "ietf-te-topology:te-node-id": "10.0.30.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "200", + "ietf-te-topology:te-tp-id": "172.10.33.254", + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "501", + "ietf-te-topology:te-tp-id": 501, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "OE" + } + } + }, + { + "node-id": "128.32.33.5", + "ietf-te-topology:te-node-id": "128.32.33.5", + "ietf-network-topology:termination-point": [ + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": "128.32.33.2", + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + }, + "ietf-te-topology:te": { + "name": "endpoint:111", + "admin-status": "up", + "oper-status": "up", + "interface-switching-capability": [ + { + "encoding": "ietf-te-types:lsp-encoding-ethernet", + "switching-capability": "ietf-te-types:switching-l2sc", + "max-lsp-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + ] + } + }, + { + "tp-id": "200", + "ietf-te-topology:te-tp-id": 200, + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + }, + { + "tp-id": "201", + "ietf-te-topology:te-tp-id": 201, + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "OLT", + "connectivity-matrices": { + "label-restrictions": { + "label-restriction": [ + { + "index": 0, + "label-start": { + "te-label": { + "ietf-eth-te-topology:vlanid": 21 + } + }, + "label-end": { + "te-label": { + "ietf-eth-te-topology:vlanid": 21 + } + } + }, + { + "index": 1, + "label-start": { + "te-label": { + "ietf-eth-te-topology:vlanid": 31 + } + }, + "label-end": { + "te-label": { + "ietf-eth-te-topology:vlanid": 31 + } + } + } + ] + } + } + } + } + }, + { + "node-id": "128.32.10.1", + "ietf-te-topology:te-node-id": "128.32.10.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + }, + { + "tp-id": "200", + "ietf-te-topology:te-tp-id": 200, + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "ONT1" + } + } + }, + { + "node-id": "128.32.20.1", + "ietf-te-topology:te-node-id": "128.32.20.1", + "ietf-network-topology:termination-point": [ + { + "tp-id": "500", + "ietf-te-topology:te-tp-id": 500, + "ietf-eth-te-topology:eth-svc": { + "client-facing": false, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + }, + { + "tp-id": "200", + "ietf-te-topology:te-tp-id": 200, + "ietf-eth-te-topology:eth-svc": { + "client-facing": true, + "supported-classification": { + "port-classification": true, + "vlan-classification": { + "outer-tag": { + "supported-tag-types": [ + "ietf-eth-tran-types:classify-c-vlan", + "ietf-eth-tran-types:classify-s-vlan" + ], + "vlan-bundling": false, + "vlan-range": "1-4094" + } + } + } + } + } + ], + "ietf-te-topology:te": { + "oper-status": "up", + "te-node-attributes": { + "admin-status": "up", + "name": "ONT2" + } + } + } + ], + "ietf-network-topology:link": [ + { + "link-id": "10.0.10.1-200", + "source": { + "source-node": "10.0.10.1", + "source-tp": "200" + }, + "destination": { + "dest-node": "128.32.33.5", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.10.1-200", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "128.32.33.5-500", + "source": { + "source-node": "128.32.33.5", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.10.1", + "dest-tp": "200" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "128.32.33.5-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.10.1-501", + "source": { + "source-node": "10.0.10.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.20.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.10.1-501", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.10.1-500", + "source": { + "source-node": "10.0.10.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.40.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.10.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.20.1-501", + "source": { + "source-node": "10.0.20.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.10.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.20.1-501", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.20.1-500", + "source": { + "source-node": "10.0.20.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.30.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.20.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.40.1-501", + "source": { + "source-node": "10.0.40.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.30.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.40.1-501", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.40.1-500", + "source": { + "source-node": "10.0.40.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.10.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.40.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.30.1-501", + "source": { + "source-node": "10.0.30.1", + "source-tp": "501" + }, + "destination": { + "dest-node": "10.0.40.1", + "dest-tp": "501" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.30.1-501", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "10.0.30.1-500", + "source": { + "source-node": "10.0.30.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "10.0.20.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "10.0.30.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "128.32.33.5-200", + "source": { + "source-node": "128.32.33.5", + "source-tp": "200" + }, + "destination": { + "dest-node": "128.32.10.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "128.32.33.5-200", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "128.32.10.1-500", + "source": { + "source-node": "128.32.10.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "128.32.33.5", + "dest-tp": "200" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "128.32.10.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "128.32.33.5-201", + "source": { + "source-node": "128.32.33.5", + "source-tp": "201" + }, + "destination": { + "dest-node": "128.32.20.1", + "dest-tp": "500" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "128.32.33.5-201", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + }, + { + "link-id": "128.32.20.1-500", + "source": { + "source-node": "128.32.20.1", + "source-tp": "500" + }, + "destination": { + "dest-node": "128.32.33.5", + "dest-tp": "201" + }, + "ietf-te-topology:te": { + "oper-status": "up", + "te-link-attributes": { + "access-type": "point-to-point", + "admin-status": "up", + "name": "128.32.20.1-500", + "max-link-bandwidth": { + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + }, + "unreserved-bandwidth": [ + { + "priority": 7, + "te-bandwidth": { + "ietf-eth-te-topology:eth-bandwidth": 10000000 + } + } + ] + } + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/src/ztp_server/tests/data/tfs_api_dummy.json b/src/ztp_server/tests/data/tfs_api_dummy.json new file mode 100755 index 000000000..d8f513757 --- /dev/null +++ b/src/ztp_server/tests/data/tfs_api_dummy.json @@ -0,0 +1,442 @@ +{ + "dummy_mode": true, + "contexts": [ + { + "context_id": {"context_uuid": {"uuid": "admin"}}, + "name": "admin", + "topology_ids": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + ], + "service_ids": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}} + ], + "slice_ids": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}, "slice_uuid": {"uuid": "SLC:R1-R2-R3"}} + ] + } + ], + "topologies": [ + { + "device_ids": [ + {"device_uuid": {"uuid": "R1"}}, + {"device_uuid": {"uuid": "R2"}}, + {"device_uuid": {"uuid": "R3"}} + ], + "link_ids": [ + {"link_uuid": {"uuid": "R1/502==R2/501"}}, + {"link_uuid": {"uuid": "R1/503==R3/501"}}, + {"link_uuid": {"uuid": "R2/501==R1/502"}}, + {"link_uuid": {"uuid": "R2/503==R3/502"}}, + {"link_uuid": {"uuid": "R3/501==R1/503"}}, + {"link_uuid": {"uuid": "R3/502==R2/503"}} + ], + "name": "admin", + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "name": "R1", "device_type": "emu-packet-router", + "device_drivers": [0], "device_operational_status": 2, + "device_endpoints": [ + {"name": "200", "endpoint_type": "copper", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "502", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "503", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }} + ], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "502", "name": "502", "type": "optical"}, + {"uuid": "503", "name": "503", "type": "optical"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { + "uuid": "200", "name": "200", "type": "copper" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[502]", "resource_value": { + "uuid": "502", "name": "502", "type": "optical" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { + "uuid": "503", "name": "503", "type": "optical" + }}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "name": "R2", "device_type": "emu-packet-router", + "device_drivers": [0], "device_operational_status": 2, + "device_endpoints": [ + {"name": "200", "endpoint_type": "copper", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "501", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "503", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }} + ], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "501", "name": "501", "type": "optical"}, + {"uuid": "503", "name": "503", "type": "optical"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { + "uuid": "200", "name": "200", "type": "copper" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[501]", "resource_value": { + "uuid": "501", "name": "501", "type": "optical" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { + "uuid": "503", "name": "503", "type": "optical" + }}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "name": "R3", "device_type": "emu-packet-router", + "device_drivers": [0], "device_operational_status": 2, + "device_endpoints": [ + {"name": "200", "endpoint_type": "copper", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "502", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }}, + {"name": "503", "endpoint_type": "optical", "endpoint_id": { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }} + ], + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "502", "name": "502", "type": "optical"}, + {"uuid": "503", "name": "503", "type": "optical"} + ]}}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { + "uuid": "200", "name": "200", "type": "copper" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[502]", "resource_value": { + "uuid": "502", "name": "502", "type": "optical" + }}}, + {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { + "uuid": "503", "name": "503", "type": "optical" + }}} + ]} + } + ], + "links": [ + { + "link_id": {"link_uuid": {"uuid": "R1/502==R2/501"}}, "name": "R1/502==R2/501", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R1/503==R3/501"}}, "name": "R1/503==R3/501", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R2/501==R1/502"}}, "name": "R2/501==R1/502", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R2/503==R3/502"}}, "name": "R2/503==R3/502", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R3/501==R1/503"}}, "name": "R3/501==R1/503", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + }, + { + "link_id": {"link_uuid": {"uuid": "R3/502==R2/503"}}, "name": "R3/502==R2/503", + "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, + "link_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ] + } + ], + "services": [ + { + "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, + "name": "SVC:R1/200==R2/200", "service_type": 1, "service_status": {"service_status": 1}, + "service_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "service_constraints": [ + {"action": 1, "sla_capacity": {"capacity_gbps": 40.0}}, + {"action": 1, "sla_latency": {"e2e_latency_ms": 10.0}}, + {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.99}} + ], + "service_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 + }}} + ]} + }, + { + "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, + "name": "SVC:R1/200==R3/200", "service_type": 1, "service_status": {"service_status": 1}, + "service_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "service_constraints": [ + {"action": 1, "sla_capacity": {"capacity_gbps": 50.0}}, + {"action": 1, "sla_latency": {"e2e_latency_ms": 8.0}}, + {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.9}} + ], + "service_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 + }}} + ]} + }, + { + "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}}, + "name": "SVC:R2/200==R3/200", "service_type": 1, "service_status": {"service_status": 1}, + "service_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "service_constraints": [ + {"action": 1, "sla_capacity": {"capacity_gbps": 10.0}}, + {"action": 1, "sla_latency": {"e2e_latency_ms": 3.0}}, + {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.9999}} + ], + "service_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 + }}} + ]} + } + ], + "slices": [ + { + "slice_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "slice_uuid": {"uuid": "SLC:R1-R2-R3"}}, + "name": "SLC:R1-R2-R3", + "slice_endpoint_ids": [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "slice_constraints": [ + {"action": 1, "sla_capacity": {"capacity_gbps": 40.0}}, + {"action": 1, "sla_latency": {"e2e_latency_ms": 10.0}}, + {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.99}} + ], + "slice_service_ids": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, + {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}} + ], + "slice_subslice_ids": [], + "slice_status": {"slice_status" : 1}, + "slice_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 + }}}, + {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { + "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 + }}} + ]}, + "slice_owner": {"owner_uuid": {"uuid": "TFS"}, "owner_string": "TFS:SLC:R1-R2-R3"} + } + ], + "connections": [ + { + "connection_id": {"connection_uuid": {"uuid": "CON:R1/200==R2/200:1"}}, + "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, + "path_hops_endpoint_ids" : [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "sub_service_ids": [], + "settings": { + "l3": {"src_ip_address": "10.0.1.10", "dst_ip_address": "10.0.2.10", "ttl": 20} + } + }, + { + "connection_id": {"connection_uuid": {"uuid": "CON:R1/200==R3/200:1"}}, + "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, + "path_hops_endpoint_ids" : [ + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "sub_service_ids": [], + "settings": { + "l3": {"src_ip_address": "10.0.1.10", "dst_ip_address": "10.0.3.10", "ttl": 20} + } + }, + { + "connection_id": {"connection_uuid": {"uuid": "CON:R2/200==R3/200:1"}}, + "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}}, + "path_hops_endpoint_ids" : [ + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + }, + { + "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, + "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} + } + ], + "sub_service_ids": [], + "settings": { + "l3": {"src_ip_address": "10.0.2.10", "dst_ip_address": "10.0.3.10", "ttl": 20} + } + } + ] +} diff --git a/src/ztp_server/tests/data/topology-7router-emu-dummy.json b/src/ztp_server/tests/data/topology-7router-emu-dummy.json new file mode 100755 index 000000000..3bb622626 --- /dev/null +++ b/src/ztp_server/tests/data/topology-7router-emu-dummy.json @@ -0,0 +1,157 @@ +{ + "dummy_mode": true, + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, + {"uuid": "1/3", "type": "copper"}, {"uuid": "2/1", "type": "copper"}, + {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"}, + {"uuid": "2/4", "type": "copper"}, {"uuid": "2/5", "type": "copper"}, + {"uuid": "2/6", "type": "copper"} + ]}}} + ]}} + ], + "links": [ + {"link_id": {"link_uuid": {"uuid": "R1==R2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R1==R6"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R1==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R2==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R2==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R4==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R4==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R6"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R6==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R6==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]} + ] +} diff --git a/src/ztp_server/tests/data/topology-7router-emu.json b/src/ztp_server/tests/data/topology-7router-emu.json new file mode 100755 index 000000000..4174f4fb4 --- /dev/null +++ b/src/ztp_server/tests/data/topology-7router-emu.json @@ -0,0 +1,156 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, + {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, + {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} + ]}}} + ]}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "device_type": "emu-packet-router", "device_drivers": [0], + "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, + {"uuid": "1/3", "type": "copper"}, {"uuid": "2/1", "type": "copper"}, + {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"}, + {"uuid": "2/4", "type": "copper"}, {"uuid": "2/5", "type": "copper"}, + {"uuid": "2/6", "type": "copper"} + ]}}} + ]}} + ], + "links": [ + {"link_id": {"link_uuid": {"uuid": "R1==R2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R1==R6"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R1==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R2==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R2==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R3==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R4==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R4==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R4"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R6"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R5==R7"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R6==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R6==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}}, + {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}}, + {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "R7==R5"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}}, + {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}} + ]} + ] +} diff --git a/src/ztp_server/tests/data/topology-dummy.json b/src/ztp_server/tests/data/topology-dummy.json new file mode 100755 index 000000000..f066051ee --- /dev/null +++ b/src/ztp_server/tests/data/topology-dummy.json @@ -0,0 +1,3134 @@ +{ + "contexts": [ + { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "name": "admin", + "service_ids": [], + "slice_ids": [], + "topology_ids": [ + { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + ] + } + ], + "devices": [ + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + }, + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "500", + "type": "optical", + "uuid": "500" + }, + { + "name": "501", + "type": "optical", + "uuid": "501" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[mgmt]", + "resource_value": { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "optical", + "uuid": "500" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[501]", + "resource_value": { + "name": "501", + "type": "optical", + "uuid": "501" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "501" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "b72983bd-57d8-5cf8-8ec7-da9084382d7a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "mgmt", + "kpi_sample_types": [], + "name": "mgmt" + } + ], + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "10.0.30.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "500", + "type": "copper", + "uuid": "500" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "copper", + "uuid": "500" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "500" + } + ], + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "128.32.10.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "201", + "type": "copper", + "uuid": "201" + }, + { + "name": "500", + "type": "copper", + "uuid": "500" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[201]", + "resource_value": { + "name": "201", + "type": "copper", + "uuid": "201" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "copper", + "uuid": "500" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "endpoint_uuid": { + "uuid": "227b6bb2-dacf-5b3d-84e9-c1d0c107bcd8" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "201" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "endpoint_uuid": { + "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "endpoint_uuid": { + "uuid": "d8528b70-9215-59ed-851d-b9590ab0c94b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + } + ], + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "device_operational_status": 2, + "device_type": "emu-datacenter", + "name": "172.10.33.5" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + }, + { + "name": "500", + "type": "optical", + "uuid": "500" + }, + { + "name": "501", + "type": "optical", + "uuid": "501" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[mgmt]", + "resource_value": { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "optical", + "uuid": "500" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[501]", + "resource_value": { + "name": "501", + "type": "optical", + "uuid": "501" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "501" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "ede34dea-6b51-5787-88d2-553fe548f540" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "mgmt", + "kpi_sample_types": [], + "name": "mgmt" + } + ], + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "10.0.40.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "201", + "type": "copper", + "uuid": "201" + }, + { + "name": "500", + "type": "copper", + "uuid": "500" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[201]", + "resource_value": { + "name": "201", + "type": "copper", + "uuid": "201" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "copper", + "uuid": "500" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "201" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "c6435612-3aca-590f-89ba-e606f54df474" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + } + ], + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "device_operational_status": 2, + "device_type": "emu-optical-transponder", + "name": "128.32.33.5" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + }, + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "500", + "type": "optical", + "uuid": "500" + }, + { + "name": "501", + "type": "optical", + "uuid": "501" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[mgmt]", + "resource_value": { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "optical", + "uuid": "500" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[501]", + "resource_value": { + "name": "501", + "type": "optical", + "uuid": "501" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "59e1e30f-ea65-5e04-8a91-760a648a02c6" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "mgmt", + "kpi_sample_types": [], + "name": "mgmt" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "70cbb732-8149-59ee-939b-011828e4292b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "501" + } + ], + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "10.0.10.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + }, + { + "name": "500", + "type": "optical", + "uuid": "500" + }, + { + "name": "501", + "type": "optical", + "uuid": "501" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[mgmt]", + "resource_value": { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "optical", + "uuid": "500" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[501]", + "resource_value": { + "name": "501", + "type": "optical", + "uuid": "501" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "501" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "356378dd-952b-5032-912d-37fc21284b4c" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "optical", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "da826790-a4b0-5317-b30b-e1370918a644" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "mgmt", + "kpi_sample_types": [], + "name": "mgmt" + } + ], + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "10.0.20.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "eth1", + "type": "copper", + "uuid": "eth1" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[eth1]", + "resource_value": { + "name": "eth1", + "type": "copper", + "uuid": "eth1" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" + } + }, + "endpoint_uuid": { + "uuid": "0701f406-633f-53e7-a44d-c93384745df8" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "eth1" + } + ], + "device_id": { + "device_uuid": { + "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" + } + }, + "device_operational_status": 2, + "device_type": "emu-client", + "name": "128.32.20.5" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "200", + "type": "copper", + "uuid": "200" + }, + { + "name": "500", + "type": "copper", + "uuid": "500" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[200]", + "resource_value": { + "name": "200", + "type": "copper", + "uuid": "200" + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[500]", + "resource_value": { + "name": "500", + "type": "copper", + "uuid": "500" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "500" + }, + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "200" + } + ], + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "device_operational_status": 2, + "device_type": "emu-packet-router", + "name": "128.32.20.1" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "eth1", + "type": "copper", + "uuid": "eth1" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[eth1]", + "resource_value": { + "name": "eth1", + "type": "copper", + "uuid": "eth1" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" + } + }, + "endpoint_uuid": { + "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "copper", + "kpi_sample_types": [], + "name": "eth1" + } + ], + "device_id": { + "device_uuid": { + "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" + } + }, + "device_operational_status": 2, + "device_type": "emu-client", + "name": "128.32.10.5" + }, + { + "components": [], + "controller_id": {}, + "device_config": { + "config_rules": [ + { + "action": 1, + "custom": { + "resource_key": "_connect/address", + "resource_value": "127.0.0.1" + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/port", + "resource_value": 0 + } + }, + { + "action": 1, + "custom": { + "resource_key": "_connect/settings", + "resource_value": { + "endpoints": [ + { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + ] + } + } + }, + { + "action": 1, + "custom": { + "resource_key": "/endpoints/endpoint[mgmt]", + "resource_value": { + "name": "mgmt", + "type": "mgmt", + "uuid": "mgmt" + } + } + } + ] + }, + "device_drivers": [ + 0 + ], + "device_endpoints": [ + { + "endpoint_id": { + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "endpoint_uuid": { + "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + "endpoint_location": {}, + "endpoint_type": "mgmt", + "kpi_sample_types": [], + "name": "mgmt" + } + ], + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "device_operational_status": 2, + "device_type": "emu-open-line-system", + "name": "nce-t" + } + ], + "dummy_mode": true, + "links": [ + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "70cbb732-8149-59ee-939b-011828e4292b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "0b3d5943-c2bf-595f-a805-dc29c2be2f52" + } + }, + "name": "10.0.10.1-200" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "1490e70f-472c-5e4c-8280-21c48ed03477" + } + }, + "name": "10.0.40.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "c6435612-3aca-590f-89ba-e606f54df474" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "18ba8eb2-342b-5a73-aeae-7288ea9bb28b" + } + }, + "name": "128.32.10.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" + } + }, + "endpoint_uuid": { + "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "1901b0dc-1b5e-5fdf-b9ac-9168787464c1" + } + }, + "name": "128.32.10.1-200" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "70cbb732-8149-59ee-939b-011828e4292b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "1afdae8b-a281-53aa-99c2-205afb8f4ee7" + } + }, + "name": "128.32.33.5-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "356378dd-952b-5032-912d-37fc21284b4c" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "30ca0f8f-b150-57f2-ae5e-8a6844944783" + } + }, + "name": "10.0.20.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "34c9c6c3-0dcf-54e5-ba67-da33eb2d3c1a" + } + }, + "name": "10.0.20.1-501" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "356378dd-952b-5032-912d-37fc21284b4c" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "35801e61-45f3-564e-ad5c-09baf4aae906" + } + }, + "name": "10.0.30.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "endpoint_uuid": { + "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "36643dba-e8fa-5fb7-952d-dff313db957b" + } + }, + "name": "172.10.33.5-500" + }, + { + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "endpoint_uuid": { + "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "ede34dea-6b51-5787-88d2-553fe548f540" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "36856920-3387-5384-b1b1-dbc9e54da226" + } + }, + "name": "nce-t/mgmt==10.0.40.1/mgmt" + }, + { + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "endpoint_uuid": { + "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "b72983bd-57d8-5cf8-8ec7-da9084382d7a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "46ba12f9-dd17-5f2a-9558-e4611515a6b9" + } + }, + "name": "nce-t/mgmt==10.0.30.1/mgmt" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "4dfe28dd-ac28-53d5-b330-1707e350d772" + } + }, + "name": "10.0.30.1-501" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "644ab377-572c-53a4-8ab5-f5cf45591d88" + } + }, + "name": "128.32.20.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "c6435612-3aca-590f-89ba-e606f54df474" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "661ac531-4309-58cc-b70e-2a79492c2488" + } + }, + "name": "128.32.33.5-200" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + "endpoint_uuid": { + "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "6a236e01-853c-51d0-8915-2d09b45923b0" + } + }, + "name": "128.32.33.5-201" + }, + { + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "endpoint_uuid": { + "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "da826790-a4b0-5317-b30b-e1370918a644" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "6c802ae7-59d1-55e7-9498-146c465bcab5" + } + }, + "name": "nce-t/mgmt==10.0.20.1/mgmt" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" + } + }, + "endpoint_uuid": { + "uuid": "0701f406-633f-53e7-a44d-c93384745df8" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "6fa77ad9-e4d7-5830-bf84-ab206eff613a" + } + }, + "name": "128.32.20.1-200" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + "endpoint_uuid": { + "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "808b54e8-3d5a-5e03-a42e-d6c2a57cf6f3" + } + }, + "name": "10.0.30.1-200" + }, + { + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + }, + "endpoint_uuid": { + "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "59e1e30f-ea65-5e04-8a91-760a648a02c6" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "85a18715-3ce0-57f9-8025-5634fe622a06" + } + }, + "name": "nce-t/mgmt==10.0.10.1/mgmt" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + "endpoint_uuid": { + "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "8e8d1a2b-beae-5624-8826-9235bd73a3a8" + } + }, + "name": "10.0.40.1-501" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + "endpoint_uuid": { + "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "e9c5b57e-de50-509c-9f5a-0107ff233703" + } + }, + "name": "10.0.10.1-500" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" + } + }, + "endpoint_uuid": { + "uuid": "0701f406-633f-53e7-a44d-c93384745df8" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + "endpoint_uuid": { + "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "effca6e0-acf3-5c02-ba9a-d82c17a3f006" + } + }, + "name": "128.32.20.5-eth1" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + "endpoint_uuid": { + "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + "endpoint_uuid": { + "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "f45b4432-4ae2-5719-b4e8-a5e8baa1ccd2" + } + }, + "name": "10.0.10.1-501" + }, + { + "attributes": { + "total_capacity_gbps": 10.0, + "used_capacity_gbps": 0.0 + }, + "link_endpoint_ids": [ + { + "device_id": { + "device_uuid": { + "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" + } + }, + "endpoint_uuid": { + "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + }, + { + "device_id": { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + "endpoint_uuid": { + "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" + }, + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ], + "link_id": { + "link_uuid": { + "uuid": "fd005f34-39f5-550e-b2c0-c6e6f8c16325" + } + }, + "name": "128.32.10.5-eth1" + } + ], + "topologies": [ + { + "device_ids": [ + { + "device_uuid": { + "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" + } + }, + { + "device_uuid": { + "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" + } + }, + { + "device_uuid": { + "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" + } + }, + { + "device_uuid": { + "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" + } + }, + { + "device_uuid": { + "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" + } + }, + { + "device_uuid": { + "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" + } + }, + { + "device_uuid": { + "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" + } + }, + { + "device_uuid": { + "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" + } + }, + { + "device_uuid": { + "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" + } + }, + { + "device_uuid": { + "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" + } + }, + { + "device_uuid": { + "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" + } + } + ], + "link_ids": [ + { + "link_uuid": { + "uuid": "0b3d5943-c2bf-595f-a805-dc29c2be2f52" + } + }, + { + "link_uuid": { + "uuid": "1490e70f-472c-5e4c-8280-21c48ed03477" + } + }, + { + "link_uuid": { + "uuid": "18ba8eb2-342b-5a73-aeae-7288ea9bb28b" + } + }, + { + "link_uuid": { + "uuid": "1901b0dc-1b5e-5fdf-b9ac-9168787464c1" + } + }, + { + "link_uuid": { + "uuid": "1afdae8b-a281-53aa-99c2-205afb8f4ee7" + } + }, + { + "link_uuid": { + "uuid": "30ca0f8f-b150-57f2-ae5e-8a6844944783" + } + }, + { + "link_uuid": { + "uuid": "34c9c6c3-0dcf-54e5-ba67-da33eb2d3c1a" + } + }, + { + "link_uuid": { + "uuid": "35801e61-45f3-564e-ad5c-09baf4aae906" + } + }, + { + "link_uuid": { + "uuid": "36643dba-e8fa-5fb7-952d-dff313db957b" + } + }, + { + "link_uuid": { + "uuid": "36856920-3387-5384-b1b1-dbc9e54da226" + } + }, + { + "link_uuid": { + "uuid": "46ba12f9-dd17-5f2a-9558-e4611515a6b9" + } + }, + { + "link_uuid": { + "uuid": "4dfe28dd-ac28-53d5-b330-1707e350d772" + } + }, + { + "link_uuid": { + "uuid": "644ab377-572c-53a4-8ab5-f5cf45591d88" + } + }, + { + "link_uuid": { + "uuid": "661ac531-4309-58cc-b70e-2a79492c2488" + } + }, + { + "link_uuid": { + "uuid": "6a236e01-853c-51d0-8915-2d09b45923b0" + } + }, + { + "link_uuid": { + "uuid": "6c802ae7-59d1-55e7-9498-146c465bcab5" + } + }, + { + "link_uuid": { + "uuid": "6fa77ad9-e4d7-5830-bf84-ab206eff613a" + } + }, + { + "link_uuid": { + "uuid": "808b54e8-3d5a-5e03-a42e-d6c2a57cf6f3" + } + }, + { + "link_uuid": { + "uuid": "85a18715-3ce0-57f9-8025-5634fe622a06" + } + }, + { + "link_uuid": { + "uuid": "8e8d1a2b-beae-5624-8826-9235bd73a3a8" + } + }, + { + "link_uuid": { + "uuid": "e9c5b57e-de50-509c-9f5a-0107ff233703" + } + }, + { + "link_uuid": { + "uuid": "effca6e0-acf3-5c02-ba9a-d82c17a3f006" + } + }, + { + "link_uuid": { + "uuid": "f45b4432-4ae2-5719-b4e8-a5e8baa1ccd2" + } + }, + { + "link_uuid": { + "uuid": "fd005f34-39f5-550e-b2c0-c6e6f8c16325" + } + } + ], + "name": "admin", + "topology_id": { + "context_id": { + "context_uuid": { + "uuid": "admin" + } + }, + "topology_uuid": { + "uuid": "admin" + } + } + } + ] +} \ No newline at end of file diff --git a/src/ztp_server/tests/data/topology-real.json b/src/ztp_server/tests/data/topology-real.json new file mode 100755 index 000000000..bb158d920 --- /dev/null +++ b/src/ztp_server/tests/data/topology-real.json @@ -0,0 +1,259 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + + "devices": [ + {"device_id": {"device_uuid": {"uuid": "nce-t"}}, "name": "nce-t", "device_type": "emu-open-line-system", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "mgmt", "name": "mgmt", "type": "mgmt"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "name": "10.0.10.1", "device_type": "emu-packet-router", + "controller_id": {"device_uuid": {"uuid": "nce-t"}}, + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, + {"uuid": "200", "name": "200", "type": "copper" }, + {"uuid": "500", "name": "500", "type": "optical"}, + {"uuid": "501", "name": "501", "type": "optical"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "name": "10.0.20.1", "device_type": "emu-packet-router", + "controller_id": {"device_uuid": {"uuid": "nce-t"}}, + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, + {"uuid": "500", "name": "500", "type": "optical"}, + {"uuid": "501", "name": "501", "type": "optical"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "name": "10.0.30.1", "device_type": "emu-packet-router", + "controller_id": {"device_uuid": {"uuid": "nce-t"}}, + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, + {"uuid": "200", "name": "200", "type": "copper" }, + {"uuid": "500", "name": "500", "type": "optical"}, + {"uuid": "501", "name": "501", "type": "optical"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "name": "10.0.40.1", "device_type": "emu-packet-router", + "controller_id": {"device_uuid": {"uuid": "nce-t"}}, + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, + {"uuid": "500", "name": "500", "type": "optical"}, + {"uuid": "501", "name": "501", "type": "optical"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "name": "128.32.10.5", "device_type": "emu-client", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "eth1", "name": "eth1", "type": "copper"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "name": "128.32.10.1", "device_type": "emu-packet-router", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "500", "name": "500", "type": "copper"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "name": "128.32.20.5", "device_type": "emu-client", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "eth1", "name": "eth1", "type": "copper"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "name": "128.32.20.1", "device_type": "emu-packet-router", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "500", "name": "500", "type": "copper"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "name": "128.32.33.5", "device_type": "emu-optical-transponder", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "201", "name": "201", "type": "copper"}, + {"uuid": "500", "name": "500", "type": "copper"} + ]}}} + ]}}, + + {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "name": "172.10.33.5", "device_type": "emu-datacenter", + "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "200", "name": "200", "type": "copper"}, + {"uuid": "201", "name": "201", "type": "copper"}, + {"uuid": "500", "name": "500", "type": "copper"} + ]}}} + ]}} + ], + + "links": [ + {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.10.1/mgmt"}}, "name": "nce-t/mgmt==10.0.10.1/mgmt", "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.20.1/mgmt"}}, "name": "nce-t/mgmt==10.0.20.1/mgmt", "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.30.1/mgmt"}}, "name": "nce-t/mgmt==10.0.30.1/mgmt", "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.40.1/mgmt"}}, "name": "nce-t/mgmt==10.0.40.1/mgmt", "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "10.0.10.1-501"}}, "name": "10.0.10.1-501", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "501"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "501"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.20.1-501"}}, "name": "10.0.20.1-501", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "501"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "501"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "10.0.10.1-500"}}, "name": "10.0.10.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.40.1-500"}}, "name": "10.0.40.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "10.0.20.1-500"}}, "name": "10.0.20.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.30.1-500"}}, "name": "10.0.30.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "10.0.40.1-501"}}, "name": "10.0.40.1-501", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "501"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "501"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.30.1-501"}}, "name": "10.0.30.1-501", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "501"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "501"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "128.32.10.5-eth1"}}, "name": "128.32.10.5-eth1", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "endpoint_uuid": {"uuid": "eth1"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "200" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "128.32.10.1-200"}}, "name": "128.32.10.1-200", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "200" }}, + {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "endpoint_uuid": {"uuid": "eth1"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "128.32.10.1-500"}}, "name": "128.32.10.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "200"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "128.32.33.5-200"}}, "name": "128.32.33.5-200", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "200"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "128.32.20.5-eth1"}}, "name": "128.32.20.5-eth1", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "endpoint_uuid": {"uuid": "eth1"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "200" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "128.32.20.1-200"}}, "name": "128.32.20.1-200", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "200" }}, + {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "endpoint_uuid": {"uuid": "eth1"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "128.32.20.1-500"}}, "name": "128.32.20.1-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "201"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "128.32.33.5-201"}}, "name": "128.32.33.5-201", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "201"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "128.32.33.5-500"}}, "name": "128.32.33.5-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "200"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.10.1-200"}}, "name": "10.0.10.1-200", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "200"}}, + {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "500"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "172.10.33.5-500"}}, "name": "172.10.33.5-500", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "endpoint_uuid": {"uuid": "500"}}, + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "200"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "10.0.30.1-200"}}, "name": "10.0.30.1-200", + "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "200"}}, + {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "endpoint_uuid": {"uuid": "500"}} + ]} + ] +} diff --git a/src/ztp_server/tests/ietf_acl_client.py b/src/ztp_server/tests/ietf_acl_client.py new file mode 100755 index 000000000..20887f1a8 --- /dev/null +++ b/src/ztp_server/tests/ietf_acl_client.py @@ -0,0 +1,89 @@ +# Copyright 2022-2024 ETSI 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 requests, time +from typing import Optional +from requests.auth import HTTPBasicAuth + +BASE_URL = '{:s}://{:s}:{:d}/restconf/data' +ACLS_URL = '{:s}/device={:s}/ietf-access-control-list:acls' +ACL_URL = '{:s}/device={:s}/ietf-access-control-list:acl={:s}' + +CSG1_DEVICE_UUID = '118295c8-318a-52ec-a394-529fc4b70f2f' # router: 128.32.10.1 +ACL_NAME = 'sample-ipv4-acl' +ACL_RULE = {"ietf-access-control-list:acls": { + "acl": [{ + "name": "sample-ipv4-acl", "type": "ipv4-acl-type", + "aces": {"ace": [{ + "name": "rule1", + "matches": { + "ipv4": { + "source-ipv4-network": "128.32.10.6/24", + "destination-ipv4-network": "172.10.33.0/24", + "dscp": 18 + }, + "tcp": { + "source-port": {"operator": "eq", "port": 1444}, + "destination-port": {"operator": "eq", "port": 1333}, + "flags": "syn" + } + }, + "actions": {"forwarding": "drop"} + }]} + }], + "attachment-points": {"interface": [{ + "interface-id": "200", + "ingress": {"acl-sets": {"acl-set": [{"name": "sample-ipv4-acl"}]}} + }] +}}} + +class TfsIetfAclClient: + def __init__( + self, host : str = 'localhost', port : int = 80, schema : str = 'http', + username : Optional[str] = 'admin', password : Optional[str] = 'admin', + timeout : int = 10, allow_redirects : bool = True, verify : bool = False + ) -> None: + self._base_url = BASE_URL.format(schema, host, port) + auth = HTTPBasicAuth(username, password) if username is not None and password is not None else None + self._settings = dict(auth=auth, timeout=timeout, allow_redirects=allow_redirects, verify=verify) + + def post(self, device_uuid : str, ietf_acl_data : dict) -> str: + request_url = ACLS_URL.format(self._base_url, device_uuid) + reply = requests.post(request_url, json=ietf_acl_data, **(self._settings)) + return reply.text + + def get(self, device_uuid : str, acl_name : str) -> str: + request_url = ACL_URL.format(self._base_url, device_uuid, acl_name) + reply = requests.get(request_url, **(self._settings)) + return reply.text + + def delete(self, device_uuid : str, acl_name : str) -> str: + request_url = ACL_URL.format(self._base_url, device_uuid, acl_name) + reply = requests.delete(request_url, **(self._settings)) + return reply.text + +def main(): + client = TfsIetfAclClient() + print(f'ACL rule: {ACL_RULE}') + post_response = client.post(CSG1_DEVICE_UUID, ACL_RULE) + print(f'post response: {post_response}') + time.sleep(.5) + get_response = client.get(CSG1_DEVICE_UUID, ACL_NAME) + print(f'get response: {get_response}') + time.sleep(.5) + delete_response = client.delete(CSG1_DEVICE_UUID, ACL_NAME) + print(f'delete response: {delete_response}') + +if __name__ == '__main__': + main() diff --git a/src/ztp_server/tests/test_etsi_bwm.py b/src/ztp_server/tests/test_etsi_bwm.py new file mode 100755 index 000000000..9400de00f --- /dev/null +++ b/src/ztp_server/tests/test_etsi_bwm.py @@ -0,0 +1,240 @@ +# Copyright 2022-2024 ETSI 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 deepdiff, json, logging, pytest +from typing import Dict +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.proto.context_pb2 import ContextId, TopologyId +from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.tools.object_factory.Context import json_context_id +from common.tools.object_factory.Topology import json_topology_id +from context.client.ContextClient import ContextClient +from nbi.service.rest_server import RestServer +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + do_rest_delete_request, do_rest_get_request, do_rest_patch_request, do_rest_post_request, do_rest_put_request, + mock_service, nbi_service_rest, context_client +) + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) +ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) +BASE_URL = '/restconf/bwm/v1' + +@pytest.fixture(scope='session') +def storage() -> Dict: + yield dict() + +#def compare_dicts(dict1, dict2): +# # Function to recursively sort dictionaries +# def recursively_sort(d): +# if isinstance(d, dict): +# return {k: recursively_sort(v) for k, v in sorted(d.items())} +# if isinstance(d, list): +# return [recursively_sort(item) for item in d] +# return d +# +# # Sort dictionaries to ignore the order of fields +# sorted_dict1 = recursively_sort(dict1) +# sorted_dict2 = recursively_sort(dict2) +# +# if sorted_dict1 != sorted_dict2: +# LOGGER.error(sorted_dict1) +# LOGGER.error(sorted_dict2) +# +# return sorted_dict1 != sorted_dict2 + +def check_timestamps(bwm_service): + assert 'timeStamp' in bwm_service + assert 'seconds' in bwm_service['timeStamp'] + assert 'nanoseconds' in bwm_service['timeStamp'] + +def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 + assert len(response.service_ids ) == 0 + assert len(response.slice_ids ) == 0 + +def test_get_allocations_empty(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + URL = BASE_URL + '/bw_allocations' + retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) + assert len(retrieved_data) == 0 + +def test_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + URL = BASE_URL + '/bw_allocations' + data = { + "appInsId" : "service_uuid_01", + "allocationDirection" : "00", + "fixedAllocation" : "123000.0", + "fixedBWPriority" : "SEE_DESCRIPTION", + "requestType" : 0, + "sessionFilter" : [{ + "sourceIp" : "192.168.1.2", + "sourcePort" : ["a"], + "protocol" : "string", + "dstAddress" : "192.168.3.2", + "dstPort" : ["b"], + }] + } + retrieved_data = do_rest_post_request(URL, body=data, logger=LOGGER, expected_status_codes={200}) + LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) + storage['service_uuid_01'] = 'service_uuid_01' + + +def test_get_allocations(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + assert 'service_uuid_01' in storage + URL = BASE_URL + '/bw_allocations' + retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) + assert len(retrieved_data) == 1 + good_result = [ + { + "appInsId" : "service_uuid_01", + "fixedAllocation" : "123000.0", + "allocationDirection" : "00", + "fixedBWPriority" : "SEE_DESCRIPTION", + "requestType" : "0", + "sessionFilter" : [{ + "sourceIp" : "192.168.1.2", + "sourcePort" : ["a"], + "protocol" : "string", + "dstAddress" : "192.168.3.2", + "dstPort" : ["b"], + }], + } + ] + check_timestamps(retrieved_data[0]) + del retrieved_data[0]['timeStamp'] + diff_data = deepdiff.DeepDiff(good_result, retrieved_data) + LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) + assert len(diff_data) == 0 + + +def test_get_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + assert 'service_uuid_01' in storage + URL = BASE_URL + '/bw_allocations/service_uuid_01' + retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) + good_result = { + "appInsId" : "service_uuid_01", + "fixedAllocation" : "123000.0", + "allocationDirection": "00", + "fixedBWPriority" : "SEE_DESCRIPTION", + "requestType" : "0", + "sessionFilter" : [{ + "sourceIp" : "192.168.1.2", + "sourcePort" : ["a"], + "protocol" : "string", + "dstAddress" : "192.168.3.2", + "dstPort" : ["b"], + }] + } + check_timestamps(retrieved_data) + del retrieved_data['timeStamp'] + diff_data = deepdiff.DeepDiff(good_result, retrieved_data) + LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) + assert len(diff_data) == 0 + + +def test_put_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + assert 'service_uuid_01' in storage + URL = BASE_URL + '/bw_allocations/service_uuid_01' + changed_allocation = { + "appInsId" : "service_uuid_01", + "fixedAllocation" : "200.0", + "allocationDirection": "00", + "fixedBWPriority" : "NOPRIORITY", + "requestType" : "0", + "sessionFilter" : [{ + "sourceIp" : "192.168.1.2", + "sourcePort" : ["a"], + "protocol" : "string", + "dstAddress" : "192.168.3.2", + "dstPort" : ["b"], + }] + } + retrieved_data = do_rest_put_request(URL, body=json.dumps(changed_allocation), logger=LOGGER, expected_status_codes={200}) + check_timestamps(retrieved_data) + del retrieved_data['timeStamp'] + diff_data = deepdiff.DeepDiff(changed_allocation, retrieved_data) + LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) + assert len(diff_data) == 0 + + +def test_patch_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + assert 'service_uuid_01' in storage + URL = BASE_URL + '/bw_allocations/service_uuid_01' + difference = { + "fixedBWPriority":"FULLPRIORITY", + } + changed_allocation = { + "appInsId" : "service_uuid_01", + "fixedAllocation" : "200.0", + "allocationDirection": "00", + "fixedBWPriority" : "FULLPRIORITY", + "requestType" : "0", + "sessionFilter" : [{ + "sourceIp" : "192.168.1.2", + "sourcePort" : ["a"], + "protocol" : "string", + "dstAddress" : "192.168.3.2", + "dstPort" : ["b"], + }] + } + retrieved_data = do_rest_patch_request(URL, body=difference, logger=LOGGER, expected_status_codes={200}) + check_timestamps(retrieved_data) + del retrieved_data['timeStamp'] + diff_data = deepdiff.DeepDiff(changed_allocation, retrieved_data) + LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) + assert len(diff_data) == 0 + + +def test_delete_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + assert 'service_uuid_01' in storage + URL = BASE_URL + '/bw_allocations/service_uuid_01' + do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={200}) + + +def test_get_allocations_empty_final(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument + URL = BASE_URL + '/bw_allocations' + retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) + assert len(retrieved_data) == 0 + + +def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.topology_ids) == 1 + 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() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_l2vpn.py b/src/ztp_server/tests/test_ietf_l2vpn.py new file mode 100755 index 000000000..7bed8ff5d --- /dev/null +++ b/src/ztp_server/tests/test_ietf_l2vpn.py @@ -0,0 +1,75 @@ +# Copyright 2022-2024 ETSI 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 logging +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from tests.tools.mock_osm.MockOSM import MockOSM +from .Constants import SERVICE_CONNECTION_POINTS_1, SERVICE_CONNECTION_POINTS_2, SERVICE_TYPE +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + mock_service, nbi_service_rest, osm_wim, context_client +) + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'nbi/tests/data/topology-7router-emu-dummy.json' + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) + +def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 + assert len(response.service_ids ) == 0 + assert len(response.slice_ids ) == 0 + +def test_create_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name + osm_wim.create_connectivity_service(SERVICE_TYPE, SERVICE_CONNECTION_POINTS_1) + +def test_get_service_status(osm_wim : MockOSM): # pylint: disable=redefined-outer-name + service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service + osm_wim.get_connectivity_service_status(service_uuid) + +def test_edit_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name + service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service + osm_wim.edit_connectivity_service(service_uuid, SERVICE_CONNECTION_POINTS_2) + +def test_delete_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name + service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service + osm_wim.delete_connectivity_service(service_uuid) + +def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.topology_ids) == 1 + 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() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_l3vpn.py b/src/ztp_server/tests/test_ietf_l3vpn.py new file mode 100755 index 000000000..0f214661f --- /dev/null +++ b/src/ztp_server/tests/test_ietf_l3vpn.py @@ -0,0 +1,113 @@ +# Copyright 2022-2024 ETSI 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, pytest +from typing import Dict +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +) +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from nbi.service.rest_server.RestServer import RestServer +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + do_rest_delete_request, do_rest_get_request, do_rest_post_request, + mock_service, nbi_service_rest, osm_wim, context_client +) + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' +SVC1_DATA_FILE = 'nbi/tests/data/ietf_l3vpn_req_svc1.json' +SVC2_DATA_FILE = 'nbi/tests/data/ietf_l3vpn_req_svc2.json' + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) + +@pytest.fixture(scope='session') +def storage() -> Dict: + yield dict() + +def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 + assert len(response.service_ids ) == 0 + assert len(response.slice_ids ) == 0 + +# pylint: disable=redefined-outer-name, unused-argument +def test_create_svc1(nbi_service_rest : RestServer, storage : Dict): + with open(SVC1_DATA_FILE, 'r', encoding='UTF-8') as f: + svc1_data = json.load(f) + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' + do_rest_post_request(URL, body=svc1_data, logger=LOGGER, expected_status_codes={201}) + storage['svc1-uuid'] = svc1_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] + +# pylint: disable=redefined-outer-name, unused-argument +def test_create_svc2(nbi_service_rest : RestServer, storage : Dict): + with open(SVC2_DATA_FILE, 'r', encoding='UTF-8') as f: + svc2_data = json.load(f) + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' + do_rest_post_request(URL, body=svc2_data, logger=LOGGER, expected_status_codes={201}) + storage['svc2-uuid'] = svc2_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] + +# pylint: disable=redefined-outer-name, unused-argument +def test_get_state_svc1(nbi_service_rest : RestServer, storage : Dict): + assert 'svc1-uuid' in storage + service_uuid = storage['svc1-uuid'] + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) + do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + +# pylint: disable=redefined-outer-name, unused-argument +def test_get_state_svc2(nbi_service_rest : RestServer, storage : Dict): + assert 'svc2-uuid' in storage + service_uuid = storage['svc2-uuid'] + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) + do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + +# pylint: disable=redefined-outer-name, unused-argument +def test_delete_svc1(nbi_service_rest : RestServer, storage : Dict): + assert 'svc1-uuid' in storage + service_uuid = storage['svc1-uuid'] + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) + do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={204}) + +# pylint: disable=redefined-outer-name, unused-argument +def test_delete_svc2(nbi_service_rest : RestServer, storage : Dict): + assert 'svc2-uuid' in storage + service_uuid = storage['svc2-uuid'] + URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) + do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={204}) + +def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.topology_ids) == 1 + 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() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_network.py b/src/ztp_server/tests/test_ietf_network.py new file mode 100755 index 000000000..68337d0a8 --- /dev/null +++ b/src/ztp_server/tests/test_ietf_network.py @@ -0,0 +1,105 @@ +# Copyright 2022-2024 ETSI 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 deepdiff, json, logging, operator, os +from typing import Dict +from common.Constants import DEFAULT_CONTEXT_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +) +from common.tools.object_factory.Context import json_context_id +from context.client.ContextClient import ContextClient +from nbi.service.rest_server import RestServer + +# Explicitly state NBI to use PyangBind Renderer for this test +os.environ['IETF_NETWORK_RENDERER'] = 'PYANGBIND' + +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + do_rest_get_request, mock_service, nbi_service_rest, osm_wim, context_client +) + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' +TARGET_DATA_FILE = 'nbi/tests/data/test-ietf-network.json' + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) + +def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 + assert len(response.service_ids ) == 0 + assert len(response.slice_ids ) == 0 + +def sort_data(data : Dict) -> None: + if 'ietf-network:networks' not in data: return + if 'network' not in data['ietf-network:networks']: return + data['ietf-network:networks']['network'] = sorted( + data['ietf-network:networks']['network'], + key=operator.itemgetter('network-id') + ) + for network in data['ietf-network:networks']['network']: + if 'node' in network: + network['node'] = sorted( + network['node'], + key=operator.itemgetter('node-id') + ) + + for node in network['node']: + if 'ietf-network-topology:termination-point' in node: + node['ietf-network-topology:termination-point'] = sorted( + node['ietf-network-topology:termination-point'], + key=operator.itemgetter('tp-id') + ) + + if 'ietf-network-topology:link' in network: + network['ietf-network-topology:link'] = sorted( + network['ietf-network-topology:link'], + key=operator.itemgetter('link-id') + ) + +def test_rest_get_networks(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + with open(TARGET_DATA_FILE, 'r', encoding='UTF-8') as f: + target_data = json.load(f) + URL = '/restconf/data/ietf-network:networks' + retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) + sort_data(retrieved_data) + sort_data(target_data) + diff_data = deepdiff.DeepDiff(target_data, retrieved_data) + LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) + assert len(diff_data) == 0 + +def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.topology_ids) == 1 + 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() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_slice.py b/src/ztp_server/tests/test_slice.py new file mode 100755 index 000000000..fe112e6fc --- /dev/null +++ b/src/ztp_server/tests/test_slice.py @@ -0,0 +1,125 @@ +# Copyright 2022-2024 ETSI 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, random, uuid +from typing import Dict, Tuple +from nbi.service.rest_server.nbi_plugins.ietf_network_slice.bindings.network_slice_services import ( + NetworkSliceServices +) + +# R1 emulated devices +# Port 13-0 is Optical +# Port 13-1 is Copper +R1_UUID = "ed2388eb-5fb9-5888-a4f4-160267d3e19b" +R1_PORT_13_0_UUID_OPTICAL = "20440915-1a6c-5e7b-a80f-b0e0e51f066d" +R1_PORT_13_1_UUID_COPPER = "ff900d5d-2ac0-576c-9628-a2d016681f9d" + +# R2 emulated devices +# Port 13-0 is Optical +# Port 13-1 is Copper +R2_UUID = "49ce0312-1274-523b-97b8-24d0eca2d72d" +R2_PORT_13_0_UUID_OPTICAL = "214618cb-b63b-5e66-84c2-45c1c016e5f0" +R2_PORT_13_1_UUID_COPPER = "4e0f7fb4-5d22-56ad-a00e-20bffb4860f9" + +# R3 emulated devices +# Port 13-0 is Optical +# Port 13-1 is Copper +R3_UUID = "3bc8e994-a3b9-5f60-9c77-6608b1d08313" +R3_PORT_13_0_UUID_OPTICAL = "da5196f5-d651-5def-ada6-50ed6430279d" +R3_PORT_13_1_UUID_COPPER = "43d221fa-5701-5740-a129-502131f5bda2" + +# R4 emulated devices +# Port 13-0 is Optical +# Port 13-1 is Copper +R4_UUID = "b43e6361-2573-509d-9a88-1793e751b10d" +R4_PORT_13_0_UUID_OPTICAL = "241b74a7-8677-595c-ad65-cc9093c1e341" +R4_PORT_13_1_UUID_COPPER = "c57abf46-caaf-5954-90cc-1fec0a69330e" + +node_dict = {R1_PORT_13_1_UUID_COPPER: R1_UUID, + R2_PORT_13_1_UUID_COPPER: R2_UUID, + R3_PORT_13_1_UUID_COPPER: R3_UUID, + R4_PORT_13_1_UUID_COPPER: R4_UUID} +list_endpoints = [R1_PORT_13_1_UUID_COPPER, + R2_PORT_13_1_UUID_COPPER, + R3_PORT_13_1_UUID_COPPER, + R4_PORT_13_1_UUID_COPPER] + +list_availability= [99, 99.9, 99.99, 99.999, 99.9999] +list_bw = [10, 40, 50, 100, 150, 200, 400] +list_owner = ["Telefonica", "CTTC", "Telenor", "ADVA", "Ubitech", "ATOS"] + +URL_POST = "/restconf/data/ietf-network-slice-service:ietf-nss/network-slice-services" +URL_DELETE = "/restconf/data/ietf-network-slice-service:ietf-nss/network-slice-services/slice-service=" + +def generate_request(seed: str) -> Tuple[Dict, str]: + + ns = NetworkSliceServices() + + # Slice 1 + suuid = str(uuid.uuid5(uuid.NAMESPACE_DNS, str(seed))) + slice1 = ns.slice_service[suuid] + slice1.service_description = "Test slice for OFC 2023 demo" + slice1.status().admin_status().status = "Planned" # TODO not yet mapped + + # SDPS: R1 optical to R3 optical + sdps1 = slice1.sdps().sdp + while True: + ep1_uuid = random.choice(list_endpoints) + ep2_uuid = random.choice(list_endpoints) + if ep1_uuid != ep2_uuid: + break + + sdps1[ep1_uuid].node_id = node_dict.get(ep1_uuid) + sdps1[ep2_uuid].node_id = node_dict.get(ep2_uuid) + + # Connectivity group: Connection construct and 2 sla constrains: + # - Bandwidth + # - Availability + cg_uuid = str(uuid.uuid4()) + cg = slice1.connection_groups().connection_group + cg1 = cg[cg_uuid] + + cc1 = cg1.connectivity_construct[0] + cc1.cc_id = 5 + p2p = cc1.connectivity_construct_type.p2p() + p2p.p2p_sender_sdp = ep1_uuid + p2p.p2p_receiver_sdp = ep2_uuid + + slo_custom = cc1.slo_sle_policy.custom() + metric_bounds = slo_custom.service_slo_sle_policy().metric_bounds().metric_bound + + # SLO Bandwidth + slo_bandwidth = metric_bounds["service-slo-two-way-bandwidth"] + slo_bandwidth.value_description = "Guaranteed bandwidth" + slo_bandwidth.bound = int(random.choice(list_bw)) + slo_bandwidth.metric_unit = "Gbps" + + # SLO Availability + slo_availability = metric_bounds["service-slo-availability"] + slo_availability.value_description = "Guaranteed availability" + slo_availability.metric_unit = "percentage" + slo_availability.bound = random.choice(list_availability) + + json_request = {"data": ns.to_json()} + + #Last, add name and owner manually + list_name_owner = [{"tag-type": "owner", "value": random.choice(list_owner)}] + json_request["data"]["ietf-network-slice-service:network-slice-services"]["slice-service"][0]["service-tags"] = list_name_owner + + return (json_request, suuid) + + +if __name__ == "__main__": + request = generate_request(123) + print(json.dumps(request[0], sort_keys=True, indent=4)) diff --git a/src/ztp_server/tests/test_tfs_api.py b/src/ztp_server/tests/test_tfs_api.py new file mode 100755 index 000000000..eab2f8d9b --- /dev/null +++ b/src/ztp_server/tests/test_tfs_api.py @@ -0,0 +1,217 @@ +# Copyright 2022-2024 ETSI 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 logging, urllib +from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME +from common.proto.context_pb2 import ContextId +from common.tools.descriptor.Loader import ( + DescriptorLoader, check_descriptor_load_results, validate_empty_scenario +) +from common.tools.object_factory.Context import json_context_id +from common.type_checkers.Assertions import ( + validate_connection, validate_connection_ids, validate_connections, + validate_context, validate_context_ids, validate_contexts, + validate_device, validate_device_ids, validate_devices, + validate_link, validate_link_ids, validate_links, + validate_service, validate_service_ids, validate_services, + validate_slice, validate_slice_ids, validate_slices, + validate_topologies, validate_topology, validate_topology_ids +) +from context.client.ContextClient import ContextClient +from nbi.service.rest_server.RestServer import RestServer +from .PrepareTestScenario import ( # pylint: disable=unused-import + # be careful, order of symbols is important here! + mock_service, nbi_service_rest, context_client, + do_rest_get_request +) + +LOGGER = logging.getLogger(__name__) +LOGGER.setLevel(logging.DEBUG) + +DESCRIPTOR_FILE = 'nbi/tests/data/tfs_api_dummy.json' + +JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) +ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) + + +# ----- Prepare Environment -------------------------------------------------------------------------------------------- + +def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + validate_empty_scenario(context_client) + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 + assert len(response.service_ids ) == 3 + assert len(response.slice_ids ) == 1 + + +# ----- Context -------------------------------------------------------------------------------------------------------- + +def test_rest_get_context_ids(nbi_service_rest: RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/context_ids') + validate_context_ids(reply) + +def test_rest_get_contexts(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/contexts') + validate_contexts(reply) + +def test_rest_get_context(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}'.format(context_uuid)) + validate_context(reply) + + +# ----- Topology ------------------------------------------------------------------------------------------------------- + +def test_rest_get_topology_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/topology_ids'.format(context_uuid)) + validate_topology_ids(reply) + +def test_rest_get_topologies(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/topologies'.format(context_uuid)) + validate_topologies(reply) + +def test_rest_get_topology(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + topology_uuid = urllib.parse.quote(DEFAULT_TOPOLOGY_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/topology/{:s}'.format(context_uuid, topology_uuid)) + validate_topology(reply, num_devices=3, num_links=6) + + +# ----- Device --------------------------------------------------------------------------------------------------------- + +def test_rest_get_device_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/device_ids') + validate_device_ids(reply) + +def test_rest_get_devices(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/devices') + validate_devices(reply) + +def test_rest_get_device(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + device_uuid = urllib.parse.quote('R1', safe='') + reply = do_rest_get_request('/tfs-api/device/{:s}'.format(device_uuid)) + validate_device(reply) + + +# ----- Link ----------------------------------------------------------------------------------------------------------- + +def test_rest_get_link_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/link_ids') + validate_link_ids(reply) + +def test_rest_get_links(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + reply = do_rest_get_request('/tfs-api/links') + validate_links(reply) + +def test_rest_get_link(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + link_uuid = urllib.parse.quote('R1/502==R2/501', safe='') + reply = do_rest_get_request('/tfs-api/link/{:s}'.format(link_uuid)) + validate_link(reply) + + +# ----- Service -------------------------------------------------------------------------------------------------------- + +def test_rest_get_service_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/service_ids'.format(context_uuid)) + validate_service_ids(reply) + +def test_rest_get_services(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/services'.format(context_uuid)) + validate_services(reply) + +def test_rest_get_service(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') + reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}'.format(context_uuid, service_uuid)) + validate_service(reply) + + +# ----- Slice ---------------------------------------------------------------------------------------------------------- + +def test_rest_get_slice_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/slice_ids'.format(context_uuid)) + validate_slice_ids(reply) + +def test_rest_get_slices(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + reply = do_rest_get_request('/tfs-api/context/{:s}/slices'.format(context_uuid)) + validate_slices(reply) + +def test_rest_get_slice(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + slice_uuid = urllib.parse.quote('SLC:R1-R2-R3', safe='') + reply = do_rest_get_request('/tfs-api/context/{:s}/slice/{:s}'.format(context_uuid, slice_uuid)) + validate_slice(reply) + + +# ----- Connection ----------------------------------------------------------------------------------------------------- + +def test_rest_get_connection_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') + reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}/connection_ids'.format(context_uuid, service_uuid)) + validate_connection_ids(reply) + +def test_rest_get_connections(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) + service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') + reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}/connections'.format(context_uuid, service_uuid)) + validate_connections(reply) + +def test_rest_get_connection(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument + connection_uuid = urllib.parse.quote('CON:R1/200==R2/200:1', safe='') + reply = do_rest_get_request('/tfs-api/connection/{:s}'.format(connection_uuid)) + validate_connection(reply) + +# ----- Policy --------------------------------------------------------------------------------------------------------- + +#def test_rest_get_policyrule_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +# reply = do_rest_get_request('/tfs-api/policyrule_ids') +# validate_policyrule_ids(reply) + +#def test_rest_get_policyrules(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +# reply = do_rest_get_request('/tfs-api/policyrules') +# validate_policyrules(reply) + +#def test_rest_get_policyrule(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument +# policyrule_uuid_quoted = urllib.parse.quote(policyrule_uuid, safe='') +# reply = do_rest_get_request('/tfs-api/policyrule/{:s}'.format(policyrule_uuid_quoted)) +# validate_policyrule(reply) + + +# ----- Cleanup Environment -------------------------------------------------------------------------------------------- + +def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name + # Verify the scenario has no services/slices + response = context_client.GetContext(ADMIN_CONTEXT_ID) + assert len(response.topology_ids) == 1 + assert len(response.service_ids ) == 3 + assert len(response.slice_ids ) == 1 + + # Load descriptors and validate the base scenario + descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) + descriptor_loader.validate() + descriptor_loader.unload() + validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_yang_acl.py b/src/ztp_server/tests/test_yang_acl.py new file mode 100755 index 000000000..2f45c50bc --- /dev/null +++ b/src/ztp_server/tests/test_yang_acl.py @@ -0,0 +1,104 @@ +# Copyright 2022-2024 ETSI 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 copy, json, libyang, logging, os +from typing import Dict, List, Optional + +LOGGER = logging.getLogger(__name__) + +YANG_DIR = os.path.join(os.path.dirname(__file__), 'yang') +YANG_MODULES = [ + 'ietf-yang-types', + 'ietf-interfaces', + 'iana-if-type', + 'ietf-access-control-list', +] + +class YangValidator: + def __init__(self) -> None: + self._yang_context = libyang.Context(YANG_DIR) + for module_name in YANG_MODULES: + LOGGER.info('Loading module: {:s}'.format(str(module_name))) + yang_module = self._yang_context.load_module(module_name) + yang_module.feature_enable_all() + yang_module_prefix = yang_module.prefix() + LOGGER.info(' Prefix: {:s}'.format(str(yang_module_prefix))) + + def parse_to_dict(self, message : Dict, interface_names : List[str]) -> Dict: + interfaces = self._yang_context.create_data_path('/ietf-interfaces:interfaces') + for if_index,interface_name in enumerate(interface_names): + if_path = 'interface[name="{:s}"]'.format(str(interface_name)) + interface = interfaces.create_path(if_path) + interface.create_path('if-index', if_index + 1) + interface.create_path('type', 'iana-if-type:ethernetCsmacd') + interface.create_path('admin-status', 'up') + interface.create_path('oper-status', 'up') + statistics = interface.create_path('statistics') + statistics.create_path('discontinuity-time', '2024-07-11T10:00:00.000000Z') + + message = copy.deepcopy(message) + message['ietf-interfaces:interfaces'] = interfaces.print_dict()['interfaces'] + + dnode : Optional[libyang.DNode] = self._yang_context.parse_data_mem( + json.dumps(message), 'json', validate_present=True, strict=True + ) + if dnode is None: raise Exception('Unable to parse Message({:s})'.format(str(message))) + message = dnode.print_dict() + dnode.free() + interfaces.free() + return message + + def destroy(self) -> None: + self._yang_context.destroy() + self._yang_context = None + +def main() -> None: + import uuid # pylint: disable=import-outside-toplevel + logging.basicConfig(level=logging.DEBUG) + + interface_names = {'200', '500', str(uuid.uuid4()), str(uuid.uuid4())} + ACL_RULE = {"ietf-access-control-list:acls": { + "acl": [{ + "name": "sample-ipv4-acl", "type": "ipv4-acl-type", + "aces": {"ace": [{ + "name": "rule1", + "matches": { + "ipv4": { + "source-ipv4-network": "128.32.10.6/24", + "destination-ipv4-network": "172.10.33.0/24", + "dscp": 18 + }, + "tcp": { + "source-port": {"operator": "eq", "port": 1444}, + "destination-port": {"operator": "eq", "port": 1333}, + "flags": "syn" + } + }, + "actions": {"forwarding": "drop"} + }]} + }], + "attachment-points": {"interface": [{ + "interface-id": "200", + "ingress": {"acl-sets": {"acl-set": [{"name": "sample-ipv4-acl"}]}} + }] + }}} + + yang_validator = YangValidator() + request_data = yang_validator.parse_to_dict(ACL_RULE, list(interface_names)) + yang_validator.destroy() + + LOGGER.info('request_data = {:s}'.format(str(request_data))) + +if __name__ == '__main__': + main() -- GitLab From ea3a17d4ea360a513979c90eb41859cc0a442244 Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Thu, 19 Dec 2024 11:57:22 +0100 Subject: [PATCH 155/213] Second Draft --- proto/ztp_server.proto | 24 +++++++++++++-- src/ztp_server/client/ZtpClient.py | 4 +-- src/ztp_server/service/ZtpServerService.py | 2 +- .../service/ZtpServerServiceServicerImpl.py | 29 ++++++++++++++----- src/ztp_server/service/__main__.py | 1 + 5 files changed, 46 insertions(+), 14 deletions(-) diff --git a/proto/ztp_server.proto b/proto/ztp_server.proto index 37ccc71d3..6c575df11 100755 --- a/proto/ztp_server.proto +++ b/proto/ztp_server.proto @@ -15,9 +15,27 @@ syntax = "proto3"; package ztpServer; -import "context.proto"; +//import "context.proto"; service ZtpServerService { - rpc GetProvisioningScript (context.ProvisioningScriptName ) returns (context.ProvisioningScript ) {} - rpc GetZtpProvisioning (context.ZtpFileName ) returns (context.ZtpFile ) {} + rpc GetProvisioningScript (ProvisioningScriptName ) returns (ProvisioningScript ) {} + rpc GetZtpProvisioning (ZtpFileName ) returns (ZtpFile ) {} +} + + +// Define the request message for both methods +message ProvisioningScriptName { + string input = 1; +} + +message ZtpFileName { + string input = 1; +} + +message ProvisioningScript { + string script = 1; +} + +message ZtpFile { + string json = 1; } diff --git a/src/ztp_server/client/ZtpClient.py b/src/ztp_server/client/ZtpClient.py index a790b76e2..5e5737857 100755 --- a/src/ztp_server/client/ZtpClient.py +++ b/src/ztp_server/client/ZtpClient.py @@ -15,7 +15,7 @@ import grpc, logging from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_service_port_grpc -from common.proto.ztpServer_pb2_grpc import ztpServerServiceStub #TODO +from common.proto.ztp_server_pb2_grpc import ztpServerServiceStub from common.proto.context_pb2 import ( ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) from common.tools.client.RetryDecorator import retry, delay_exponential @@ -39,7 +39,7 @@ class ZtpClient: def connect(self): self.channel = grpc.insecure_channel(self.endpoint) - self.stub = ztpServerServiceStub(self.channel) #TODO + self.stub = ztpServerServiceStub(self.channel) def close(self): if self.channel is not None: self.channel.close() diff --git a/src/ztp_server/service/ZtpServerService.py b/src/ztp_server/service/ZtpServerService.py index 2b4da4f93..aba4aee94 100755 --- a/src/ztp_server/service/ZtpServerService.py +++ b/src/ztp_server/service/ZtpServerService.py @@ -14,7 +14,7 @@ from common.Constants import ServiceNameEnum from common.Settings import get_service_port_grpc -from common.proto.ztpServer_pb2_grpc import add_Ztp_ServerServiceServicer_to_server +from common.proto.ztp_server_pb2_grpc import add_Ztp_ServerServiceServicer_to_server from common.tools.service.GenericGrpcService import GenericGrpcService from ztp_server.service.ZtpServerServiceServicerImpl import ZtpServerServiceServicerImpl diff --git a/src/ztp_server/service/ZtpServerServiceServicerImpl.py b/src/ztp_server/service/ZtpServerServiceServicerImpl.py index 009cda922..015f958f4 100755 --- a/src/ztp_server/service/ZtpServerServiceServicerImpl.py +++ b/src/ztp_server/service/ZtpServerServiceServicerImpl.py @@ -12,11 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -import grpc, logging +import grpc, logging, json from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method from common.proto.context_pb2 import ( ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) -from common.proto.ztpServer_pb2_grpc import ztpServerServiceServicer +from common.proto.ztp_server_pb2_grpc import ztpServerServiceServicer LOGGER = logging.getLogger(__name__) @@ -29,12 +29,25 @@ class ZtpServerServiceServicerImpl(ztpServerServiceServicer): @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetZtpProvisioning(self, request : ProvisioningScriptName, context : grpc.ServicerContext) -> ProvisioningScript: - LOGGER.warning('NOT IMPLEMENTED') - return ProvisioningScript() + try: + filePath = '../data/' + ProvisioningScriptName + with open(filePath, 'r') as provisioning_file: + provisioning_content = provisioning_file.read() + return ztpServerServiceServicer.ProvisioningScript(script=provisioning_content) + except FileNotFoundError: + context.set_code(grpc.StatusCode.NOT_FOUND) + context.set_details('File not found') + return ztpServerServiceServicer.ProvisioningScript() + @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetZtpProvisioning(self, request : ZtpFileName, context : grpc.ServicerContext) -> ZtpFile: - LOGGER.warning('NOT IMPLEMENTED') - return ZtpFile() - - + try: + filePath = '../data/' + ZtpFileName + with open(filePath, 'r') as json_file: + json_content = json_file.read() + return ztpServerServiceServicer.ZtpFile(json=json_content) + except FileNotFoundError: + context.set_code(grpc.StatusCode.NOT_FOUND) + context.set_details('File not found') + return ztpServerServiceServicer.ZtpFile(json=json_content) \ No newline at end of file diff --git a/src/ztp_server/service/__main__.py b/src/ztp_server/service/__main__.py index 25e8605d3..55bd5f187 100755 --- a/src/ztp_server/service/__main__.py +++ b/src/ztp_server/service/__main__.py @@ -21,6 +21,7 @@ from common.Settings import ( ) from .ZtpServerService import ZtpServerService from .rest_server.RestServer import RestServer +from .rest_server.ztpServer_plugins.tfs_api import register_tfs_api from .context_subscription import register_context_subscription -- GitLab From 8c50376811f2af1ac76697b7c87e648be1f881eb Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Mon, 27 Jan 2025 14:57:40 +0000 Subject: [PATCH 156/213] Add HTTP Server and gRPC Server Add manifest.yaml Add DockerFile Solve some typo on .proto file --- manifests/ztp_server.yaml | 78 + proto/ztp_server.proto | 4 +- src/common/Constants.py | 5 +- src/ztp_server/Dockerfile | 43 +- src/ztp_server/README.md | 35 - src/ztp_server/client/ZtpClient.py | 7 +- src/ztp_server/data/nso_client.proto | 60 - src/ztp_server/requirements.in | 3 - src/ztp_server/service/ZtpServerService.py | 4 +- .../service/ZtpServerServiceServicerImpl.py | 26 +- .../service/context_subscription/__init__.py | 64 - .../ztpServer_plugins/tfs_api/Resources.py | 22 +- .../ztpServer_plugins/tfs_api/Tools.py | 30 +- .../ztpServer_plugins/tools/Validator.py | 35 - src/ztp_server/tests/Constants.py | 85 - .../tests/MockService_Dependencies.py | 58 - src/ztp_server/tests/PrepareTestScenario.py | 169 - src/ztp_server/tests/__init__.py | 14 - src/ztp_server/tests/data/ietf_acl.json | 56 - .../tests/data/ietf_l3vpn_req_svc1.json | 231 -- .../tests/data/ietf_l3vpn_req_svc2.json | 231 -- .../tests/data/test-ietf-network.json | 1962 ----------- src/ztp_server/tests/data/tfs_api_dummy.json | 442 --- .../data/topology-7router-emu-dummy.json | 157 - .../tests/data/topology-7router-emu.json | 156 - src/ztp_server/tests/data/topology-dummy.json | 3134 ----------------- src/ztp_server/tests/data/topology-real.json | 259 -- src/ztp_server/tests/ietf_acl_client.py | 89 - src/ztp_server/tests/test_etsi_bwm.py | 240 -- src/ztp_server/tests/test_ietf_l2vpn.py | 75 - src/ztp_server/tests/test_ietf_l3vpn.py | 113 - src/ztp_server/tests/test_ietf_network.py | 105 - src/ztp_server/tests/test_slice.py | 125 - src/ztp_server/tests/test_tfs_api.py | 217 -- src/ztp_server/tests/test_yang_acl.py | 104 - 35 files changed, 123 insertions(+), 8315 deletions(-) create mode 100644 manifests/ztp_server.yaml delete mode 100755 src/ztp_server/README.md delete mode 100644 src/ztp_server/data/nso_client.proto delete mode 100755 src/ztp_server/service/context_subscription/__init__.py delete mode 100755 src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py delete mode 100755 src/ztp_server/tests/Constants.py delete mode 100755 src/ztp_server/tests/MockService_Dependencies.py delete mode 100755 src/ztp_server/tests/PrepareTestScenario.py delete mode 100755 src/ztp_server/tests/__init__.py delete mode 100755 src/ztp_server/tests/data/ietf_acl.json delete mode 100755 src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json delete mode 100755 src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json delete mode 100755 src/ztp_server/tests/data/test-ietf-network.json delete mode 100755 src/ztp_server/tests/data/tfs_api_dummy.json delete mode 100755 src/ztp_server/tests/data/topology-7router-emu-dummy.json delete mode 100755 src/ztp_server/tests/data/topology-7router-emu.json delete mode 100755 src/ztp_server/tests/data/topology-dummy.json delete mode 100755 src/ztp_server/tests/data/topology-real.json delete mode 100755 src/ztp_server/tests/ietf_acl_client.py delete mode 100755 src/ztp_server/tests/test_etsi_bwm.py delete mode 100755 src/ztp_server/tests/test_ietf_l2vpn.py delete mode 100755 src/ztp_server/tests/test_ietf_l3vpn.py delete mode 100755 src/ztp_server/tests/test_ietf_network.py delete mode 100755 src/ztp_server/tests/test_slice.py delete mode 100755 src/ztp_server/tests/test_tfs_api.py delete mode 100755 src/ztp_server/tests/test_yang_acl.py diff --git a/manifests/ztp_server.yaml b/manifests/ztp_server.yaml new file mode 100644 index 000000000..6ed469174 --- /dev/null +++ b/manifests/ztp_server.yaml @@ -0,0 +1,78 @@ +# Copyright 2022-2024 ETSI 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. + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: ztp_serverservice +spec: + selector: + matchLabels: + app: ztp_serverservice + #replicas: 1 + template: + metadata: + labels: + app: ztp_serverservice + spec: + terminationGracePeriodSeconds: 5 + containers: + - name: server + image: labs.etsi.org:5050/tfs/controller/ztp_server:latest + imagePullPolicy: Always + ports: + - containerPort: 8005 + - containerPort: 5051 + - containerPort: 9192 + env: + - name: LOG_LEVEL + value: "INFO" + readinessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:5051"] + livenessProbe: + exec: + command: ["/bin/grpc_health_probe", "-addr=:5051"] + resources: + requests: + cpu: 250m + memory: 128Mi + limits: + cpu: 1000m + memory: 1024Mi +--- +apiVersion: v1 +kind: Service +metadata: + name: ztp_serverservice + labels: + app: ztp_serverservice +spec: + type: ClusterIP + selector: + app: ztp_serverservice + ports: + - name: http + protocol: TCP + port: 8005 + targetPort: 8005 + - name: grpc + protocol: TCP + port: 5051 + targetPort: 5051 + - name: metrics + protocol: TCP + port: 9192 + targetPort: +--- diff --git a/proto/ztp_server.proto b/proto/ztp_server.proto index 6c575df11..807751084 100755 --- a/proto/ztp_server.proto +++ b/proto/ztp_server.proto @@ -25,11 +25,11 @@ service ZtpServerService { // Define the request message for both methods message ProvisioningScriptName { - string input = 1; + string scriptname = 1; } message ZtpFileName { - string input = 1; + string filename = 1; } message ProvisioningScript { diff --git a/src/common/Constants.py b/src/common/Constants.py index 660e99f04..50b792c65 100644 --- a/src/common/Constants.py +++ b/src/common/Constants.py @@ -122,8 +122,9 @@ DEFAULT_SERVICE_GRPC_PORTS = { # Default HTTP/REST-API service ports DEFAULT_SERVICE_HTTP_PORTS = { - ServiceNameEnum.NBI .value : 8080, - ServiceNameEnum.WEBUI.value : 8004, + ServiceNameEnum.NBI .value : 8080, + ServiceNameEnum.WEBUI.value : 8004, + ServiceNameEnum.ZTP_SERVER.value : 8005, } # Default HTTP/REST-API service base URLs diff --git a/src/ztp_server/Dockerfile b/src/ztp_server/Dockerfile index a9be06d37..bbcc282bd 100755 --- a/src/ztp_server/Dockerfile +++ b/src/ztp_server/Dockerfile @@ -19,21 +19,6 @@ RUN apt-get --yes --quiet --quiet update && \ apt-get --yes --quiet --quiet install wget g++ git build-essential cmake libpcre2-dev python3-dev python3-cffi && \ rm -rf /var/lib/apt/lists/* -# Download, build and install libyang. Note that APT package is outdated -# - Ref: https://github.com/CESNET/libyang -# - Ref: https://github.com/CESNET/libyang-python/ -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" .. -RUN make -RUN make install -RUN ldconfig - # Set Python to show logs as they occur ENV PYTHONUNBUFFERED=0 @@ -69,29 +54,19 @@ RUN rm *.proto RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \; # Create component sub-folders, get specific Python packages -RUN mkdir -p /var/teraflow/nbi -WORKDIR /var/teraflow/nbi -COPY src/nbi/requirements.in requirements.in +RUN mkdir -p /var/teraflow/ztp_server +WORKDIR /var/teraflow/ztp_server +COPY src/ztp_server/requirements.in requirements.in RUN pip-compile --quiet --output-file=requirements.txt requirements.in RUN python3 -m pip install -r requirements.txt # Add component files into working directory WORKDIR /var/teraflow -COPY src/nbi/. nbi/ -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/service/__init__.py service/__init__.py -COPY src/service/client/. service/client/ -COPY src/slice/__init__.py slice/__init__.py -COPY src/slice/client/. slice/client/ -COPY src/qkd_app/__init__.py qkd_app/__init__.py -COPY src/qkd_app/client/. qkd_app/client/ -COPY src/vnt_manager/__init__.py vnt_manager/__init__.py -COPY src/vnt_manager/client/. vnt_manager/client/ -RUN mkdir -p /var/teraflow/tests/tools -COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ +COPY src/ztp_server/. ztp_server/ + +#ToDo Implement Test +#RUN mkdir -p /var/teraflow/tests/tools +#COPY src/tests/tools/mock_osm/. tests/tools/mock_osm/ # Start the service -ENTRYPOINT ["python", "-m", "nbi.service"] +ENTRYPOINT ["python", "-m", "ztp_server.service"] diff --git a/src/ztp_server/README.md b/src/ztp_server/README.md deleted file mode 100755 index 32902a0b3..000000000 --- a/src/ztp_server/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# NBI Component - -The NBI component uses libyang to validate and process messages. Follow instructions below to install it. - -## Install libyang -- Ref: https://github.com/CESNET/libyang -- Ref: https://github.com/CESNET/libyang-python/ - -__NOTE__: APT package is extremely outdated and does not work for our purposes. - -### Build Requisites -```bash -sudo apt-get install build-essential cmake libpcre2-dev -sudo apt-get install python3-dev gcc python3-cffi -``` - -### Build from source -```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" .. -make -sudo make install -sudo ldconfig -``` - -### Install Python bindings -```bash -pip install libyang==2.8.0 -``` diff --git a/src/ztp_server/client/ZtpClient.py b/src/ztp_server/client/ZtpClient.py index 5e5737857..9e14bd694 100755 --- a/src/ztp_server/client/ZtpClient.py +++ b/src/ztp_server/client/ZtpClient.py @@ -15,9 +15,8 @@ import grpc, logging from common.Constants import ServiceNameEnum from common.Settings import get_service_host, get_service_port_grpc -from common.proto.ztp_server_pb2_grpc import ztpServerServiceStub -from common.proto.context_pb2 import ( - ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) +from common.proto.ztp_server_pb2_grpc import ZtpServerServiceStub +from common.proto.ztp_server_pb2 import ProvisioningScriptName, ProvisioningScript, ZtpFileName, ZtpFile from common.tools.client.RetryDecorator import retry, delay_exponential from common.tools.grpc.Tools import grpc_message_to_json_string @@ -39,7 +38,7 @@ class ZtpClient: def connect(self): self.channel = grpc.insecure_channel(self.endpoint) - self.stub = ztpServerServiceStub(self.channel) + self.stub = ZtpServerServiceStub(self.channel) def close(self): if self.channel is not None: self.channel.close() diff --git a/src/ztp_server/data/nso_client.proto b/src/ztp_server/data/nso_client.proto deleted file mode 100644 index d5983c62c..000000000 --- a/src/ztp_server/data/nso_client.proto +++ /dev/null @@ -1,60 +0,0 @@ -// 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. - -syntax = "proto3"; -package nos_client; - -message NOS_SW { - string ztp_device_sw_url = 1; - bytes ztp_device_sw_file = 2; -} - -// For ONIE Requests -message NOS_SW_REQ { - string serial_number = 1; - string eth_addr = 2; - string vendor_id = 3; - string machine = 4; - string machine_rev = 5; - string arch = 6; - string security_key = 7; - string operation = 8; -} - -message Config_Script { - string config_script_url = 1; - bytes config_script_file = 2; -} - -message Config_Script_REQ { - string agent = 1; - string machine = 2; - string serial_number = 3; - string eth_addr = 4; - string version = 5; -} - -message Status_Notification { - string status = 1; - string serial_number = 2; - string eth_addr = 3; -} - -message Empty{} - -service nos_client { - rpc GetNOSFile (NOS_SW_REQ) returns (NOS_SW) {} - rpc GetConfigScriptFile (Config_Script_REQ) returns (Config_Script) {} - rpc NotifyStatus (Status_Notification) returns (Empty) {} -} diff --git a/src/ztp_server/requirements.in b/src/ztp_server/requirements.in index 0d7804836..ba715494d 100755 --- a/src/ztp_server/requirements.in +++ b/src/ztp_server/requirements.in @@ -18,10 +18,7 @@ Flask==2.1.3 Flask-HTTPAuth==4.5.0 Flask-RESTful==0.3.9 jsonschema==4.4.0 -libyang==2.8.0 netaddr==0.9.0 -pyang==2.6.0 -git+https://github.com/robshakir/pyangbind.git pydantic==2.6.3 requests==2.27.1 werkzeug==2.3.7 diff --git a/src/ztp_server/service/ZtpServerService.py b/src/ztp_server/service/ZtpServerService.py index aba4aee94..c099cf7f6 100755 --- a/src/ztp_server/service/ZtpServerService.py +++ b/src/ztp_server/service/ZtpServerService.py @@ -14,7 +14,7 @@ from common.Constants import ServiceNameEnum from common.Settings import get_service_port_grpc -from common.proto.ztp_server_pb2_grpc import add_Ztp_ServerServiceServicer_to_server +from common.proto.ztp_server_pb2_grpc import add_ZtpServerServiceServicer_to_server from common.tools.service.GenericGrpcService import GenericGrpcService from ztp_server.service.ZtpServerServiceServicerImpl import ZtpServerServiceServicerImpl @@ -25,4 +25,4 @@ class ZtpServerService(GenericGrpcService): self.ztp_servicer = ZtpServerServiceServicerImpl() def install_servicers(self): - add_Ztp_ServerServiceServicer_to_server(self.ztp_servicer, self.server) + add_ZtpServerServiceServicer_to_server(self.ztp_servicer, self.server) diff --git a/src/ztp_server/service/ZtpServerServiceServicerImpl.py b/src/ztp_server/service/ZtpServerServiceServicerImpl.py index 015f958f4..410db6cb3 100755 --- a/src/ztp_server/service/ZtpServerServiceServicerImpl.py +++ b/src/ztp_server/service/ZtpServerServiceServicerImpl.py @@ -12,17 +12,17 @@ # See the License for the specific language governing permissions and # limitations under the License. -import grpc, logging, json +import grpc, logging, json, os from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method -from common.proto.context_pb2 import ( - ZtpFileName, ZtpFile, ProvisioningScriptName, ProvisioningScript) -from common.proto.ztp_server_pb2_grpc import ztpServerServiceServicer +from common.proto.ztp_server_pb2 import ProvisioningScriptName, ProvisioningScript, ZtpFileName, ZtpFile +from common.proto.ztp_server_pb2_grpc import ZtpServerServiceServicer LOGGER = logging.getLogger(__name__) METRICS_POOL = MetricsPool('ZTP_SERVER', 'RPC') -class ZtpServerServiceServicerImpl(ztpServerServiceServicer): + +class ZtpServerServiceServicerImpl(ZtpServerServiceServicer): def __init__(self): LOGGER.info('Creating Servicer...') LOGGER.info('Servicer Created') @@ -30,24 +30,24 @@ class ZtpServerServiceServicerImpl(ztpServerServiceServicer): @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetZtpProvisioning(self, request : ProvisioningScriptName, context : grpc.ServicerContext) -> ProvisioningScript: try: - filePath = '../data/' + ProvisioningScriptName - with open(filePath, 'r') as provisioning_file: + provisioningPath = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', 'data', request.scriptname) + with open(provisioningPath, 'r') as provisioning_file: provisioning_content = provisioning_file.read() - return ztpServerServiceServicer.ProvisioningScript(script=provisioning_content) + return ProvisioningScript(script=provisioning_content) except FileNotFoundError: context.set_code(grpc.StatusCode.NOT_FOUND) context.set_details('File not found') - return ztpServerServiceServicer.ProvisioningScript() + return ProvisioningScript() @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) def GetZtpProvisioning(self, request : ZtpFileName, context : grpc.ServicerContext) -> ZtpFile: try: - filePath = '../data/' + ZtpFileName - with open(filePath, 'r') as json_file: + ztpPath = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', 'data', request.filename) + with open(ztpPath, 'r') as json_file: json_content = json_file.read() - return ztpServerServiceServicer.ZtpFile(json=json_content) + return ZtpFile(json=json_content) except FileNotFoundError: context.set_code(grpc.StatusCode.NOT_FOUND) context.set_details('File not found') - return ztpServerServiceServicer.ZtpFile(json=json_content) \ No newline at end of file + return ZtpFile() \ No newline at end of file diff --git a/src/ztp_server/service/context_subscription/__init__.py b/src/ztp_server/service/context_subscription/__init__.py deleted file mode 100755 index 758f3d82c..000000000 --- a/src/ztp_server/service/context_subscription/__init__.py +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 2022-2024 ETSI 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 logging - -from websockets.sync.server import serve -from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest -from common.Settings import get_setting -from context.client.ContextClient import ContextClient -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME -from common.tools.object_factory.Topology import json_topology_id -from common.tools.object_factory.Context import json_context_id -from common.proto.context_pb2 import ContextId, TopologyId -import json -import os -from vnt_manager.client.VNTManagerClient import VNTManagerClient - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) -ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) - -vnt_manager_client: VNTManagerClient = VNTManagerClient() -context_client: ContextClient = ContextClient() - -ALL_HOSTS = "0.0.0.0" -WS_E2E_PORT = int(get_setting('WS_E2E_PORT', default='8762')) - -LOGGER = logging.getLogger(__name__) - - -def register_context_subscription(): - with serve(subcript_to_vnt_manager, ALL_HOSTS, WS_E2E_PORT, logger=LOGGER) as server: - LOGGER.info("Running subscription server...: {}:{}".format(ALL_HOSTS, str(WS_E2E_PORT))) - server.serve_forever() - LOGGER.info("Exiting subscription server...") - - -def subcript_to_vnt_manager(websocket): - for message in websocket: - LOGGER.debug("Message received: {}".format(message)) - message_json = json.loads(message) - request = VNTSubscriptionRequest() - request.host = message_json['host'] - request.port = message_json['port'] - LOGGER.debug("Received gRPC from ws: {}".format(request)) - - try: - vntm_reply = vnt_manager_client.VNTSubscript(request) - LOGGER.debug("Received gRPC from vntm: {}".format(vntm_reply)) - except Exception as e: - LOGGER.error('Could not subscript to VTNManager: {}'.format(e)) - - websocket.send(vntm_reply.subscription) diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py index c1b8c3733..43b7b79b6 100755 --- a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py @@ -16,32 +16,22 @@ import json import logging from flask.json import jsonify from flask_restful import Resource, request -from werkzeug.exceptions import BadRequest -from common.proto.context_pb2 import Empty, LinkTypeEnum from common.tools.grpc.Tools import grpc_message_to_json -from context.client.ContextClient import ContextClient -from device.client.DeviceClient import DeviceClient -from service.client.ServiceClient import ServiceClient -from slice.client.SliceClient import SliceClient -from vnt_manager.client.VNTManagerClient import VNTManagerClient +from ztp_server.service.rest_server.ztpServer_plugins.tools.Authentication import HTTP_AUTH from .Tools import ( - format_grpc_to_json, returnConfigFile + returnConfigFile ) LOGGER = logging.getLogger(__name__) - class _Resource(Resource): def __init__(self) -> None: super().__init__() - self.context_client = ContextClient() - self.device_client = DeviceClient() - self.service_client = ServiceClient() - self.vntmanager_client = VNTManagerClient() - self.slice_client = SliceClient() - class config(_Resource): + @HTTP_AUTH.login_required def get(self, config_db : str): - return returnConfigFile(config_db) #TODO define how to return configFile.json + #if returnConfigFile(config_db) + + return diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py index 6665dd4ce..7d05816ee 100755 --- a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py @@ -12,30 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict -from flask.json import jsonify -from common.proto.context_pb2 import ( - ConnectionId, returnConfigFile -) -from common.proto.policy_pb2 import PolicyRule, PolicyRuleId -from common.tools.grpc.Tools import grpc_message_to_json -from common.tools.object_factory.Connection import json_connection_id -from common.tools.object_factory.Context import json_context_id -from common.tools.object_factory.Device import json_device_id -from common.tools.object_factory.Link import json_link_id -from common.tools.object_factory.PolicyRule import json_policyrule_id -from common.tools.object_factory.Service import json_service_id -from common.tools.object_factory.Slice import json_slice_id -from common.tools.object_factory.Topology import json_topology_id - - -def format_grpc_to_json(grpc_reply): - return jsonify(grpc_message_to_json(grpc_reply)) +import os def returnConfigFile(config_db): - path = config_db - - with open(path, 'r', encoding='utf-8') as configFile: - content = configFile.read() + try: + configFilePath = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..','..','..','..','..', 'data', config_db) + with open(configFilePath, 'r', encoding='utf-8') as configFile: + content = configFile.read() + except FileNotFoundError: + return "File not Found" return content \ No newline at end of file diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py deleted file mode 100755 index 66b607c8b..000000000 --- a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/Validator.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -from typing import List -from flask.json import jsonify -from jsonschema import _utils -from jsonschema.validators import validator_for -from jsonschema.protocols import Validator -from jsonschema.exceptions import ValidationError -from werkzeug.exceptions import BadRequest -from .HttpStatusCodes import HTTP_BADREQUEST - -def validate_message(schema, message): - validator_class = validator_for(schema) - validator : Validator = validator_class(schema) - errors : List[ValidationError] = sorted(validator.iter_errors(message), key=str) - if len(errors) == 0: return - response = jsonify([ - {'message': str(error.message), 'schema': str(error.schema), 'validator': str(error.validator), - 'where': str(_utils.format_as_index(container='message', indices=error.relative_path))} - for error in errors - ]) - response.status_code = HTTP_BADREQUEST - raise BadRequest(response=response) diff --git a/src/ztp_server/tests/Constants.py b/src/ztp_server/tests/Constants.py deleted file mode 100755 index 886ddcafa..000000000 --- a/src/ztp_server/tests/Constants.py +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -USERNAME = 'admin' -PASSWORD = 'admin' - -# Ref: https://osm.etsi.org/wikipub/index.php/WIM -WIM_MAPPING = [ - { - 'device-id' : 'dev-1', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-1', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R1-EMU:13/1/2'}, - 'site-id': '1', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, - { - 'device-id' : 'dev-2', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-2', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R2-EMU:13/1/2'}, - 'site-id': '2', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, - { - 'device-id' : 'dev-3', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-3', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R3-EMU:13/1/2'}, - 'site-id': '3', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, - { - 'device-id' : 'dev-4', # pop_switch_dpid - #'device_interface_id' : ??, # pop_switch_port - 'service_endpoint_id' : 'ep-4', # wan_service_endpoint_id - 'service_mapping_info': { # wan_service_mapping_info, other extra info - 'bearer': {'bearer-reference': 'R4-EMU:13/1/2'}, - 'site-id': '4', - }, - #'switch_dpid' : ??, # wan_switch_dpid - #'switch_port' : ??, # wan_switch_port - #'datacenter_id' : ??, # vim_account - }, -] - -SERVICE_TYPE = 'ELINE' - -SERVICE_CONNECTION_POINTS_1 = [ - {'service_endpoint_id': 'ep-1', - 'service_endpoint_encapsulation_type': 'dot1q', - 'service_endpoint_encapsulation_info': {'vlan': 1234}}, - {'service_endpoint_id': 'ep-2', - 'service_endpoint_encapsulation_type': 'dot1q', - 'service_endpoint_encapsulation_info': {'vlan': 1234}}, -] - -SERVICE_CONNECTION_POINTS_2 = [ - {'service_endpoint_id': 'ep-3', - 'service_endpoint_encapsulation_type': 'dot1q', - 'service_endpoint_encapsulation_info': {'vlan': 1234}}, -] \ No newline at end of file diff --git a/src/ztp_server/tests/MockService_Dependencies.py b/src/ztp_server/tests/MockService_Dependencies.py deleted file mode 100755 index 322441367..000000000 --- a/src/ztp_server/tests/MockService_Dependencies.py +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 2022-2024 ETSI 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 os -from typing import Union -from common.Constants import ServiceNameEnum -from common.Settings import ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name -from common.proto.context_pb2_grpc import add_ContextServiceServicer_to_server -from common.proto.service_pb2_grpc import add_ServiceServiceServicer_to_server -from common.proto.slice_pb2_grpc import add_SliceServiceServicer_to_server -from common.tests.MockServicerImpl_Context import MockServicerImpl_Context -from common.tests.MockServicerImpl_Service import MockServicerImpl_Service -from common.tests.MockServicerImpl_Slice import MockServicerImpl_Slice -from common.tools.service.GenericGrpcService import GenericGrpcService - -LOCAL_HOST = '127.0.0.1' - -SERVICE_CONTEXT = ServiceNameEnum.CONTEXT -SERVICE_SERVICE = ServiceNameEnum.SERVICE -SERVICE_SLICE = ServiceNameEnum.SLICE - -class MockService_Dependencies(GenericGrpcService): - # Mock Service implementing Context, Service and Slice to simplify unitary tests of NBI - - def __init__(self, bind_port: Union[str, int]) -> None: - super().__init__(bind_port, LOCAL_HOST, enable_health_servicer=False, cls_name='MockService') - - # pylint: disable=attribute-defined-outside-init - def install_servicers(self): - self.context_servicer = MockServicerImpl_Context() - add_ContextServiceServicer_to_server(self.context_servicer, self.server) - - self.service_servicer = MockServicerImpl_Service() - add_ServiceServiceServicer_to_server(self.service_servicer, self.server) - - self.slice_servicer = MockServicerImpl_Slice() - add_SliceServiceServicer_to_server(self.slice_servicer, self.server) - - def configure_env_vars(self): - os.environ[get_env_var_name(SERVICE_CONTEXT, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) - os.environ[get_env_var_name(SERVICE_CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) - - os.environ[get_env_var_name(SERVICE_SERVICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) - os.environ[get_env_var_name(SERVICE_SERVICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) - - os.environ[get_env_var_name(SERVICE_SLICE, ENVVAR_SUFIX_SERVICE_HOST )] = str(self.bind_address) - os.environ[get_env_var_name(SERVICE_SLICE, ENVVAR_SUFIX_SERVICE_PORT_GRPC)] = str(self.bind_port) diff --git a/src/ztp_server/tests/PrepareTestScenario.py b/src/ztp_server/tests/PrepareTestScenario.py deleted file mode 100755 index a574f086b..000000000 --- a/src/ztp_server/tests/PrepareTestScenario.py +++ /dev/null @@ -1,169 +0,0 @@ -# Copyright 2022-2024 ETSI 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 enum, logging, os, pytest, requests, time -from typing import Any, Dict, List, Optional, Set, Union -from common.Constants import ServiceNameEnum -from common.Settings import ( - ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_HTTP, - get_env_var_name, get_service_baseurl_http, get_service_port_http -) -from context.client.ContextClient import ContextClient -from nbi.service.rest_server.RestServer import RestServer -from nbi.service.rest_server.nbi_plugins.etsi_bwm import register_etsi_bwm_api -from nbi.service.rest_server.nbi_plugins.ietf_l2vpn import register_ietf_l2vpn -from nbi.service.rest_server.nbi_plugins.ietf_l3vpn import register_ietf_l3vpn -from nbi.service.rest_server.nbi_plugins.ietf_network import register_ietf_network -from nbi.service.rest_server.nbi_plugins.tfs_api import register_tfs_api -from nbi.tests.MockService_Dependencies import MockService_Dependencies -from service.client.ServiceClient import ServiceClient -from slice.client.SliceClient import SliceClient -from tests.tools.mock_osm.MockOSM import MockOSM -from .Constants import USERNAME, PASSWORD, WIM_MAPPING - -LOCAL_HOST = '127.0.0.1' -MOCKSERVICE_PORT = 10000 -NBI_SERVICE_PORT = MOCKSERVICE_PORT + get_service_port_http(ServiceNameEnum.NBI) # avoid privileged ports -os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_HOST )] = str(LOCAL_HOST) -os.environ[get_env_var_name(ServiceNameEnum.NBI, ENVVAR_SUFIX_SERVICE_PORT_HTTP)] = str(NBI_SERVICE_PORT) - -@pytest.fixture(scope='session') -def mock_service(): - _service = MockService_Dependencies(MOCKSERVICE_PORT) - _service.configure_env_vars() - _service.start() - yield _service - _service.stop() - -@pytest.fixture(scope='session') -def nbi_service_rest(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument - _rest_server = RestServer() - register_etsi_bwm_api(_rest_server) - register_ietf_l2vpn(_rest_server) - register_ietf_l3vpn(_rest_server) - register_ietf_network(_rest_server) - register_tfs_api(_rest_server) - _rest_server.start() - time.sleep(1) # bring time for the server to start - yield _rest_server - _rest_server.shutdown() - _rest_server.join() - -@pytest.fixture(scope='session') -def osm_wim(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - wim_url = 'http://{:s}:{:d}'.format(LOCAL_HOST, NBI_SERVICE_PORT) - return MockOSM(wim_url, WIM_MAPPING, USERNAME, PASSWORD) - -@pytest.fixture(scope='session') -def context_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument - _client = ContextClient() - yield _client - _client.close() - -@pytest.fixture(scope='session') -def service_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument - _client = ServiceClient() - yield _client - _client.close() - -@pytest.fixture(scope='session') -def slice_client(mock_service : MockService_Dependencies): # pylint: disable=redefined-outer-name, unused-argument - _client = SliceClient() - yield _client - _client.close() - -class RestRequestMethod(enum.Enum): - GET = 'get' - POST = 'post' - PUT = 'put' - PATCH = 'patch' - DELETE = 'delete' - -EXPECTED_STATUS_CODES : Set[int] = { - requests.codes['OK' ], - requests.codes['CREATED' ], - requests.codes['ACCEPTED' ], - requests.codes['NO_CONTENT'], -} - -def do_rest_request( - method : RestRequestMethod, url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - base_url = get_service_baseurl_http(ServiceNameEnum.NBI) or '' - request_url = 'http://{:s}:{:s}@{:s}:{:d}{:s}{:s}'.format( - USERNAME, PASSWORD, LOCAL_HOST, NBI_SERVICE_PORT, str(base_url), url - ) - if logger is not None: - msg = 'Request: {:s} {:s}'.format(str(method.value).upper(), str(request_url)) - if body is not None: msg += ' body={:s}'.format(str(body)) - logger.warning(msg) - reply = requests.request(method.value, request_url, timeout=timeout, json=body, allow_redirects=allow_redirects) - if logger is not None: - logger.warning('Reply: {:s}'.format(str(reply.text))) - assert reply.status_code in expected_status_codes, 'Reply failed with status code {:d}'.format(reply.status_code) - - if reply.content and len(reply.content) > 0: return reply.json() - return None - -def do_rest_get_request( - url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - return do_rest_request( - RestRequestMethod.GET, url, body=body, timeout=timeout, allow_redirects=allow_redirects, - expected_status_codes=expected_status_codes, logger=logger - ) - -def do_rest_post_request( - url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - return do_rest_request( - RestRequestMethod.POST, url, body=body, timeout=timeout, allow_redirects=allow_redirects, - expected_status_codes=expected_status_codes, logger=logger - ) - -def do_rest_put_request( - url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - return do_rest_request( - RestRequestMethod.PUT, url, body=body, timeout=timeout, allow_redirects=allow_redirects, - expected_status_codes=expected_status_codes, logger=logger - ) - -def do_rest_patch_request( - url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - return do_rest_request( - RestRequestMethod.PATCH, url, body=body, timeout=timeout, allow_redirects=allow_redirects, - expected_status_codes=expected_status_codes, logger=logger - ) - -def do_rest_delete_request( - url : str, body : Optional[Any] = None, timeout : int = 10, - allow_redirects : bool = True, expected_status_codes : Set[int] = EXPECTED_STATUS_CODES, - logger : Optional[logging.Logger] = None -) -> Optional[Union[Dict, List]]: - return do_rest_request( - RestRequestMethod.DELETE, url, body=body, timeout=timeout, allow_redirects=allow_redirects, - expected_status_codes=expected_status_codes, logger=logger - ) diff --git a/src/ztp_server/tests/__init__.py b/src/ztp_server/tests/__init__.py deleted file mode 100755 index 53d5157f7..000000000 --- a/src/ztp_server/tests/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - diff --git a/src/ztp_server/tests/data/ietf_acl.json b/src/ztp_server/tests/data/ietf_acl.json deleted file mode 100755 index 072df6d01..000000000 --- a/src/ztp_server/tests/data/ietf_acl.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "ietf-access-control-list": { - "acls": { - "acl": [ - { - "name": "sample-ipv4-acl", - "type": "ipv4-acl-type", - "aces": { - "ace": [ - { - "name": "rule1", - "matches": { - "ipv4": { - "dscp": 18, - "source-ipv4-network": "128.32.10.6/24", - "destination-ipv4-network": "172.10.33.0/24" - }, - "tcp": { - "flags": "syn", - "source-port": { - "port": 1444, - "operator": "eq" - }, - "destination-port": { - "port": 1333, - "operator": "eq" - } - } - }, - "actions": { - "forwarding": "drop" - } - } - ] - } - } - ], - "attachment-points": { - "interface": [ - { - "interface-id": "200", - "ingress": { - "acl-sets": { - "acl-set": [ - { - "name": "sample-ipv4-acl" - } - ] - } - } - } - ] - } - } - } -} diff --git a/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json b/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json deleted file mode 100755 index bfeb93fb7..000000000 --- a/src/ztp_server/tests/data/ietf_l3vpn_req_svc1.json +++ /dev/null @@ -1,231 +0,0 @@ -{ - "ietf-l3vpn-svc:l3vpn-svc": { - "vpn-services": { - "vpn-service": [ - { - "vpn-id": "vpn1" - } - ] - }, - "sites": { - "site": [ - { - "site-id": "site_OLT", - "management": { - "type": "ietf-l3vpn-svc:provider-managed" - }, - "locations": { - "location": [ - { - "location-id": "OLT" - } - ] - }, - "devices": { - "device": [ - { - "device-id": "128.32.33.5", - "location": "OLT" - } - ] - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "128.32.10.1/24", - "lan-tag": "vlan21", - "next-hop": "128.32.33.2" - }, - { - "lan": "128.32.20.1/24", - "lan-tag": "vlan21", - "next-hop": "128.32.33.2" - } - ] - } - } - } - ] - }, - "site-network-accesses": { - "site-network-access": [ - { - "site-network-access-id": "500", - "site-network-access-type": "ietf-l3vpn-svc:multipoint", - "device-reference": "128.32.33.5", - "vpn-attachment": { - "vpn-id": "vpn1", - "site-role": "ietf-l3vpn-svc:spoke-role" - }, - "ip-connection": { - "ipv4": { - "address-allocation-type": "ietf-l3vpn-svc:static-address", - "addresses": { - "provider-address": "128.32.33.254", - "customer-address": "128.32.33.2", - "prefix-length": 24 - } - } - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "172.1.101.1/24", - "lan-tag": "vlan21", - "next-hop": "128.32.33.254" - } - ] - } - } - } - ] - }, - "service": { - "svc-mtu": 1500, - "svc-input-bandwidth": 1000000000, - "svc-output-bandwidth": 1000000000, - "qos": { - "qos-profile": { - "classes": { - "class": [ - { - "class-id": "qos-realtime", - "direction": "ietf-l3vpn-svc:both", - "latency": { - "latency-boundary": 10 - }, - "bandwidth": { - "guaranteed-bw-percent": 100 - } - } - ] - } - } - } - } - } - ] - } - }, - { - "site-id": "site_POP", - "management": { - "type": "ietf-l3vpn-svc:provider-managed" - }, - "locations": { - "location": [ - { - "location-id": "POP" - } - ] - }, - "devices": { - "device": [ - { - "device-id": "172.10.33.5", - "location": "POP" - } - ] - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "172.1.101.1/24", - "lan-tag": "vlan101", - "next-hop": "172.10.33.2" - } - ] - } - } - } - ] - }, - "site-network-accesses": { - "site-network-access": [ - { - "site-network-access-id": "500", - "site-network-access-type": "ietf-l3vpn-svc:multipoint", - "device-reference": "172.10.33.5", - "vpn-attachment": { - "vpn-id": "vpn1", - "site-role": "ietf-l3vpn-svc:hub-role" - }, - "ip-connection": { - "ipv4": { - "address-allocation-type": "ietf-l3vpn-svc:static-address", - "addresses": { - "provider-address": "172.10.33.254", - "customer-address": "172.10.33.2", - "prefix-length": 24 - } - } - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "128.32.10.1/24", - "lan-tag": "vlan101", - "next-hop": "172.10.33.254" - }, - { - "lan": "128.32.20.1/24", - "lan-tag": "vlan101", - "next-hop": "172.10.33.254" - } - ] - } - } - } - ] - }, - "service": { - "svc-mtu": 1500, - "svc-input-bandwidth": 1000000000, - "svc-output-bandwidth": 1000000000, - "qos": { - "qos-profile": { - "classes": { - "class": [ - { - "class-id": "qos-realtime", - "direction": "ietf-l3vpn-svc:both", - "latency": { - "latency-boundary": 10 - }, - "bandwidth": { - "guaranteed-bw-percent": 100 - } - } - ] - } - } - } - } - } - ] - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json b/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json deleted file mode 100755 index 2cc512e59..000000000 --- a/src/ztp_server/tests/data/ietf_l3vpn_req_svc2.json +++ /dev/null @@ -1,231 +0,0 @@ -{ - "ietf-l3vpn-svc:l3vpn-svc": { - "vpn-services": { - "vpn-service": [ - { - "vpn-id": "vpn2" - } - ] - }, - "sites": { - "site": [ - { - "site-id": "site_OLT", - "management": { - "type": "ietf-l3vpn-svc:provider-managed" - }, - "locations": { - "location": [ - { - "location-id": "OLT" - } - ] - }, - "devices": { - "device": [ - { - "device-id": "128.32.33.5", - "location": "OLT" - } - ] - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "128.32.10.1/24", - "lan-tag": "vlan31", - "next-hop": "128.32.33.2" - }, - { - "lan": "128.32.20.1/24", - "lan-tag": "vlan31", - "next-hop": "128.32.33.2" - } - ] - } - } - } - ] - }, - "site-network-accesses": { - "site-network-access": [ - { - "site-network-access-id": "500", - "site-network-access-type": "ietf-l3vpn-svc:multipoint", - "device-reference": "128.32.33.5", - "vpn-attachment": { - "vpn-id": "vpn2", - "site-role": "ietf-l3vpn-svc:spoke-role" - }, - "ip-connection": { - "ipv4": { - "address-allocation-type": "ietf-l3vpn-svc:static-address", - "addresses": { - "provider-address": "128.32.33.254", - "customer-address": "128.32.33.2", - "prefix-length": 24 - } - } - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "172.1.201.1/24", - "lan-tag": "vlan31", - "next-hop": "128.32.33.254" - } - ] - } - } - } - ] - }, - "service": { - "svc-mtu": 1500, - "svc-input-bandwidth": 1000000000, - "svc-output-bandwidth": 1000000000, - "qos": { - "qos-profile": { - "classes": { - "class": [ - { - "class-id": "qos-realtime", - "direction": "ietf-l3vpn-svc:both", - "latency": { - "latency-boundary": 10 - }, - "bandwidth": { - "guaranteed-bw-percent": 100 - } - } - ] - } - } - } - } - } - ] - } - }, - { - "site-id": "site_POP", - "management": { - "type": "ietf-l3vpn-svc:provider-managed" - }, - "locations": { - "location": [ - { - "location-id": "POP" - } - ] - }, - "devices": { - "device": [ - { - "device-id": "172.10.33.5", - "location": "POP" - } - ] - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "172.1.201.1/24", - "lan-tag": "vlan201", - "next-hop": "172.10.33.2" - } - ] - } - } - } - ] - }, - "site-network-accesses": { - "site-network-access": [ - { - "site-network-access-id": "500", - "site-network-access-type": "ietf-l3vpn-svc:multipoint", - "device-reference": "172.10.33.5", - "vpn-attachment": { - "vpn-id": "vpn2", - "site-role": "ietf-l3vpn-svc:hub-role" - }, - "ip-connection": { - "ipv4": { - "address-allocation-type": "ietf-l3vpn-svc:static-address", - "addresses": { - "provider-address": "172.10.33.254", - "customer-address": "172.10.33.2", - "prefix-length": 24 - } - } - }, - "routing-protocols": { - "routing-protocol": [ - { - "type": "ietf-l3vpn-svc:static", - "static": { - "cascaded-lan-prefixes": { - "ipv4-lan-prefixes": [ - { - "lan": "128.32.10.1/24", - "lan-tag": "vlan201", - "next-hop": "172.10.33.254" - }, - { - "lan": "128.32.20.1/24", - "lan-tag": "vlan201", - "next-hop": "172.10.33.254" - } - ] - } - } - } - ] - }, - "service": { - "svc-mtu": 1500, - "svc-input-bandwidth": 1000000000, - "svc-output-bandwidth": 1000000000, - "qos": { - "qos-profile": { - "classes": { - "class": [ - { - "class-id": "qos-realtime", - "direction": "ietf-l3vpn-svc:both", - "latency": { - "latency-boundary": 10 - }, - "bandwidth": { - "guaranteed-bw-percent": 100 - } - } - ] - } - } - } - } - } - ] - } - } - ] - } - } -} \ No newline at end of file diff --git a/src/ztp_server/tests/data/test-ietf-network.json b/src/ztp_server/tests/data/test-ietf-network.json deleted file mode 100755 index 7643ef53a..000000000 --- a/src/ztp_server/tests/data/test-ietf-network.json +++ /dev/null @@ -1,1962 +0,0 @@ -{ - "ietf-network:networks": { - "network": [ - { - "network-id": "providerId-10-clientId-0-topologyId-1", - "ietf-te-topology:te": { - "name": "Huawei-Network" - }, - "ietf-te-topology:te-topology-identifier": { - "provider-id": 10, - "client-id": 0, - "topology-id": "1" - }, - "network-types": { - "ietf-te-topology:te-topology": { - "ietf-otn-topology:otn-topology": {} - } - }, - "node": [ - { - "node-id": "10.0.10.1", - "ietf-te-topology:te-node-id": "10.0.10.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "OA" - }, - "tunnel-termination-point": [ - { - "tunnel-tp-id": "NTAx", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "501" - } - ] - } - }, - { - "tunnel-tp-id": "NTAw", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "500" - } - ] - } - } - ] - } - }, - { - "node-id": "10.0.20.1", - "ietf-te-topology:te-node-id": "10.0.20.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "P" - }, - "tunnel-termination-point": [ - { - "tunnel-tp-id": "NTAx", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "501" - } - ] - } - }, - { - "tunnel-tp-id": "NTAw", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "500" - } - ] - } - } - ] - } - }, - { - "node-id": "10.0.40.1", - "ietf-te-topology:te-node-id": "10.0.40.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - }, - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "P" - }, - "tunnel-termination-point": [ - { - "tunnel-tp-id": "NTAw", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "500" - } - ] - } - }, - { - "tunnel-tp-id": "NTAx", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "501" - } - ] - } - } - ] - } - }, - { - "node-id": "10.0.30.1", - "ietf-te-topology:te-node-id": "10.0.30.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - }, - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-te-topology:te": { - "name": "1-1-1-1-1", - "admin-status": "up", - "oper-status": "up", - "ietf-otn-topology:client-svc": { - "client-facing": false - }, - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-oduk", - "switching-capability": "ietf-te-types:switching-otn", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odu-type": "ietf-layer1-types:ODU4" - } - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "OE" - }, - "tunnel-termination-point": [ - { - "tunnel-tp-id": "NTAw", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "500" - } - ] - } - }, - { - "tunnel-tp-id": "NTAx", - "admin-status": "up", - "oper-status": "up", - "encoding": "ietf-te-types:lsp-encoding-oduk", - "name": "1-1-1-1-1", - "protection-type": "ietf-te-types:lsp-protection-unprotected", - "switching-capability": "ietf-te-types:switching-otn", - "local-link-connectivities": { - "local-link-connectivity": [ - { - "is-allowed": true, - "link-tp-ref": "501" - } - ] - } - } - ] - } - } - ], - "ietf-network-topology:link": [ - { - "link-id": "10.0.10.1-501", - "source": { - "source-node": "10.0.10.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.20.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.10.1-501", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.10.1-500", - "source": { - "source-node": "10.0.10.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.40.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.10.1-500", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.20.1-501", - "source": { - "source-node": "10.0.20.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.10.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.20.1-501", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.20.1-500", - "source": { - "source-node": "10.0.20.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.30.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.20.1-500", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.40.1-500", - "source": { - "source-node": "10.0.40.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.10.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.40.1-500", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.40.1-501", - "source": { - "source-node": "10.0.40.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.30.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.40.1-501", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.30.1-500", - "source": { - "source-node": "10.0.30.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.20.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.30.1-500", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - }, - { - "link-id": "10.0.30.1-501", - "source": { - "source-node": "10.0.30.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.40.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.30.1-501", - "te-delay-metric": 1, - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "odu-type": "ietf-layer1-types:ODU0", - "ts-number": 80 - } - ] - } - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-otn-topology:otn": { - "odulist": [ - { - "ts-number": 80, - "odu-type": "ietf-layer1-types:ODU0" - } - ] - } - } - } - ] - } - } - } - ] - }, - { - "network-id": "providerId-10-clientId-0-topologyId-2", - "ietf-te-topology:te": { - "name": "Huawei-Network" - }, - "ietf-te-topology:te-topology-identifier": { - "provider-id": 10, - "client-id": 0, - "topology-id": "2" - }, - "network-types": { - "ietf-te-topology:te-topology": { - "ietf-eth-te-topology:eth-tran-topology": {} - } - }, - "node": [ - { - "node-id": "10.0.10.1", - "ietf-te-topology:te-node-id": "10.0.10.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "200", - "ietf-te-topology:te-tp-id": "128.32.33.254", - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "OA" - } - } - }, - { - "node-id": "10.0.20.1", - "ietf-te-topology:te-node-id": "10.0.20.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "P" - } - } - }, - { - "node-id": "10.0.40.1", - "ietf-te-topology:te-node-id": "10.0.40.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "P" - } - } - }, - { - "node-id": "10.0.30.1", - "ietf-te-topology:te-node-id": "10.0.30.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "200", - "ietf-te-topology:te-tp-id": "172.10.33.254", - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "501", - "ietf-te-topology:te-tp-id": 501, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "OE" - } - } - }, - { - "node-id": "128.32.33.5", - "ietf-te-topology:te-node-id": "128.32.33.5", - "ietf-network-topology:termination-point": [ - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": "128.32.33.2", - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - }, - "ietf-te-topology:te": { - "name": "endpoint:111", - "admin-status": "up", - "oper-status": "up", - "interface-switching-capability": [ - { - "encoding": "ietf-te-types:lsp-encoding-ethernet", - "switching-capability": "ietf-te-types:switching-l2sc", - "max-lsp-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - ] - } - }, - { - "tp-id": "200", - "ietf-te-topology:te-tp-id": 200, - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - }, - { - "tp-id": "201", - "ietf-te-topology:te-tp-id": 201, - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "OLT", - "connectivity-matrices": { - "label-restrictions": { - "label-restriction": [ - { - "index": 0, - "label-start": { - "te-label": { - "ietf-eth-te-topology:vlanid": 21 - } - }, - "label-end": { - "te-label": { - "ietf-eth-te-topology:vlanid": 21 - } - } - }, - { - "index": 1, - "label-start": { - "te-label": { - "ietf-eth-te-topology:vlanid": 31 - } - }, - "label-end": { - "te-label": { - "ietf-eth-te-topology:vlanid": 31 - } - } - } - ] - } - } - } - } - }, - { - "node-id": "128.32.10.1", - "ietf-te-topology:te-node-id": "128.32.10.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - }, - { - "tp-id": "200", - "ietf-te-topology:te-tp-id": 200, - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "ONT1" - } - } - }, - { - "node-id": "128.32.20.1", - "ietf-te-topology:te-node-id": "128.32.20.1", - "ietf-network-topology:termination-point": [ - { - "tp-id": "500", - "ietf-te-topology:te-tp-id": 500, - "ietf-eth-te-topology:eth-svc": { - "client-facing": false, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - }, - { - "tp-id": "200", - "ietf-te-topology:te-tp-id": 200, - "ietf-eth-te-topology:eth-svc": { - "client-facing": true, - "supported-classification": { - "port-classification": true, - "vlan-classification": { - "outer-tag": { - "supported-tag-types": [ - "ietf-eth-tran-types:classify-c-vlan", - "ietf-eth-tran-types:classify-s-vlan" - ], - "vlan-bundling": false, - "vlan-range": "1-4094" - } - } - } - } - } - ], - "ietf-te-topology:te": { - "oper-status": "up", - "te-node-attributes": { - "admin-status": "up", - "name": "ONT2" - } - } - } - ], - "ietf-network-topology:link": [ - { - "link-id": "10.0.10.1-200", - "source": { - "source-node": "10.0.10.1", - "source-tp": "200" - }, - "destination": { - "dest-node": "128.32.33.5", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.10.1-200", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "128.32.33.5-500", - "source": { - "source-node": "128.32.33.5", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.10.1", - "dest-tp": "200" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "128.32.33.5-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.10.1-501", - "source": { - "source-node": "10.0.10.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.20.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.10.1-501", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.10.1-500", - "source": { - "source-node": "10.0.10.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.40.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.10.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.20.1-501", - "source": { - "source-node": "10.0.20.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.10.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.20.1-501", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.20.1-500", - "source": { - "source-node": "10.0.20.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.30.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.20.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.40.1-501", - "source": { - "source-node": "10.0.40.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.30.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.40.1-501", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.40.1-500", - "source": { - "source-node": "10.0.40.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.10.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.40.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.30.1-501", - "source": { - "source-node": "10.0.30.1", - "source-tp": "501" - }, - "destination": { - "dest-node": "10.0.40.1", - "dest-tp": "501" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.30.1-501", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "10.0.30.1-500", - "source": { - "source-node": "10.0.30.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "10.0.20.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "10.0.30.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "128.32.33.5-200", - "source": { - "source-node": "128.32.33.5", - "source-tp": "200" - }, - "destination": { - "dest-node": "128.32.10.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "128.32.33.5-200", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "128.32.10.1-500", - "source": { - "source-node": "128.32.10.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "128.32.33.5", - "dest-tp": "200" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "128.32.10.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "128.32.33.5-201", - "source": { - "source-node": "128.32.33.5", - "source-tp": "201" - }, - "destination": { - "dest-node": "128.32.20.1", - "dest-tp": "500" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "128.32.33.5-201", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - }, - { - "link-id": "128.32.20.1-500", - "source": { - "source-node": "128.32.20.1", - "source-tp": "500" - }, - "destination": { - "dest-node": "128.32.33.5", - "dest-tp": "201" - }, - "ietf-te-topology:te": { - "oper-status": "up", - "te-link-attributes": { - "access-type": "point-to-point", - "admin-status": "up", - "name": "128.32.20.1-500", - "max-link-bandwidth": { - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - }, - "unreserved-bandwidth": [ - { - "priority": 7, - "te-bandwidth": { - "ietf-eth-te-topology:eth-bandwidth": 10000000 - } - } - ] - } - } - } - ] - } - ] - } -} \ No newline at end of file diff --git a/src/ztp_server/tests/data/tfs_api_dummy.json b/src/ztp_server/tests/data/tfs_api_dummy.json deleted file mode 100755 index d8f513757..000000000 --- a/src/ztp_server/tests/data/tfs_api_dummy.json +++ /dev/null @@ -1,442 +0,0 @@ -{ - "dummy_mode": true, - "contexts": [ - { - "context_id": {"context_uuid": {"uuid": "admin"}}, - "name": "admin", - "topology_ids": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - ], - "service_ids": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}} - ], - "slice_ids": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}, "slice_uuid": {"uuid": "SLC:R1-R2-R3"}} - ] - } - ], - "topologies": [ - { - "device_ids": [ - {"device_uuid": {"uuid": "R1"}}, - {"device_uuid": {"uuid": "R2"}}, - {"device_uuid": {"uuid": "R3"}} - ], - "link_ids": [ - {"link_uuid": {"uuid": "R1/502==R2/501"}}, - {"link_uuid": {"uuid": "R1/503==R3/501"}}, - {"link_uuid": {"uuid": "R2/501==R1/502"}}, - {"link_uuid": {"uuid": "R2/503==R3/502"}}, - {"link_uuid": {"uuid": "R3/501==R1/503"}}, - {"link_uuid": {"uuid": "R3/502==R2/503"}} - ], - "name": "admin", - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "devices": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "name": "R1", "device_type": "emu-packet-router", - "device_drivers": [0], "device_operational_status": 2, - "device_endpoints": [ - {"name": "200", "endpoint_type": "copper", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "502", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "503", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }} - ], - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "502", "name": "502", "type": "optical"}, - {"uuid": "503", "name": "503", "type": "optical"} - ]}}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { - "uuid": "200", "name": "200", "type": "copper" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[502]", "resource_value": { - "uuid": "502", "name": "502", "type": "optical" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { - "uuid": "503", "name": "503", "type": "optical" - }}} - ]} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "name": "R2", "device_type": "emu-packet-router", - "device_drivers": [0], "device_operational_status": 2, - "device_endpoints": [ - {"name": "200", "endpoint_type": "copper", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "501", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "503", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }} - ], - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "501", "name": "501", "type": "optical"}, - {"uuid": "503", "name": "503", "type": "optical"} - ]}}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { - "uuid": "200", "name": "200", "type": "copper" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[501]", "resource_value": { - "uuid": "501", "name": "501", "type": "optical" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { - "uuid": "503", "name": "503", "type": "optical" - }}} - ]} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "name": "R3", "device_type": "emu-packet-router", - "device_drivers": [0], "device_operational_status": 2, - "device_endpoints": [ - {"name": "200", "endpoint_type": "copper", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "502", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }}, - {"name": "503", "endpoint_type": "optical", "endpoint_id": { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }} - ], - "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": 0}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "502", "name": "502", "type": "optical"}, - {"uuid": "503", "name": "503", "type": "optical"} - ]}}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[200]", "resource_value": { - "uuid": "200", "name": "200", "type": "copper" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[502]", "resource_value": { - "uuid": "502", "name": "502", "type": "optical" - }}}, - {"action": 1, "custom": {"resource_key": "/endpoints/endpoint[503]", "resource_value": { - "uuid": "503", "name": "503", "type": "optical" - }}} - ]} - } - ], - "links": [ - { - "link_id": {"link_uuid": {"uuid": "R1/502==R2/501"}}, "name": "R1/502==R2/501", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - }, - { - "link_id": {"link_uuid": {"uuid": "R1/503==R3/501"}}, "name": "R1/503==R3/501", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - }, - { - "link_id": {"link_uuid": {"uuid": "R2/501==R1/502"}}, "name": "R2/501==R1/502", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - }, - { - "link_id": {"link_uuid": {"uuid": "R2/503==R3/502"}}, "name": "R2/503==R3/502", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - }, - { - "link_id": {"link_uuid": {"uuid": "R3/501==R1/503"}}, "name": "R3/501==R1/503", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - }, - { - "link_id": {"link_uuid": {"uuid": "R3/502==R2/503"}}, "name": "R3/502==R2/503", - "attributes": {"total_capacity_gbps": 10.0, "used_capacity_gbps": 0.0}, - "link_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ] - } - ], - "services": [ - { - "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, - "name": "SVC:R1/200==R2/200", "service_type": 1, "service_status": {"service_status": 1}, - "service_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "service_constraints": [ - {"action": 1, "sla_capacity": {"capacity_gbps": 40.0}}, - {"action": 1, "sla_latency": {"e2e_latency_ms": 10.0}}, - {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.99}} - ], - "service_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 - }}}, - {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 - }}} - ]} - }, - { - "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, - "name": "SVC:R1/200==R3/200", "service_type": 1, "service_status": {"service_status": 1}, - "service_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "service_constraints": [ - {"action": 1, "sla_capacity": {"capacity_gbps": 50.0}}, - {"action": 1, "sla_latency": {"e2e_latency_ms": 8.0}}, - {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.9}} - ], - "service_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 - }}}, - {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 - }}} - ]} - }, - { - "service_id" : {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}}, - "name": "SVC:R2/200==R3/200", "service_type": 1, "service_status": {"service_status": 1}, - "service_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "service_constraints": [ - {"action": 1, "sla_capacity": {"capacity_gbps": 10.0}}, - {"action": 1, "sla_latency": {"e2e_latency_ms": 3.0}}, - {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.9999}} - ], - "service_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 - }}}, - {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 - }}} - ]} - } - ], - "slices": [ - { - "slice_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "slice_uuid": {"uuid": "SLC:R1-R2-R3"}}, - "name": "SLC:R1-R2-R3", - "slice_endpoint_ids": [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "slice_constraints": [ - {"action": 1, "sla_capacity": {"capacity_gbps": 40.0}}, - {"action": 1, "sla_latency": {"e2e_latency_ms": 10.0}}, - {"action": 1, "sla_availability": {"num_disjoint_paths": 1, "all_active": true, "availability": 99.99}} - ], - "slice_service_ids": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, - {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}} - ], - "slice_subslice_ids": [], - "slice_status": {"slice_status" : 1}, - "slice_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "/device[R1]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.1.1", "ipv4_prefix": 24 - }}}, - {"action": 1, "custom": {"resource_key": "/device[R2]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.2.1", "ipv4_prefix": 24 - }}}, - {"action": 1, "custom": {"resource_key": "/device[R3]/endpoint[200]/settings", "resource_value": { - "ipv4_address": "10.0.3.1", "ipv4_prefix": 24 - }}} - ]}, - "slice_owner": {"owner_uuid": {"uuid": "TFS"}, "owner_string": "TFS:SLC:R1-R2-R3"} - } - ], - "connections": [ - { - "connection_id": {"connection_uuid": {"uuid": "CON:R1/200==R2/200:1"}}, - "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R2/200"}}, - "path_hops_endpoint_ids" : [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "sub_service_ids": [], - "settings": { - "l3": {"src_ip_address": "10.0.1.10", "dst_ip_address": "10.0.2.10", "ttl": 20} - } - }, - { - "connection_id": {"connection_uuid": {"uuid": "CON:R1/200==R3/200:1"}}, - "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R1/200==R3/200"}}, - "path_hops_endpoint_ids" : [ - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "501"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "sub_service_ids": [], - "settings": { - "l3": {"src_ip_address": "10.0.1.10", "dst_ip_address": "10.0.3.10", "ttl": 20} - } - }, - { - "connection_id": {"connection_uuid": {"uuid": "CON:R2/200==R3/200:1"}}, - "service_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "service_uuid": {"uuid": "SVC:R2/200==R3/200"}}, - "path_hops_endpoint_ids" : [ - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "503"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "502"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - }, - { - "device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "200"}, - "topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}} - } - ], - "sub_service_ids": [], - "settings": { - "l3": {"src_ip_address": "10.0.2.10", "dst_ip_address": "10.0.3.10", "ttl": 20} - } - } - ] -} diff --git a/src/ztp_server/tests/data/topology-7router-emu-dummy.json b/src/ztp_server/tests/data/topology-7router-emu-dummy.json deleted file mode 100755 index 3bb622626..000000000 --- a/src/ztp_server/tests/data/topology-7router-emu-dummy.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "dummy_mode": true, - "contexts": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}} - ], - "topologies": [ - {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} - ], - "devices": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, - {"uuid": "1/3", "type": "copper"}, {"uuid": "2/1", "type": "copper"}, - {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"}, - {"uuid": "2/4", "type": "copper"}, {"uuid": "2/5", "type": "copper"}, - {"uuid": "2/6", "type": "copper"} - ]}}} - ]}} - ], - "links": [ - {"link_id": {"link_uuid": {"uuid": "R1==R2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R1==R6"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R1==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R2==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R2==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R4"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R4==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R4==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R4"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R6"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R6==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R6==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]} - ] -} diff --git a/src/ztp_server/tests/data/topology-7router-emu.json b/src/ztp_server/tests/data/topology-7router-emu.json deleted file mode 100755 index 4174f4fb4..000000000 --- a/src/ztp_server/tests/data/topology-7router-emu.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "contexts": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}} - ], - "topologies": [ - {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} - ], - "devices": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, {"uuid": "1/3", "type": "copper"}, - {"uuid": "1/4", "type": "copper"}, {"uuid": "1/5", "type": "copper"}, {"uuid": "1/6", "type": "copper"}, - {"uuid": "2/1", "type": "copper"}, {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"} - ]}}} - ]}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "device_type": "emu-packet-router", "device_drivers": [0], - "device_endpoints": [], "device_operational_status": 1, "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "1/1", "type": "copper"}, {"uuid": "1/2", "type": "copper"}, - {"uuid": "1/3", "type": "copper"}, {"uuid": "2/1", "type": "copper"}, - {"uuid": "2/2", "type": "copper"}, {"uuid": "2/3", "type": "copper"}, - {"uuid": "2/4", "type": "copper"}, {"uuid": "2/5", "type": "copper"}, - {"uuid": "2/6", "type": "copper"} - ]}}} - ]}} - ], - "links": [ - {"link_id": {"link_uuid": {"uuid": "R1==R2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R1==R6"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R1==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R2==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R2==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R2"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R2"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R4"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R3==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R4==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R4==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R4"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R4"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R6"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R5==R7"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R6==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/2"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R6==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R6"}}, "endpoint_uuid": {"uuid": "2/2"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/1"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R1"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/1"}}, - {"device_id": {"device_uuid": {"uuid": "R1"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R3"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/3"}}, - {"device_id": {"device_uuid": {"uuid": "R3"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "R7==R5"}}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "R7"}}, "endpoint_uuid": {"uuid": "2/5"}}, - {"device_id": {"device_uuid": {"uuid": "R5"}}, "endpoint_uuid": {"uuid": "2/3"}} - ]} - ] -} diff --git a/src/ztp_server/tests/data/topology-dummy.json b/src/ztp_server/tests/data/topology-dummy.json deleted file mode 100755 index f066051ee..000000000 --- a/src/ztp_server/tests/data/topology-dummy.json +++ /dev/null @@ -1,3134 +0,0 @@ -{ - "contexts": [ - { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "name": "admin", - "service_ids": [], - "slice_ids": [], - "topology_ids": [ - { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - ] - } - ], - "devices": [ - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - }, - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "500", - "type": "optical", - "uuid": "500" - }, - { - "name": "501", - "type": "optical", - "uuid": "501" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[mgmt]", - "resource_value": { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "optical", - "uuid": "500" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[501]", - "resource_value": { - "name": "501", - "type": "optical", - "uuid": "501" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "501" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "b72983bd-57d8-5cf8-8ec7-da9084382d7a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "mgmt", - "kpi_sample_types": [], - "name": "mgmt" - } - ], - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "10.0.30.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "500", - "type": "copper", - "uuid": "500" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "copper", - "uuid": "500" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "500" - } - ], - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "128.32.10.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "201", - "type": "copper", - "uuid": "201" - }, - { - "name": "500", - "type": "copper", - "uuid": "500" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[201]", - "resource_value": { - "name": "201", - "type": "copper", - "uuid": "201" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "copper", - "uuid": "500" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "endpoint_uuid": { - "uuid": "227b6bb2-dacf-5b3d-84e9-c1d0c107bcd8" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "201" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "endpoint_uuid": { - "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "endpoint_uuid": { - "uuid": "d8528b70-9215-59ed-851d-b9590ab0c94b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - } - ], - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "device_operational_status": 2, - "device_type": "emu-datacenter", - "name": "172.10.33.5" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - }, - { - "name": "500", - "type": "optical", - "uuid": "500" - }, - { - "name": "501", - "type": "optical", - "uuid": "501" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[mgmt]", - "resource_value": { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "optical", - "uuid": "500" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[501]", - "resource_value": { - "name": "501", - "type": "optical", - "uuid": "501" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "501" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "ede34dea-6b51-5787-88d2-553fe548f540" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "mgmt", - "kpi_sample_types": [], - "name": "mgmt" - } - ], - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "10.0.40.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "201", - "type": "copper", - "uuid": "201" - }, - { - "name": "500", - "type": "copper", - "uuid": "500" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[201]", - "resource_value": { - "name": "201", - "type": "copper", - "uuid": "201" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "copper", - "uuid": "500" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "201" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "c6435612-3aca-590f-89ba-e606f54df474" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - } - ], - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "device_operational_status": 2, - "device_type": "emu-optical-transponder", - "name": "128.32.33.5" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - }, - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "500", - "type": "optical", - "uuid": "500" - }, - { - "name": "501", - "type": "optical", - "uuid": "501" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[mgmt]", - "resource_value": { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "optical", - "uuid": "500" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[501]", - "resource_value": { - "name": "501", - "type": "optical", - "uuid": "501" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "59e1e30f-ea65-5e04-8a91-760a648a02c6" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "mgmt", - "kpi_sample_types": [], - "name": "mgmt" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "70cbb732-8149-59ee-939b-011828e4292b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "501" - } - ], - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "10.0.10.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - }, - { - "name": "500", - "type": "optical", - "uuid": "500" - }, - { - "name": "501", - "type": "optical", - "uuid": "501" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[mgmt]", - "resource_value": { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "optical", - "uuid": "500" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[501]", - "resource_value": { - "name": "501", - "type": "optical", - "uuid": "501" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "501" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "356378dd-952b-5032-912d-37fc21284b4c" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "optical", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "da826790-a4b0-5317-b30b-e1370918a644" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "mgmt", - "kpi_sample_types": [], - "name": "mgmt" - } - ], - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "10.0.20.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "eth1", - "type": "copper", - "uuid": "eth1" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[eth1]", - "resource_value": { - "name": "eth1", - "type": "copper", - "uuid": "eth1" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" - } - }, - "endpoint_uuid": { - "uuid": "0701f406-633f-53e7-a44d-c93384745df8" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "eth1" - } - ], - "device_id": { - "device_uuid": { - "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" - } - }, - "device_operational_status": 2, - "device_type": "emu-client", - "name": "128.32.20.5" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "200", - "type": "copper", - "uuid": "200" - }, - { - "name": "500", - "type": "copper", - "uuid": "500" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[200]", - "resource_value": { - "name": "200", - "type": "copper", - "uuid": "200" - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[500]", - "resource_value": { - "name": "500", - "type": "copper", - "uuid": "500" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "500" - }, - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "200" - } - ], - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "device_operational_status": 2, - "device_type": "emu-packet-router", - "name": "128.32.20.1" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "eth1", - "type": "copper", - "uuid": "eth1" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[eth1]", - "resource_value": { - "name": "eth1", - "type": "copper", - "uuid": "eth1" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" - } - }, - "endpoint_uuid": { - "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "copper", - "kpi_sample_types": [], - "name": "eth1" - } - ], - "device_id": { - "device_uuid": { - "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" - } - }, - "device_operational_status": 2, - "device_type": "emu-client", - "name": "128.32.10.5" - }, - { - "components": [], - "controller_id": {}, - "device_config": { - "config_rules": [ - { - "action": 1, - "custom": { - "resource_key": "_connect/address", - "resource_value": "127.0.0.1" - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/port", - "resource_value": 0 - } - }, - { - "action": 1, - "custom": { - "resource_key": "_connect/settings", - "resource_value": { - "endpoints": [ - { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - ] - } - } - }, - { - "action": 1, - "custom": { - "resource_key": "/endpoints/endpoint[mgmt]", - "resource_value": { - "name": "mgmt", - "type": "mgmt", - "uuid": "mgmt" - } - } - } - ] - }, - "device_drivers": [ - 0 - ], - "device_endpoints": [ - { - "endpoint_id": { - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "endpoint_uuid": { - "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - "endpoint_location": {}, - "endpoint_type": "mgmt", - "kpi_sample_types": [], - "name": "mgmt" - } - ], - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "device_operational_status": 2, - "device_type": "emu-open-line-system", - "name": "nce-t" - } - ], - "dummy_mode": true, - "links": [ - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "70cbb732-8149-59ee-939b-011828e4292b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "0b3d5943-c2bf-595f-a805-dc29c2be2f52" - } - }, - "name": "10.0.10.1-200" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "1490e70f-472c-5e4c-8280-21c48ed03477" - } - }, - "name": "10.0.40.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "c6435612-3aca-590f-89ba-e606f54df474" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "18ba8eb2-342b-5a73-aeae-7288ea9bb28b" - } - }, - "name": "128.32.10.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" - } - }, - "endpoint_uuid": { - "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "1901b0dc-1b5e-5fdf-b9ac-9168787464c1" - } - }, - "name": "128.32.10.1-200" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "9095f6af-6381-54fa-9a0e-b1ef5720d163" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "70cbb732-8149-59ee-939b-011828e4292b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "1afdae8b-a281-53aa-99c2-205afb8f4ee7" - } - }, - "name": "128.32.33.5-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "356378dd-952b-5032-912d-37fc21284b4c" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "30ca0f8f-b150-57f2-ae5e-8a6844944783" - } - }, - "name": "10.0.20.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "34c9c6c3-0dcf-54e5-ba67-da33eb2d3c1a" - } - }, - "name": "10.0.20.1-501" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "161ad889-3839-5dfb-a4a9-95a1de8c3ad5" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "356378dd-952b-5032-912d-37fc21284b4c" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "35801e61-45f3-564e-ad5c-09baf4aae906" - } - }, - "name": "10.0.30.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "endpoint_uuid": { - "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "36643dba-e8fa-5fb7-952d-dff313db957b" - } - }, - "name": "172.10.33.5-500" - }, - { - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "endpoint_uuid": { - "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "ede34dea-6b51-5787-88d2-553fe548f540" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "36856920-3387-5384-b1b1-dbc9e54da226" - } - }, - "name": "nce-t/mgmt==10.0.40.1/mgmt" - }, - { - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "endpoint_uuid": { - "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "b72983bd-57d8-5cf8-8ec7-da9084382d7a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "46ba12f9-dd17-5f2a-9558-e4611515a6b9" - } - }, - "name": "nce-t/mgmt==10.0.30.1/mgmt" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "4dfe28dd-ac28-53d5-b330-1707e350d772" - } - }, - "name": "10.0.30.1-501" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "644ab377-572c-53a4-8ab5-f5cf45591d88" - } - }, - "name": "128.32.20.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "c6435612-3aca-590f-89ba-e606f54df474" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "6fad7bc2-4ce5-5794-8bf0-ddd06cde20a6" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "661ac531-4309-58cc-b70e-2a79492c2488" - } - }, - "name": "128.32.33.5-200" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - "endpoint_uuid": { - "uuid": "387f7f12-3168-5c75-801e-f06c8afdbf88" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "852a3fd3-3f55-5e31-865d-c52984efb186" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "6a236e01-853c-51d0-8915-2d09b45923b0" - } - }, - "name": "128.32.33.5-201" - }, - { - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "endpoint_uuid": { - "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "da826790-a4b0-5317-b30b-e1370918a644" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "6c802ae7-59d1-55e7-9498-146c465bcab5" - } - }, - "name": "nce-t/mgmt==10.0.20.1/mgmt" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" - } - }, - "endpoint_uuid": { - "uuid": "0701f406-633f-53e7-a44d-c93384745df8" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "6fa77ad9-e4d7-5830-bf84-ab206eff613a" - } - }, - "name": "128.32.20.1-200" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "1e35cf03-d55d-5648-9cb6-fca37bfbf23a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - "endpoint_uuid": { - "uuid": "3d0c36bb-80dc-5bab-8a7d-c47cce8d474f" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "808b54e8-3d5a-5e03-a42e-d6c2a57cf6f3" - } - }, - "name": "10.0.30.1-200" - }, - { - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - }, - "endpoint_uuid": { - "uuid": "086906ec-fd3b-55e1-b9bb-5a9e5bb5daff" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "59e1e30f-ea65-5e04-8a91-760a648a02c6" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "85a18715-3ce0-57f9-8025-5634fe622a06" - } - }, - "name": "nce-t/mgmt==10.0.10.1/mgmt" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "75e62edc-a0f9-53f9-821b-023045db1551" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - "endpoint_uuid": { - "uuid": "859813e0-24c1-518e-ba77-44a4f392e321" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "8e8d1a2b-beae-5624-8826-9235bd73a3a8" - } - }, - "name": "10.0.40.1-501" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "a2579e11-2e86-5e53-a235-3dd6ba92bb9a" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - "endpoint_uuid": { - "uuid": "b5efeee2-5062-5d8f-ae06-f901fed7a7d7" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "e9c5b57e-de50-509c-9f5a-0107ff233703" - } - }, - "name": "10.0.10.1-500" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" - } - }, - "endpoint_uuid": { - "uuid": "0701f406-633f-53e7-a44d-c93384745df8" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - "endpoint_uuid": { - "uuid": "bbbec9f8-618a-591a-bc3e-c188ee31008e" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "effca6e0-acf3-5c02-ba9a-d82c17a3f006" - } - }, - "name": "128.32.20.5-eth1" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - "endpoint_uuid": { - "uuid": "ad2e136d-a981-5c9a-8427-07352ac03351" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - "endpoint_uuid": { - "uuid": "23c04144-5ad3-5419-8b96-cf4eb329ca96" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "f45b4432-4ae2-5719-b4e8-a5e8baa1ccd2" - } - }, - "name": "10.0.10.1-501" - }, - { - "attributes": { - "total_capacity_gbps": 10.0, - "used_capacity_gbps": 0.0 - }, - "link_endpoint_ids": [ - { - "device_id": { - "device_uuid": { - "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" - } - }, - "endpoint_uuid": { - "uuid": "16d56d61-63cd-5704-9d2a-5515e633b64b" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - }, - { - "device_id": { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - "endpoint_uuid": { - "uuid": "207ef8a3-18fd-5a63-ac24-4a1cc6af3e92" - }, - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ], - "link_id": { - "link_uuid": { - "uuid": "fd005f34-39f5-550e-b2c0-c6e6f8c16325" - } - }, - "name": "128.32.10.5-eth1" - } - ], - "topologies": [ - { - "device_ids": [ - { - "device_uuid": { - "uuid": "0392c251-b5d3-526b-8f3b-a3d4137829fa" - } - }, - { - "device_uuid": { - "uuid": "118295c8-318a-52ec-a394-529fc4b70f2f" - } - }, - { - "device_uuid": { - "uuid": "4c367472-545c-544d-935d-829f0a0e1c72" - } - }, - { - "device_uuid": { - "uuid": "4f2234d0-a9b8-5a86-b1dd-9139d86e3925" - } - }, - { - "device_uuid": { - "uuid": "97d846b3-d0ba-5b4d-b12e-a9365eda205c" - } - }, - { - "device_uuid": { - "uuid": "bf749ed2-fcc4-5bfc-9116-4ea18b722069" - } - }, - { - "device_uuid": { - "uuid": "cf9c4a78-f019-5023-aa0f-4fdba909473b" - } - }, - { - "device_uuid": { - "uuid": "df4be2f2-a4a2-587d-b3ed-61a53cae3aa6" - } - }, - { - "device_uuid": { - "uuid": "e15007fb-aae4-50d6-b686-b6dc4ae504e2" - } - }, - { - "device_uuid": { - "uuid": "f3840f4a-6ea2-551a-8afd-0f3faa8ac1e6" - } - }, - { - "device_uuid": { - "uuid": "fe0dc2e8-b9ce-555f-8f28-a1a4468fabde" - } - } - ], - "link_ids": [ - { - "link_uuid": { - "uuid": "0b3d5943-c2bf-595f-a805-dc29c2be2f52" - } - }, - { - "link_uuid": { - "uuid": "1490e70f-472c-5e4c-8280-21c48ed03477" - } - }, - { - "link_uuid": { - "uuid": "18ba8eb2-342b-5a73-aeae-7288ea9bb28b" - } - }, - { - "link_uuid": { - "uuid": "1901b0dc-1b5e-5fdf-b9ac-9168787464c1" - } - }, - { - "link_uuid": { - "uuid": "1afdae8b-a281-53aa-99c2-205afb8f4ee7" - } - }, - { - "link_uuid": { - "uuid": "30ca0f8f-b150-57f2-ae5e-8a6844944783" - } - }, - { - "link_uuid": { - "uuid": "34c9c6c3-0dcf-54e5-ba67-da33eb2d3c1a" - } - }, - { - "link_uuid": { - "uuid": "35801e61-45f3-564e-ad5c-09baf4aae906" - } - }, - { - "link_uuid": { - "uuid": "36643dba-e8fa-5fb7-952d-dff313db957b" - } - }, - { - "link_uuid": { - "uuid": "36856920-3387-5384-b1b1-dbc9e54da226" - } - }, - { - "link_uuid": { - "uuid": "46ba12f9-dd17-5f2a-9558-e4611515a6b9" - } - }, - { - "link_uuid": { - "uuid": "4dfe28dd-ac28-53d5-b330-1707e350d772" - } - }, - { - "link_uuid": { - "uuid": "644ab377-572c-53a4-8ab5-f5cf45591d88" - } - }, - { - "link_uuid": { - "uuid": "661ac531-4309-58cc-b70e-2a79492c2488" - } - }, - { - "link_uuid": { - "uuid": "6a236e01-853c-51d0-8915-2d09b45923b0" - } - }, - { - "link_uuid": { - "uuid": "6c802ae7-59d1-55e7-9498-146c465bcab5" - } - }, - { - "link_uuid": { - "uuid": "6fa77ad9-e4d7-5830-bf84-ab206eff613a" - } - }, - { - "link_uuid": { - "uuid": "808b54e8-3d5a-5e03-a42e-d6c2a57cf6f3" - } - }, - { - "link_uuid": { - "uuid": "85a18715-3ce0-57f9-8025-5634fe622a06" - } - }, - { - "link_uuid": { - "uuid": "8e8d1a2b-beae-5624-8826-9235bd73a3a8" - } - }, - { - "link_uuid": { - "uuid": "e9c5b57e-de50-509c-9f5a-0107ff233703" - } - }, - { - "link_uuid": { - "uuid": "effca6e0-acf3-5c02-ba9a-d82c17a3f006" - } - }, - { - "link_uuid": { - "uuid": "f45b4432-4ae2-5719-b4e8-a5e8baa1ccd2" - } - }, - { - "link_uuid": { - "uuid": "fd005f34-39f5-550e-b2c0-c6e6f8c16325" - } - } - ], - "name": "admin", - "topology_id": { - "context_id": { - "context_uuid": { - "uuid": "admin" - } - }, - "topology_uuid": { - "uuid": "admin" - } - } - } - ] -} \ No newline at end of file diff --git a/src/ztp_server/tests/data/topology-real.json b/src/ztp_server/tests/data/topology-real.json deleted file mode 100755 index bb158d920..000000000 --- a/src/ztp_server/tests/data/topology-real.json +++ /dev/null @@ -1,259 +0,0 @@ -{ - "contexts": [ - {"context_id": {"context_uuid": {"uuid": "admin"}}} - ], - - "topologies": [ - {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} - ], - - "devices": [ - {"device_id": {"device_uuid": {"uuid": "nce-t"}}, "name": "nce-t", "device_type": "emu-open-line-system", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "mgmt", "name": "mgmt", "type": "mgmt"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "name": "10.0.10.1", "device_type": "emu-packet-router", - "controller_id": {"device_uuid": {"uuid": "nce-t"}}, - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, - {"uuid": "200", "name": "200", "type": "copper" }, - {"uuid": "500", "name": "500", "type": "optical"}, - {"uuid": "501", "name": "501", "type": "optical"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "name": "10.0.20.1", "device_type": "emu-packet-router", - "controller_id": {"device_uuid": {"uuid": "nce-t"}}, - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, - {"uuid": "500", "name": "500", "type": "optical"}, - {"uuid": "501", "name": "501", "type": "optical"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "name": "10.0.30.1", "device_type": "emu-packet-router", - "controller_id": {"device_uuid": {"uuid": "nce-t"}}, - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, - {"uuid": "200", "name": "200", "type": "copper" }, - {"uuid": "500", "name": "500", "type": "optical"}, - {"uuid": "501", "name": "501", "type": "optical"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "name": "10.0.40.1", "device_type": "emu-packet-router", - "controller_id": {"device_uuid": {"uuid": "nce-t"}}, - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "mgmt", "name": "mgmt", "type": "mgmt" }, - {"uuid": "500", "name": "500", "type": "optical"}, - {"uuid": "501", "name": "501", "type": "optical"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "name": "128.32.10.5", "device_type": "emu-client", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "eth1", "name": "eth1", "type": "copper"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "name": "128.32.10.1", "device_type": "emu-packet-router", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "500", "name": "500", "type": "copper"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "name": "128.32.20.5", "device_type": "emu-client", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "eth1", "name": "eth1", "type": "copper"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "name": "128.32.20.1", "device_type": "emu-packet-router", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "500", "name": "500", "type": "copper"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "name": "128.32.33.5", "device_type": "emu-optical-transponder", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "201", "name": "201", "type": "copper"}, - {"uuid": "500", "name": "500", "type": "copper"} - ]}}} - ]}}, - - {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "name": "172.10.33.5", "device_type": "emu-datacenter", - "device_operational_status": 1, "device_drivers": [0], "device_config": {"config_rules": [ - {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, - {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "0"}}, - {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ - {"uuid": "200", "name": "200", "type": "copper"}, - {"uuid": "201", "name": "201", "type": "copper"}, - {"uuid": "500", "name": "500", "type": "copper"} - ]}}} - ]}} - ], - - "links": [ - {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.10.1/mgmt"}}, "name": "nce-t/mgmt==10.0.10.1/mgmt", "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.20.1/mgmt"}}, "name": "nce-t/mgmt==10.0.20.1/mgmt", "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.30.1/mgmt"}}, "name": "nce-t/mgmt==10.0.30.1/mgmt", "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "nce-t/mgmt==10.0.40.1/mgmt"}}, "name": "nce-t/mgmt==10.0.40.1/mgmt", "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "nce-t" }}, "endpoint_uuid": {"uuid": "mgmt"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "mgmt"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "10.0.10.1-501"}}, "name": "10.0.10.1-501", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "501"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "501"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.20.1-501"}}, "name": "10.0.20.1-501", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "501"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "501"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "10.0.10.1-500"}}, "name": "10.0.10.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.40.1-500"}}, "name": "10.0.40.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "10.0.20.1-500"}}, "name": "10.0.20.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.30.1-500"}}, "name": "10.0.30.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.20.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "10.0.40.1-501"}}, "name": "10.0.40.1-501", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "501"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "501"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.30.1-501"}}, "name": "10.0.30.1-501", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "501"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.40.1"}}, "endpoint_uuid": {"uuid": "501"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "128.32.10.5-eth1"}}, "name": "128.32.10.5-eth1", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "endpoint_uuid": {"uuid": "eth1"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "200" }} - ]}, - {"link_id": {"link_uuid": {"uuid": "128.32.10.1-200"}}, "name": "128.32.10.1-200", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "200" }}, - {"device_id": {"device_uuid": {"uuid": "128.32.10.5"}}, "endpoint_uuid": {"uuid": "eth1"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "128.32.10.1-500"}}, "name": "128.32.10.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "200"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "128.32.33.5-200"}}, "name": "128.32.33.5-200", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "200"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.10.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "128.32.20.5-eth1"}}, "name": "128.32.20.5-eth1", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "endpoint_uuid": {"uuid": "eth1"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "200" }} - ]}, - {"link_id": {"link_uuid": {"uuid": "128.32.20.1-200"}}, "name": "128.32.20.1-200", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "200" }}, - {"device_id": {"device_uuid": {"uuid": "128.32.20.5"}}, "endpoint_uuid": {"uuid": "eth1"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "128.32.20.1-500"}}, "name": "128.32.20.1-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "201"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "128.32.33.5-201"}}, "name": "128.32.33.5-201", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "201"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.20.1"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "128.32.33.5-500"}}, "name": "128.32.33.5-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "200"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.10.1-200"}}, "name": "10.0.10.1-200", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.10.1"}}, "endpoint_uuid": {"uuid": "200"}}, - {"device_id": {"device_uuid": {"uuid": "128.32.33.5"}}, "endpoint_uuid": {"uuid": "500"}} - ]}, - - {"link_id": {"link_uuid": {"uuid": "172.10.33.5-500"}}, "name": "172.10.33.5-500", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "endpoint_uuid": {"uuid": "500"}}, - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "200"}} - ]}, - {"link_id": {"link_uuid": {"uuid": "10.0.30.1-200"}}, "name": "10.0.30.1-200", - "attributes": {"total_capacity_gbps": 10, "used_capacity_gbps": 0}, "link_endpoint_ids": [ - {"device_id": {"device_uuid": {"uuid": "10.0.30.1"}}, "endpoint_uuid": {"uuid": "200"}}, - {"device_id": {"device_uuid": {"uuid": "172.10.33.5"}}, "endpoint_uuid": {"uuid": "500"}} - ]} - ] -} diff --git a/src/ztp_server/tests/ietf_acl_client.py b/src/ztp_server/tests/ietf_acl_client.py deleted file mode 100755 index 20887f1a8..000000000 --- a/src/ztp_server/tests/ietf_acl_client.py +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 2022-2024 ETSI 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 requests, time -from typing import Optional -from requests.auth import HTTPBasicAuth - -BASE_URL = '{:s}://{:s}:{:d}/restconf/data' -ACLS_URL = '{:s}/device={:s}/ietf-access-control-list:acls' -ACL_URL = '{:s}/device={:s}/ietf-access-control-list:acl={:s}' - -CSG1_DEVICE_UUID = '118295c8-318a-52ec-a394-529fc4b70f2f' # router: 128.32.10.1 -ACL_NAME = 'sample-ipv4-acl' -ACL_RULE = {"ietf-access-control-list:acls": { - "acl": [{ - "name": "sample-ipv4-acl", "type": "ipv4-acl-type", - "aces": {"ace": [{ - "name": "rule1", - "matches": { - "ipv4": { - "source-ipv4-network": "128.32.10.6/24", - "destination-ipv4-network": "172.10.33.0/24", - "dscp": 18 - }, - "tcp": { - "source-port": {"operator": "eq", "port": 1444}, - "destination-port": {"operator": "eq", "port": 1333}, - "flags": "syn" - } - }, - "actions": {"forwarding": "drop"} - }]} - }], - "attachment-points": {"interface": [{ - "interface-id": "200", - "ingress": {"acl-sets": {"acl-set": [{"name": "sample-ipv4-acl"}]}} - }] -}}} - -class TfsIetfAclClient: - def __init__( - self, host : str = 'localhost', port : int = 80, schema : str = 'http', - username : Optional[str] = 'admin', password : Optional[str] = 'admin', - timeout : int = 10, allow_redirects : bool = True, verify : bool = False - ) -> None: - self._base_url = BASE_URL.format(schema, host, port) - auth = HTTPBasicAuth(username, password) if username is not None and password is not None else None - self._settings = dict(auth=auth, timeout=timeout, allow_redirects=allow_redirects, verify=verify) - - def post(self, device_uuid : str, ietf_acl_data : dict) -> str: - request_url = ACLS_URL.format(self._base_url, device_uuid) - reply = requests.post(request_url, json=ietf_acl_data, **(self._settings)) - return reply.text - - def get(self, device_uuid : str, acl_name : str) -> str: - request_url = ACL_URL.format(self._base_url, device_uuid, acl_name) - reply = requests.get(request_url, **(self._settings)) - return reply.text - - def delete(self, device_uuid : str, acl_name : str) -> str: - request_url = ACL_URL.format(self._base_url, device_uuid, acl_name) - reply = requests.delete(request_url, **(self._settings)) - return reply.text - -def main(): - client = TfsIetfAclClient() - print(f'ACL rule: {ACL_RULE}') - post_response = client.post(CSG1_DEVICE_UUID, ACL_RULE) - print(f'post response: {post_response}') - time.sleep(.5) - get_response = client.get(CSG1_DEVICE_UUID, ACL_NAME) - print(f'get response: {get_response}') - time.sleep(.5) - delete_response = client.delete(CSG1_DEVICE_UUID, ACL_NAME) - print(f'delete response: {delete_response}') - -if __name__ == '__main__': - main() diff --git a/src/ztp_server/tests/test_etsi_bwm.py b/src/ztp_server/tests/test_etsi_bwm.py deleted file mode 100755 index 9400de00f..000000000 --- a/src/ztp_server/tests/test_etsi_bwm.py +++ /dev/null @@ -1,240 +0,0 @@ -# Copyright 2022-2024 ETSI 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 deepdiff, json, logging, pytest -from typing import Dict -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME -from common.proto.context_pb2 import ContextId, TopologyId -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -from common.tools.object_factory.Context import json_context_id -from common.tools.object_factory.Topology import json_topology_id -from context.client.ContextClient import ContextClient -from nbi.service.rest_server import RestServer -from .PrepareTestScenario import ( # pylint: disable=unused-import - # be careful, order of symbols is important here! - do_rest_delete_request, do_rest_get_request, do_rest_patch_request, do_rest_post_request, do_rest_put_request, - mock_service, nbi_service_rest, context_client -) - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) -ADMIN_TOPOLOGY_ID = TopologyId(**json_topology_id(DEFAULT_TOPOLOGY_NAME, context_id=JSON_ADMIN_CONTEXT_ID)) -BASE_URL = '/restconf/bwm/v1' - -@pytest.fixture(scope='session') -def storage() -> Dict: - yield dict() - -#def compare_dicts(dict1, dict2): -# # Function to recursively sort dictionaries -# def recursively_sort(d): -# if isinstance(d, dict): -# return {k: recursively_sort(v) for k, v in sorted(d.items())} -# if isinstance(d, list): -# return [recursively_sort(item) for item in d] -# return d -# -# # Sort dictionaries to ignore the order of fields -# sorted_dict1 = recursively_sort(dict1) -# sorted_dict2 = recursively_sort(dict2) -# -# if sorted_dict1 != sorted_dict2: -# LOGGER.error(sorted_dict1) -# LOGGER.error(sorted_dict2) -# -# return sorted_dict1 != sorted_dict2 - -def check_timestamps(bwm_service): - assert 'timeStamp' in bwm_service - assert 'seconds' in bwm_service['timeStamp'] - assert 'nanoseconds' in bwm_service['timeStamp'] - -def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - validate_empty_scenario(context_client) - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 - assert len(response.service_ids ) == 0 - assert len(response.slice_ids ) == 0 - -def test_get_allocations_empty(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - URL = BASE_URL + '/bw_allocations' - retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) - assert len(retrieved_data) == 0 - -def test_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - URL = BASE_URL + '/bw_allocations' - data = { - "appInsId" : "service_uuid_01", - "allocationDirection" : "00", - "fixedAllocation" : "123000.0", - "fixedBWPriority" : "SEE_DESCRIPTION", - "requestType" : 0, - "sessionFilter" : [{ - "sourceIp" : "192.168.1.2", - "sourcePort" : ["a"], - "protocol" : "string", - "dstAddress" : "192.168.3.2", - "dstPort" : ["b"], - }] - } - retrieved_data = do_rest_post_request(URL, body=data, logger=LOGGER, expected_status_codes={200}) - LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) - storage['service_uuid_01'] = 'service_uuid_01' - - -def test_get_allocations(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - assert 'service_uuid_01' in storage - URL = BASE_URL + '/bw_allocations' - retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) - assert len(retrieved_data) == 1 - good_result = [ - { - "appInsId" : "service_uuid_01", - "fixedAllocation" : "123000.0", - "allocationDirection" : "00", - "fixedBWPriority" : "SEE_DESCRIPTION", - "requestType" : "0", - "sessionFilter" : [{ - "sourceIp" : "192.168.1.2", - "sourcePort" : ["a"], - "protocol" : "string", - "dstAddress" : "192.168.3.2", - "dstPort" : ["b"], - }], - } - ] - check_timestamps(retrieved_data[0]) - del retrieved_data[0]['timeStamp'] - diff_data = deepdiff.DeepDiff(good_result, retrieved_data) - LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) - assert len(diff_data) == 0 - - -def test_get_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - assert 'service_uuid_01' in storage - URL = BASE_URL + '/bw_allocations/service_uuid_01' - retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) - good_result = { - "appInsId" : "service_uuid_01", - "fixedAllocation" : "123000.0", - "allocationDirection": "00", - "fixedBWPriority" : "SEE_DESCRIPTION", - "requestType" : "0", - "sessionFilter" : [{ - "sourceIp" : "192.168.1.2", - "sourcePort" : ["a"], - "protocol" : "string", - "dstAddress" : "192.168.3.2", - "dstPort" : ["b"], - }] - } - check_timestamps(retrieved_data) - del retrieved_data['timeStamp'] - diff_data = deepdiff.DeepDiff(good_result, retrieved_data) - LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) - assert len(diff_data) == 0 - - -def test_put_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - assert 'service_uuid_01' in storage - URL = BASE_URL + '/bw_allocations/service_uuid_01' - changed_allocation = { - "appInsId" : "service_uuid_01", - "fixedAllocation" : "200.0", - "allocationDirection": "00", - "fixedBWPriority" : "NOPRIORITY", - "requestType" : "0", - "sessionFilter" : [{ - "sourceIp" : "192.168.1.2", - "sourcePort" : ["a"], - "protocol" : "string", - "dstAddress" : "192.168.3.2", - "dstPort" : ["b"], - }] - } - retrieved_data = do_rest_put_request(URL, body=json.dumps(changed_allocation), logger=LOGGER, expected_status_codes={200}) - check_timestamps(retrieved_data) - del retrieved_data['timeStamp'] - diff_data = deepdiff.DeepDiff(changed_allocation, retrieved_data) - LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) - assert len(diff_data) == 0 - - -def test_patch_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - assert 'service_uuid_01' in storage - URL = BASE_URL + '/bw_allocations/service_uuid_01' - difference = { - "fixedBWPriority":"FULLPRIORITY", - } - changed_allocation = { - "appInsId" : "service_uuid_01", - "fixedAllocation" : "200.0", - "allocationDirection": "00", - "fixedBWPriority" : "FULLPRIORITY", - "requestType" : "0", - "sessionFilter" : [{ - "sourceIp" : "192.168.1.2", - "sourcePort" : ["a"], - "protocol" : "string", - "dstAddress" : "192.168.3.2", - "dstPort" : ["b"], - }] - } - retrieved_data = do_rest_patch_request(URL, body=difference, logger=LOGGER, expected_status_codes={200}) - check_timestamps(retrieved_data) - del retrieved_data['timeStamp'] - diff_data = deepdiff.DeepDiff(changed_allocation, retrieved_data) - LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) - assert len(diff_data) == 0 - - -def test_delete_allocation(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - assert 'service_uuid_01' in storage - URL = BASE_URL + '/bw_allocations/service_uuid_01' - do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={200}) - - -def test_get_allocations_empty_final(nbi_service_rest : RestServer, storage : Dict): # pylint: disable=redefined-outer-name, unused-argument - URL = BASE_URL + '/bw_allocations' - retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - LOGGER.debug('retrieved_data={:s}'.format(json.dumps(retrieved_data, sort_keys=True))) - assert len(retrieved_data) == 0 - - -def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.topology_ids) == 1 - 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() - descriptor_loader.unload() - validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_l2vpn.py b/src/ztp_server/tests/test_ietf_l2vpn.py deleted file mode 100755 index 7bed8ff5d..000000000 --- a/src/ztp_server/tests/test_ietf_l2vpn.py +++ /dev/null @@ -1,75 +0,0 @@ -# Copyright 2022-2024 ETSI 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 logging -from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -from common.tools.object_factory.Context import json_context_id -from context.client.ContextClient import ContextClient -from tests.tools.mock_osm.MockOSM import MockOSM -from .Constants import SERVICE_CONNECTION_POINTS_1, SERVICE_CONNECTION_POINTS_2, SERVICE_TYPE -from .PrepareTestScenario import ( # pylint: disable=unused-import - # be careful, order of symbols is important here! - mock_service, nbi_service_rest, osm_wim, context_client -) - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -DESCRIPTOR_FILE = 'nbi/tests/data/topology-7router-emu-dummy.json' - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) - -def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - validate_empty_scenario(context_client) - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 - assert len(response.service_ids ) == 0 - assert len(response.slice_ids ) == 0 - -def test_create_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name - osm_wim.create_connectivity_service(SERVICE_TYPE, SERVICE_CONNECTION_POINTS_1) - -def test_get_service_status(osm_wim : MockOSM): # pylint: disable=redefined-outer-name - service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service - osm_wim.get_connectivity_service_status(service_uuid) - -def test_edit_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name - service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service - osm_wim.edit_connectivity_service(service_uuid, SERVICE_CONNECTION_POINTS_2) - -def test_delete_service(osm_wim : MockOSM): # pylint: disable=redefined-outer-name - service_uuid = list(osm_wim.conn_info.keys())[0] # this test adds a single service - osm_wim.delete_connectivity_service(service_uuid) - -def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.topology_ids) == 1 - 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() - descriptor_loader.unload() - validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_l3vpn.py b/src/ztp_server/tests/test_ietf_l3vpn.py deleted file mode 100755 index 0f214661f..000000000 --- a/src/ztp_server/tests/test_ietf_l3vpn.py +++ /dev/null @@ -1,113 +0,0 @@ -# Copyright 2022-2024 ETSI 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, pytest -from typing import Dict -from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import ( - DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -) -from common.tools.object_factory.Context import json_context_id -from context.client.ContextClient import ContextClient -from nbi.service.rest_server.RestServer import RestServer -from .PrepareTestScenario import ( # pylint: disable=unused-import - # be careful, order of symbols is important here! - do_rest_delete_request, do_rest_get_request, do_rest_post_request, - mock_service, nbi_service_rest, osm_wim, context_client -) - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' -SVC1_DATA_FILE = 'nbi/tests/data/ietf_l3vpn_req_svc1.json' -SVC2_DATA_FILE = 'nbi/tests/data/ietf_l3vpn_req_svc2.json' - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) - -@pytest.fixture(scope='session') -def storage() -> Dict: - yield dict() - -def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - validate_empty_scenario(context_client) - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 - assert len(response.service_ids ) == 0 - assert len(response.slice_ids ) == 0 - -# pylint: disable=redefined-outer-name, unused-argument -def test_create_svc1(nbi_service_rest : RestServer, storage : Dict): - with open(SVC1_DATA_FILE, 'r', encoding='UTF-8') as f: - svc1_data = json.load(f) - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' - do_rest_post_request(URL, body=svc1_data, logger=LOGGER, expected_status_codes={201}) - storage['svc1-uuid'] = svc1_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] - -# pylint: disable=redefined-outer-name, unused-argument -def test_create_svc2(nbi_service_rest : RestServer, storage : Dict): - with open(SVC2_DATA_FILE, 'r', encoding='UTF-8') as f: - svc2_data = json.load(f) - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services' - do_rest_post_request(URL, body=svc2_data, logger=LOGGER, expected_status_codes={201}) - storage['svc2-uuid'] = svc2_data['ietf-l3vpn-svc:l3vpn-svc']['vpn-services']['vpn-service'][0]['vpn-id'] - -# pylint: disable=redefined-outer-name, unused-argument -def test_get_state_svc1(nbi_service_rest : RestServer, storage : Dict): - assert 'svc1-uuid' in storage - service_uuid = storage['svc1-uuid'] - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) - do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - -# pylint: disable=redefined-outer-name, unused-argument -def test_get_state_svc2(nbi_service_rest : RestServer, storage : Dict): - assert 'svc2-uuid' in storage - service_uuid = storage['svc2-uuid'] - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) - do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - -# pylint: disable=redefined-outer-name, unused-argument -def test_delete_svc1(nbi_service_rest : RestServer, storage : Dict): - assert 'svc1-uuid' in storage - service_uuid = storage['svc1-uuid'] - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) - do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={204}) - -# pylint: disable=redefined-outer-name, unused-argument -def test_delete_svc2(nbi_service_rest : RestServer, storage : Dict): - assert 'svc2-uuid' in storage - service_uuid = storage['svc2-uuid'] - URL = '/restconf/data/ietf-l3vpn-svc:l3vpn-svc/vpn-services/vpn-service={:s}/'.format(service_uuid) - do_rest_delete_request(URL, logger=LOGGER, expected_status_codes={204}) - -def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.topology_ids) == 1 - 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() - descriptor_loader.unload() - validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_ietf_network.py b/src/ztp_server/tests/test_ietf_network.py deleted file mode 100755 index 68337d0a8..000000000 --- a/src/ztp_server/tests/test_ietf_network.py +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright 2022-2024 ETSI 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 deepdiff, json, logging, operator, os -from typing import Dict -from common.Constants import DEFAULT_CONTEXT_NAME -from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import ( - DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -) -from common.tools.object_factory.Context import json_context_id -from context.client.ContextClient import ContextClient -from nbi.service.rest_server import RestServer - -# Explicitly state NBI to use PyangBind Renderer for this test -os.environ['IETF_NETWORK_RENDERER'] = 'PYANGBIND' - -from .PrepareTestScenario import ( # pylint: disable=unused-import - # be careful, order of symbols is important here! - do_rest_get_request, mock_service, nbi_service_rest, osm_wim, context_client -) - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -DESCRIPTOR_FILE = 'nbi/tests/data/topology-dummy.json' -TARGET_DATA_FILE = 'nbi/tests/data/test-ietf-network.json' - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) - -def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - validate_empty_scenario(context_client) - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 - assert len(response.service_ids ) == 0 - assert len(response.slice_ids ) == 0 - -def sort_data(data : Dict) -> None: - if 'ietf-network:networks' not in data: return - if 'network' not in data['ietf-network:networks']: return - data['ietf-network:networks']['network'] = sorted( - data['ietf-network:networks']['network'], - key=operator.itemgetter('network-id') - ) - for network in data['ietf-network:networks']['network']: - if 'node' in network: - network['node'] = sorted( - network['node'], - key=operator.itemgetter('node-id') - ) - - for node in network['node']: - if 'ietf-network-topology:termination-point' in node: - node['ietf-network-topology:termination-point'] = sorted( - node['ietf-network-topology:termination-point'], - key=operator.itemgetter('tp-id') - ) - - if 'ietf-network-topology:link' in network: - network['ietf-network-topology:link'] = sorted( - network['ietf-network-topology:link'], - key=operator.itemgetter('link-id') - ) - -def test_rest_get_networks(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - with open(TARGET_DATA_FILE, 'r', encoding='UTF-8') as f: - target_data = json.load(f) - URL = '/restconf/data/ietf-network:networks' - retrieved_data = do_rest_get_request(URL, logger=LOGGER, expected_status_codes={200}) - sort_data(retrieved_data) - sort_data(target_data) - diff_data = deepdiff.DeepDiff(target_data, retrieved_data) - LOGGER.error('Differences:\n{:s}'.format(str(diff_data.pretty()))) - assert len(diff_data) == 0 - -def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.topology_ids) == 1 - 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() - descriptor_loader.unload() - validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_slice.py b/src/ztp_server/tests/test_slice.py deleted file mode 100755 index fe112e6fc..000000000 --- a/src/ztp_server/tests/test_slice.py +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright 2022-2024 ETSI 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, random, uuid -from typing import Dict, Tuple -from nbi.service.rest_server.nbi_plugins.ietf_network_slice.bindings.network_slice_services import ( - NetworkSliceServices -) - -# R1 emulated devices -# Port 13-0 is Optical -# Port 13-1 is Copper -R1_UUID = "ed2388eb-5fb9-5888-a4f4-160267d3e19b" -R1_PORT_13_0_UUID_OPTICAL = "20440915-1a6c-5e7b-a80f-b0e0e51f066d" -R1_PORT_13_1_UUID_COPPER = "ff900d5d-2ac0-576c-9628-a2d016681f9d" - -# R2 emulated devices -# Port 13-0 is Optical -# Port 13-1 is Copper -R2_UUID = "49ce0312-1274-523b-97b8-24d0eca2d72d" -R2_PORT_13_0_UUID_OPTICAL = "214618cb-b63b-5e66-84c2-45c1c016e5f0" -R2_PORT_13_1_UUID_COPPER = "4e0f7fb4-5d22-56ad-a00e-20bffb4860f9" - -# R3 emulated devices -# Port 13-0 is Optical -# Port 13-1 is Copper -R3_UUID = "3bc8e994-a3b9-5f60-9c77-6608b1d08313" -R3_PORT_13_0_UUID_OPTICAL = "da5196f5-d651-5def-ada6-50ed6430279d" -R3_PORT_13_1_UUID_COPPER = "43d221fa-5701-5740-a129-502131f5bda2" - -# R4 emulated devices -# Port 13-0 is Optical -# Port 13-1 is Copper -R4_UUID = "b43e6361-2573-509d-9a88-1793e751b10d" -R4_PORT_13_0_UUID_OPTICAL = "241b74a7-8677-595c-ad65-cc9093c1e341" -R4_PORT_13_1_UUID_COPPER = "c57abf46-caaf-5954-90cc-1fec0a69330e" - -node_dict = {R1_PORT_13_1_UUID_COPPER: R1_UUID, - R2_PORT_13_1_UUID_COPPER: R2_UUID, - R3_PORT_13_1_UUID_COPPER: R3_UUID, - R4_PORT_13_1_UUID_COPPER: R4_UUID} -list_endpoints = [R1_PORT_13_1_UUID_COPPER, - R2_PORT_13_1_UUID_COPPER, - R3_PORT_13_1_UUID_COPPER, - R4_PORT_13_1_UUID_COPPER] - -list_availability= [99, 99.9, 99.99, 99.999, 99.9999] -list_bw = [10, 40, 50, 100, 150, 200, 400] -list_owner = ["Telefonica", "CTTC", "Telenor", "ADVA", "Ubitech", "ATOS"] - -URL_POST = "/restconf/data/ietf-network-slice-service:ietf-nss/network-slice-services" -URL_DELETE = "/restconf/data/ietf-network-slice-service:ietf-nss/network-slice-services/slice-service=" - -def generate_request(seed: str) -> Tuple[Dict, str]: - - ns = NetworkSliceServices() - - # Slice 1 - suuid = str(uuid.uuid5(uuid.NAMESPACE_DNS, str(seed))) - slice1 = ns.slice_service[suuid] - slice1.service_description = "Test slice for OFC 2023 demo" - slice1.status().admin_status().status = "Planned" # TODO not yet mapped - - # SDPS: R1 optical to R3 optical - sdps1 = slice1.sdps().sdp - while True: - ep1_uuid = random.choice(list_endpoints) - ep2_uuid = random.choice(list_endpoints) - if ep1_uuid != ep2_uuid: - break - - sdps1[ep1_uuid].node_id = node_dict.get(ep1_uuid) - sdps1[ep2_uuid].node_id = node_dict.get(ep2_uuid) - - # Connectivity group: Connection construct and 2 sla constrains: - # - Bandwidth - # - Availability - cg_uuid = str(uuid.uuid4()) - cg = slice1.connection_groups().connection_group - cg1 = cg[cg_uuid] - - cc1 = cg1.connectivity_construct[0] - cc1.cc_id = 5 - p2p = cc1.connectivity_construct_type.p2p() - p2p.p2p_sender_sdp = ep1_uuid - p2p.p2p_receiver_sdp = ep2_uuid - - slo_custom = cc1.slo_sle_policy.custom() - metric_bounds = slo_custom.service_slo_sle_policy().metric_bounds().metric_bound - - # SLO Bandwidth - slo_bandwidth = metric_bounds["service-slo-two-way-bandwidth"] - slo_bandwidth.value_description = "Guaranteed bandwidth" - slo_bandwidth.bound = int(random.choice(list_bw)) - slo_bandwidth.metric_unit = "Gbps" - - # SLO Availability - slo_availability = metric_bounds["service-slo-availability"] - slo_availability.value_description = "Guaranteed availability" - slo_availability.metric_unit = "percentage" - slo_availability.bound = random.choice(list_availability) - - json_request = {"data": ns.to_json()} - - #Last, add name and owner manually - list_name_owner = [{"tag-type": "owner", "value": random.choice(list_owner)}] - json_request["data"]["ietf-network-slice-service:network-slice-services"]["slice-service"][0]["service-tags"] = list_name_owner - - return (json_request, suuid) - - -if __name__ == "__main__": - request = generate_request(123) - print(json.dumps(request[0], sort_keys=True, indent=4)) diff --git a/src/ztp_server/tests/test_tfs_api.py b/src/ztp_server/tests/test_tfs_api.py deleted file mode 100755 index eab2f8d9b..000000000 --- a/src/ztp_server/tests/test_tfs_api.py +++ /dev/null @@ -1,217 +0,0 @@ -# Copyright 2022-2024 ETSI 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 logging, urllib -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME -from common.proto.context_pb2 import ContextId -from common.tools.descriptor.Loader import ( - DescriptorLoader, check_descriptor_load_results, validate_empty_scenario -) -from common.tools.object_factory.Context import json_context_id -from common.type_checkers.Assertions import ( - validate_connection, validate_connection_ids, validate_connections, - validate_context, validate_context_ids, validate_contexts, - validate_device, validate_device_ids, validate_devices, - validate_link, validate_link_ids, validate_links, - validate_service, validate_service_ids, validate_services, - validate_slice, validate_slice_ids, validate_slices, - validate_topologies, validate_topology, validate_topology_ids -) -from context.client.ContextClient import ContextClient -from nbi.service.rest_server.RestServer import RestServer -from .PrepareTestScenario import ( # pylint: disable=unused-import - # be careful, order of symbols is important here! - mock_service, nbi_service_rest, context_client, - do_rest_get_request -) - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) - -DESCRIPTOR_FILE = 'nbi/tests/data/tfs_api_dummy.json' - -JSON_ADMIN_CONTEXT_ID = json_context_id(DEFAULT_CONTEXT_NAME) -ADMIN_CONTEXT_ID = ContextId(**JSON_ADMIN_CONTEXT_ID) - - -# ----- Prepare Environment -------------------------------------------------------------------------------------------- - -def test_prepare_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - validate_empty_scenario(context_client) - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_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.topology_ids) == 1 - assert len(response.service_ids ) == 3 - assert len(response.slice_ids ) == 1 - - -# ----- Context -------------------------------------------------------------------------------------------------------- - -def test_rest_get_context_ids(nbi_service_rest: RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/context_ids') - validate_context_ids(reply) - -def test_rest_get_contexts(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/contexts') - validate_contexts(reply) - -def test_rest_get_context(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}'.format(context_uuid)) - validate_context(reply) - - -# ----- Topology ------------------------------------------------------------------------------------------------------- - -def test_rest_get_topology_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/topology_ids'.format(context_uuid)) - validate_topology_ids(reply) - -def test_rest_get_topologies(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/topologies'.format(context_uuid)) - validate_topologies(reply) - -def test_rest_get_topology(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - topology_uuid = urllib.parse.quote(DEFAULT_TOPOLOGY_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/topology/{:s}'.format(context_uuid, topology_uuid)) - validate_topology(reply, num_devices=3, num_links=6) - - -# ----- Device --------------------------------------------------------------------------------------------------------- - -def test_rest_get_device_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/device_ids') - validate_device_ids(reply) - -def test_rest_get_devices(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/devices') - validate_devices(reply) - -def test_rest_get_device(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - device_uuid = urllib.parse.quote('R1', safe='') - reply = do_rest_get_request('/tfs-api/device/{:s}'.format(device_uuid)) - validate_device(reply) - - -# ----- Link ----------------------------------------------------------------------------------------------------------- - -def test_rest_get_link_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/link_ids') - validate_link_ids(reply) - -def test_rest_get_links(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - reply = do_rest_get_request('/tfs-api/links') - validate_links(reply) - -def test_rest_get_link(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - link_uuid = urllib.parse.quote('R1/502==R2/501', safe='') - reply = do_rest_get_request('/tfs-api/link/{:s}'.format(link_uuid)) - validate_link(reply) - - -# ----- Service -------------------------------------------------------------------------------------------------------- - -def test_rest_get_service_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/service_ids'.format(context_uuid)) - validate_service_ids(reply) - -def test_rest_get_services(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/services'.format(context_uuid)) - validate_services(reply) - -def test_rest_get_service(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') - reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}'.format(context_uuid, service_uuid)) - validate_service(reply) - - -# ----- Slice ---------------------------------------------------------------------------------------------------------- - -def test_rest_get_slice_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/slice_ids'.format(context_uuid)) - validate_slice_ids(reply) - -def test_rest_get_slices(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - reply = do_rest_get_request('/tfs-api/context/{:s}/slices'.format(context_uuid)) - validate_slices(reply) - -def test_rest_get_slice(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - slice_uuid = urllib.parse.quote('SLC:R1-R2-R3', safe='') - reply = do_rest_get_request('/tfs-api/context/{:s}/slice/{:s}'.format(context_uuid, slice_uuid)) - validate_slice(reply) - - -# ----- Connection ----------------------------------------------------------------------------------------------------- - -def test_rest_get_connection_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') - reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}/connection_ids'.format(context_uuid, service_uuid)) - validate_connection_ids(reply) - -def test_rest_get_connections(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - context_uuid = urllib.parse.quote(DEFAULT_CONTEXT_NAME) - service_uuid = urllib.parse.quote('SVC:R1/200==R2/200', safe='') - reply = do_rest_get_request('/tfs-api/context/{:s}/service/{:s}/connections'.format(context_uuid, service_uuid)) - validate_connections(reply) - -def test_rest_get_connection(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument - connection_uuid = urllib.parse.quote('CON:R1/200==R2/200:1', safe='') - reply = do_rest_get_request('/tfs-api/connection/{:s}'.format(connection_uuid)) - validate_connection(reply) - -# ----- Policy --------------------------------------------------------------------------------------------------------- - -#def test_rest_get_policyrule_ids(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument -# reply = do_rest_get_request('/tfs-api/policyrule_ids') -# validate_policyrule_ids(reply) - -#def test_rest_get_policyrules(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument -# reply = do_rest_get_request('/tfs-api/policyrules') -# validate_policyrules(reply) - -#def test_rest_get_policyrule(nbi_service_rest : RestServer): # pylint: disable=redefined-outer-name, unused-argument -# policyrule_uuid_quoted = urllib.parse.quote(policyrule_uuid, safe='') -# reply = do_rest_get_request('/tfs-api/policyrule/{:s}'.format(policyrule_uuid_quoted)) -# validate_policyrule(reply) - - -# ----- Cleanup Environment -------------------------------------------------------------------------------------------- - -def test_cleanup_environment(context_client : ContextClient) -> None: # pylint: disable=redefined-outer-name - # Verify the scenario has no services/slices - response = context_client.GetContext(ADMIN_CONTEXT_ID) - assert len(response.topology_ids) == 1 - assert len(response.service_ids ) == 3 - assert len(response.slice_ids ) == 1 - - # Load descriptors and validate the base scenario - descriptor_loader = DescriptorLoader(descriptors_file=DESCRIPTOR_FILE, context_client=context_client) - descriptor_loader.validate() - descriptor_loader.unload() - validate_empty_scenario(context_client) diff --git a/src/ztp_server/tests/test_yang_acl.py b/src/ztp_server/tests/test_yang_acl.py deleted file mode 100755 index 2f45c50bc..000000000 --- a/src/ztp_server/tests/test_yang_acl.py +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright 2022-2024 ETSI 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 copy, json, libyang, logging, os -from typing import Dict, List, Optional - -LOGGER = logging.getLogger(__name__) - -YANG_DIR = os.path.join(os.path.dirname(__file__), 'yang') -YANG_MODULES = [ - 'ietf-yang-types', - 'ietf-interfaces', - 'iana-if-type', - 'ietf-access-control-list', -] - -class YangValidator: - def __init__(self) -> None: - self._yang_context = libyang.Context(YANG_DIR) - for module_name in YANG_MODULES: - LOGGER.info('Loading module: {:s}'.format(str(module_name))) - yang_module = self._yang_context.load_module(module_name) - yang_module.feature_enable_all() - yang_module_prefix = yang_module.prefix() - LOGGER.info(' Prefix: {:s}'.format(str(yang_module_prefix))) - - def parse_to_dict(self, message : Dict, interface_names : List[str]) -> Dict: - interfaces = self._yang_context.create_data_path('/ietf-interfaces:interfaces') - for if_index,interface_name in enumerate(interface_names): - if_path = 'interface[name="{:s}"]'.format(str(interface_name)) - interface = interfaces.create_path(if_path) - interface.create_path('if-index', if_index + 1) - interface.create_path('type', 'iana-if-type:ethernetCsmacd') - interface.create_path('admin-status', 'up') - interface.create_path('oper-status', 'up') - statistics = interface.create_path('statistics') - statistics.create_path('discontinuity-time', '2024-07-11T10:00:00.000000Z') - - message = copy.deepcopy(message) - message['ietf-interfaces:interfaces'] = interfaces.print_dict()['interfaces'] - - dnode : Optional[libyang.DNode] = self._yang_context.parse_data_mem( - json.dumps(message), 'json', validate_present=True, strict=True - ) - if dnode is None: raise Exception('Unable to parse Message({:s})'.format(str(message))) - message = dnode.print_dict() - dnode.free() - interfaces.free() - return message - - def destroy(self) -> None: - self._yang_context.destroy() - self._yang_context = None - -def main() -> None: - import uuid # pylint: disable=import-outside-toplevel - logging.basicConfig(level=logging.DEBUG) - - interface_names = {'200', '500', str(uuid.uuid4()), str(uuid.uuid4())} - ACL_RULE = {"ietf-access-control-list:acls": { - "acl": [{ - "name": "sample-ipv4-acl", "type": "ipv4-acl-type", - "aces": {"ace": [{ - "name": "rule1", - "matches": { - "ipv4": { - "source-ipv4-network": "128.32.10.6/24", - "destination-ipv4-network": "172.10.33.0/24", - "dscp": 18 - }, - "tcp": { - "source-port": {"operator": "eq", "port": 1444}, - "destination-port": {"operator": "eq", "port": 1333}, - "flags": "syn" - } - }, - "actions": {"forwarding": "drop"} - }]} - }], - "attachment-points": {"interface": [{ - "interface-id": "200", - "ingress": {"acl-sets": {"acl-set": [{"name": "sample-ipv4-acl"}]}} - }] - }}} - - yang_validator = YangValidator() - request_data = yang_validator.parse_to_dict(ACL_RULE, list(interface_names)) - yang_validator.destroy() - - LOGGER.info('request_data = {:s}'.format(str(request_data))) - -if __name__ == '__main__': - main() -- GitLab From 755ec559558ce3f4aa7e993670a2eb17e1bbe648 Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Tue, 18 Mar 2025 12:27:26 +0000 Subject: [PATCH 157/213] Solve some minor Typo Delete unused files --- manifests/ztp_server.yaml | 3 +- proto/ztp_server.proto | 2 +- src/common/Constants.py | 2 +- src/ztp_server/.gitlab-ci.yml | 120 ------------------ .../data/provisioning_script_sonic.sh | 15 +++ src/ztp_server/data/ztp.json | 1 - src/ztp_server/requirements.in | 25 ---- .../service/ZtpServerServiceServicerImpl.py | 13 -- src/ztp_server/service/__main__.py | 6 +- .../tools/HttpStatusCodes.py | 2 +- .../Resources.py | 4 +- .../Tools.py | 4 +- .../__init__.py | 6 +- 13 files changed, 28 insertions(+), 175 deletions(-) delete mode 100755 src/ztp_server/.gitlab-ci.yml delete mode 100755 src/ztp_server/requirements.in rename src/ztp_server/service/rest_server/ztpServer_plugins/{tfs_api => ztp_provisioning_api}/Resources.py (94%) rename src/ztp_server/service/rest_server/ztpServer_plugins/{tfs_api => ztp_provisioning_api}/Tools.py (94%) rename src/ztp_server/service/rest_server/ztpServer_plugins/{tfs_api => ztp_provisioning_api}/__init__.py (89%) diff --git a/manifests/ztp_server.yaml b/manifests/ztp_server.yaml index 6ed469174..398aaa71e 100644 --- a/manifests/ztp_server.yaml +++ b/manifests/ztp_server.yaml @@ -74,5 +74,4 @@ spec: - name: metrics protocol: TCP port: 9192 - targetPort: ---- + targetPort: 9192 diff --git a/proto/ztp_server.proto b/proto/ztp_server.proto index 807751084..31e568d3a 100755 --- a/proto/ztp_server.proto +++ b/proto/ztp_server.proto @@ -19,7 +19,7 @@ package ztpServer; service ZtpServerService { rpc GetProvisioningScript (ProvisioningScriptName ) returns (ProvisioningScript ) {} - rpc GetZtpProvisioning (ZtpFileName ) returns (ZtpFile ) {} + rpc GetZtpProvisioning (ZtpFileName ) returns (ZtpFile ) {} } diff --git a/src/common/Constants.py b/src/common/Constants.py index 50b792c65..b95b6d01b 100644 --- a/src/common/Constants.py +++ b/src/common/Constants.py @@ -42,7 +42,7 @@ class ServiceNameEnum(Enum): SERVICE = 'service' SLICE = 'slice' ZTP = 'ztp' - ZTP_SERVER = 'ztp_server' + ZTP_SERVER = 'ztp-server' POLICY = 'policy' MONITORING = 'monitoring' DLT = 'dlt' diff --git a/src/ztp_server/.gitlab-ci.yml b/src/ztp_server/.gitlab-ci.yml deleted file mode 100755 index 71bf223ba..000000000 --- a/src/ztp_server/.gitlab-ci.yml +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -# Build, tag, and push the Docker image to the GitLab Docker registry -build nbi: - variables: - IMAGE_NAME: 'nbi' # name of the microservice - IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) - stage: build - before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - script: - - docker buildx build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile . - - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - after_script: - - docker images --filter="dangling=true" --quiet | xargs -r docker rmi - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - - changes: - - src/common/**/*.py - - proto/*.proto - - src/$IMAGE_NAME/**/*.{py,in,yml} - - src/$IMAGE_NAME/Dockerfile - - src/$IMAGE_NAME/tests/*.py - - manifests/${IMAGE_NAME}service.yaml - - .gitlab-ci.yml - -# Apply unit test to the component -unit_test nbi: - variables: - IMAGE_NAME: 'nbi' # name of the microservice - IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) - stage: unit_test - needs: - - build nbi - before_script: - - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - - > - if docker network list | grep teraflowbridge; then - echo "teraflowbridge is already created"; - else - docker network create -d bridge teraflowbridge; - fi - - > - if docker container ls | grep $IMAGE_NAME; then - docker rm -f $IMAGE_NAME; - else - echo "$IMAGE_NAME image is not in the system"; - fi - script: - - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - - docker run --name $IMAGE_NAME -d -p 9090:9090 -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG - - sleep 5 - - docker ps -a - - docker logs $IMAGE_NAME - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" - coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' - after_script: - - docker rm -f $IMAGE_NAME - - docker network rm teraflowbridge - rules: - - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' - - changes: - - src/common/**/*.py - - proto/*.proto - - src/$IMAGE_NAME/**/*.{py,in,yml} - - src/$IMAGE_NAME/Dockerfile - - src/$IMAGE_NAME/tests/*.py - - src/$IMAGE_NAME/tests/Dockerfile - - manifests/${IMAGE_NAME}service.yaml - - .gitlab-ci.yml - artifacts: - when: always - reports: - junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report_*.xml - -## Deployment of the service in Kubernetes Cluster -#deploy nbi: -# variables: -# IMAGE_NAME: 'nbi' # name of the microservice -# IMAGE_TAG: 'latest' # tag of the container image (production, development, etc) -# stage: deploy -# needs: -# - unit test nbi -# # - integ_test execute -# script: -# - 'sed -i "s/$IMAGE_NAME:.*/$IMAGE_NAME:$IMAGE_TAG/" manifests/${IMAGE_NAME}service.yaml' -# - kubectl version -# - kubectl get all -# - kubectl apply -f "manifests/${IMAGE_NAME}service.yaml" -# - kubectl get all -# # environment: -# # name: test -# # url: https://example.com -# # kubernetes: -# # namespace: test -# rules: -# - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' -# when: manual -# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' -# when: manual diff --git a/src/ztp_server/data/provisioning_script_sonic.sh b/src/ztp_server/data/provisioning_script_sonic.sh index c4dd20438..24b1eb8a6 100644 --- a/src/ztp_server/data/provisioning_script_sonic.sh +++ b/src/ztp_server/data/provisioning_script_sonic.sh @@ -1,5 +1,20 @@ #!/bin/bash +# Copyright 2022-2024 ETSI 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 + + PRODUCT_NAME=$(show version | grep 'Platform' | awk '{print $2}') SERIAL_NUMBER=$(show version | grep 'Serial Number' | awk '{print $3}') BASE_MAC_ADDRESS=$(show platform syseeprom | grep 'Base MAC Address' | awk '{print $6}') diff --git a/src/ztp_server/data/ztp.json b/src/ztp_server/data/ztp.json index 6e606a5e8..4a4cdc3cf 100644 --- a/src/ztp_server/data/ztp.json +++ b/src/ztp_server/data/ztp.json @@ -8,4 +8,3 @@ } } } - \ No newline at end of file diff --git a/src/ztp_server/requirements.in b/src/ztp_server/requirements.in deleted file mode 100755 index ba715494d..000000000 --- a/src/ztp_server/requirements.in +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2022-2024 ETSI 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. - -deepdiff==6.7.* -deepmerge==1.1.* -Flask==2.1.3 -Flask-HTTPAuth==4.5.0 -Flask-RESTful==0.3.9 -jsonschema==4.4.0 -netaddr==0.9.0 -pydantic==2.6.3 -requests==2.27.1 -werkzeug==2.3.7 -websockets==12.0 diff --git a/src/ztp_server/service/ZtpServerServiceServicerImpl.py b/src/ztp_server/service/ZtpServerServiceServicerImpl.py index 410db6cb3..62ddb856f 100755 --- a/src/ztp_server/service/ZtpServerServiceServicerImpl.py +++ b/src/ztp_server/service/ZtpServerServiceServicerImpl.py @@ -38,16 +38,3 @@ class ZtpServerServiceServicerImpl(ZtpServerServiceServicer): context.set_code(grpc.StatusCode.NOT_FOUND) context.set_details('File not found') return ProvisioningScript() - - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def GetZtpProvisioning(self, request : ZtpFileName, context : grpc.ServicerContext) -> ZtpFile: - try: - ztpPath = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', 'data', request.filename) - with open(ztpPath, 'r') as json_file: - json_content = json_file.read() - return ZtpFile(json=json_content) - except FileNotFoundError: - context.set_code(grpc.StatusCode.NOT_FOUND) - context.set_details('File not found') - return ZtpFile() \ No newline at end of file diff --git a/src/ztp_server/service/__main__.py b/src/ztp_server/service/__main__.py index 55bd5f187..ae8a95d21 100755 --- a/src/ztp_server/service/__main__.py +++ b/src/ztp_server/service/__main__.py @@ -21,9 +21,7 @@ from common.Settings import ( ) from .ZtpServerService import ZtpServerService from .rest_server.RestServer import RestServer -from .rest_server.ztpServer_plugins.tfs_api import register_tfs_api - -from .context_subscription import register_context_subscription +from .rest_server.ztpServer_plugins.ztp_provisioning_api import register_ztp_provisioning terminate = threading.Event() LOGGER = None @@ -53,7 +51,7 @@ def main(): grpc_service.start() rest_server = RestServer() - register_tfs_api(rest_server) + register_ztp_provisioning(rest_server) rest_server.start() LOGGER.debug('Configured Resources:') diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py index 56ea475c7..f9d749613 100755 --- a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py @@ -17,4 +17,4 @@ HTTP_CREATED = 201 HTTP_NOCONTENT = 204 HTTP_BADREQUEST = 400 HTTP_SERVERERROR = 500 -HTTP_GATEWAYTIMEOUT = 504 \ No newline at end of file +HTTP_GATEWAYTIMEOUT = 504 diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Resources.py similarity index 94% rename from src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py rename to src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Resources.py index 43b7b79b6..f4169742a 100755 --- a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Resources.py @@ -32,6 +32,6 @@ class _Resource(Resource): class config(_Resource): @HTTP_AUTH.login_required def get(self, config_db : str): - #if returnConfigFile(config_db) + content = returnConfigFile(config_db) - return + return content diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Tools.py similarity index 94% rename from src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py rename to src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Tools.py index 7d05816ee..92573fd2e 100755 --- a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Tools.py @@ -20,6 +20,6 @@ def returnConfigFile(config_db): with open(configFilePath, 'r', encoding='utf-8') as configFile: content = configFile.read() except FileNotFoundError: - return "File not Found" + return None - return content \ No newline at end of file + return content diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/__init__.py similarity index 89% rename from src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py rename to src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/__init__.py index 7062772b4..ab06fd7bd 100755 --- a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py +++ b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/__init__.py @@ -14,7 +14,7 @@ from ztp_server.service.rest_server.RestServer import RestServer from .Resources import ( - config + Config ) URL_PREFIX = '/provisioning' @@ -22,9 +22,9 @@ URL_PREFIX = '/provisioning' # Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type. RESOURCES = [ # (endpoint_name, resource_class, resource_url) - ('api.config', config, '/config/<path:config_db>'), + ('api.config', Config, '/config/<path:config_db>'), ] -def register_tfs_api(rest_server : RestServer): +def register_ztp_provisioning(rest_server : RestServer): for endpoint_name, resource_class, resource_url in RESOURCES: rest_server.add_resource(resource_class, URL_PREFIX + resource_url, endpoint=endpoint_name) -- GitLab From 9f585e31b720aec9eb7ed958a43583f8995296be Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 18 Mar 2025 18:55:12 +0000 Subject: [PATCH 158/213] VNT Manager component: - Corrected Kafka connection --- .../service/VNTManagerServiceServicerImpl.py | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py index 2424f5530..52ee03d22 100644 --- a/src/vnt_manager/service/VNTManagerServiceServicerImpl.py +++ b/src/vnt_manager/service/VNTManagerServiceServicerImpl.py @@ -39,15 +39,6 @@ class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): def __init__(self): LOGGER.debug('Creating Servicer...') self.context_client = ContextClient() - self.kafka_producer = KafkaProducer({ - 'bootstrap.servers' : KafkaConfig.get_kafka_address() - }) - self.kafka_consumer = KafkaConsumer({ - 'bootstrap.servers' : KafkaConfig.get_kafka_address(), - 'group.id' : str(uuid.uuid4()), - 'auto.offset.reset' : 'latest' - }) - self.kafka_consumer.subscribe([KafkaTopic.VNTMANAGER_RESPONSE.value]) self.links = [] LOGGER.debug('Servicer Created') @@ -66,6 +57,9 @@ class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): vntm_request = json.dumps(vntm_request) MSG = '[send_recommendation] request_key={:s} vntm_request={:s}' LOGGER.info(MSG.format(str(request_key), str(vntm_request))) + self.kafka_producer = KafkaProducer({ + 'bootstrap.servers' : KafkaConfig.get_kafka_address() + }) self.kafka_producer.produce( KafkaTopic.VNTMANAGER_REQUEST.value, key=request_key.encode('utf-8'), @@ -87,6 +81,15 @@ class VNTManagerServiceServicerImpl(VNTManagerServiceServicer): def wait_for_reply(self, request_key : str) -> Optional[Dict]: LOGGER.info('[wait_for_reply] request_key={:s}'.format(str(request_key))) + self.kafka_consumer = KafkaConsumer({ + 'bootstrap.servers' : KafkaConfig.get_kafka_address(), + 'group.id' : str(uuid.uuid4()), + 'auto.offset.reset' : 'latest', + 'max.poll.interval.ms': 600000, + 'session.timeout.ms' : 60000, + }) + self.kafka_consumer.subscribe([KafkaTopic.VNTMANAGER_RESPONSE.value]) + while True: receive_msg = self.kafka_consumer.poll(2.0) if receive_msg is None: continue -- GitLab From 9eb5fa01407efe7e8026b1d334a8c2dd3f288a11 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 19 Mar 2025 08:16:20 +0000 Subject: [PATCH 159/213] OFC25 tests: - Added Additional topology E2E for the server - Fixed dump-logs.sh script --- .../descriptors/topology_e2e-netorch.json | 85 +++++++++++++++++++ src/tests/ofc25/dump-logs.sh | 56 ++++++------ 2 files changed, 112 insertions(+), 29 deletions(-) create mode 100644 src/tests/ofc25/descriptors/topology_e2e-netorch.json diff --git a/src/tests/ofc25/descriptors/topology_e2e-netorch.json b/src/tests/ofc25/descriptors/topology_e2e-netorch.json new file mode 100644 index 000000000..6d5d119bb --- /dev/null +++ b/src/tests/ofc25/descriptors/topology_e2e-netorch.json @@ -0,0 +1,85 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "TFS-PACKET"}}, "device_type": "teraflowsdn", + "device_drivers": ["DEVICEDRIVER_IETF_L3VPN"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.1.1.96"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8002"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "scheme": "http", "username": "admin", "password": "admin", "import_topology": "topology" + }}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TFS-OPTICAL"}}, "device_type": "teraflowsdn", + "device_drivers": ["DEVICEDRIVER_OPTICAL_TFS"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "10.1.1.96"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "8003"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "scheme": "http", "username": "admin", "password": "admin", "import_topology": "topology" + }}} + ]} + } + ], + "links": [ + {"link_id": {"link_uuid": {"uuid": "IP1-T1.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "T1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP1-T1.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "T1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP1-T1.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "T1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + + {"link_id": {"link_uuid": {"uuid": "IP2-T2.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "T2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP2-T2.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "T2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP2-T2.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "T2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + + {"link_id": {"link_uuid": {"uuid": "T1.1-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "T1.2-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "T1.3-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "T2.1-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "T2.2-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "T2.3-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + ]} + ] +} diff --git a/src/tests/ofc25/dump-logs.sh b/src/tests/ofc25/dump-logs.sh index 234537fba..5037728d9 100755 --- a/src/tests/ofc25/dump-logs.sh +++ b/src/tests/ofc25/dump-logs.sh @@ -15,41 +15,39 @@ rm logs -rf tmp/exec +mkdir -p tmp/exec echo "Collecting logs for E2E..." -mkdir -p tmp/exec/e2e -kubectl logs --namespace tfs-e2e deployment/contextservice -c server > tmp/exec/e2e/context.log -kubectl logs --namespace tfs-e2e deployment/deviceservice -c server > tmp/exec/e2e/device.log -kubectl logs --namespace tfs-e2e deployment/serviceservice -c server > tmp/exec/e2e/service.log -kubectl logs --namespace tfs-e2e deployment/pathcompservice -c frontend > tmp/exec/e2e/pathcomp-frontend.log -kubectl logs --namespace tfs-e2e deployment/pathcompservice -c backend > tmp/exec/e2e/pathcomp-backend.log -kubectl logs --namespace tfs-e2e deployment/webuiservice -c server > tmp/exec/e2e/webui.log -kubectl logs --namespace tfs-e2e deployment/nbiservice -c server > tmp/exec/e2e/nbi.log -kubectl logs --namespace tfs-e2e deployment/e2e-orchestratorservice -c server > tmp/exec/e2e/e2eorch.log -printf logs "\n" +kubectl logs --namespace tfs-e2e deployment/contextservice -c server > tmp/exec/e2e-context.log +kubectl logs --namespace tfs-e2e deployment/deviceservice -c server > tmp/exec/e2e-device.log +kubectl logs --namespace tfs-e2e deployment/serviceservice -c server > tmp/exec/e2e-service.log +kubectl logs --namespace tfs-e2e deployment/pathcompservice -c frontend > tmp/exec/e2e-pathcomp-frontend.log +kubectl logs --namespace tfs-e2e deployment/pathcompservice -c backend > tmp/exec/e2e-pathcomp-backend.log +kubectl logs --namespace tfs-e2e deployment/webuiservice -c server > tmp/exec/e2e-webui.log +kubectl logs --namespace tfs-e2e deployment/nbiservice -c server > tmp/exec/e2e-nbi.log +kubectl logs --namespace tfs-e2e deployment/e2e-orchestratorservice -c server > tmp/exec/e2e-orch.log +printf "\n" echo "Collecting logs for IP..." -mkdir -p tmp/exec/ip -kubectl logs --namespace tfs-ip deployment/contextservice -c server > tmp/exec/ip/context.log -kubectl logs --namespace tfs-ip deployment/deviceservice -c server > tmp/exec/ip/device.log -kubectl logs --namespace tfs-ip deployment/serviceservice -c server > tmp/exec/ip/service.log -kubectl logs --namespace tfs-ip deployment/pathcompservice -c frontend > tmp/exec/ip/pathcomp-frontend.log -kubectl logs --namespace tfs-ip deployment/pathcompservice -c backend > tmp/exec/ip/pathcomp-backend.log -kubectl logs --namespace tfs-ip deployment/webuiservice -c server > tmp/exec/ip/webui.log -kubectl logs --namespace tfs-ip deployment/nbiservice -c server > tmp/exec/ip/nbi.log -kubectl logs --namespace tfs-ip deployment/vnt-managerservice -c server > tmp/exec/ip/vntm.log -printf logs "\n" +kubectl logs --namespace tfs-ip deployment/contextservice -c server > tmp/exec/ip-context.log +kubectl logs --namespace tfs-ip deployment/deviceservice -c server > tmp/exec/ip-device.log +kubectl logs --namespace tfs-ip deployment/serviceservice -c server > tmp/exec/ip-service.log +kubectl logs --namespace tfs-ip deployment/pathcompservice -c frontend > tmp/exec/ip-pathcomp-frontend.log +kubectl logs --namespace tfs-ip deployment/pathcompservice -c backend > tmp/exec/ip-pathcomp-backend.log +kubectl logs --namespace tfs-ip deployment/webuiservice -c server > tmp/exec/ip-webui.log +kubectl logs --namespace tfs-ip deployment/nbiservice -c server > tmp/exec/ip-nbi.log +kubectl logs --namespace tfs-ip deployment/vnt-managerservice -c server > tmp/exec/ip-vntm.log +printf "\n" echo "Collecting logs for OPT..." -mkdir -p tmp/exec/opt -kubectl logs --namespace tfs-opt deployment/contextservice -c server > tmp/exec/opt/context.log -kubectl logs --namespace tfs-opt deployment/deviceservice -c server > tmp/exec/opt/device.log -kubectl logs --namespace tfs-opt deployment/serviceservice -c server > tmp/exec/opt/service.log -kubectl logs --namespace tfs-opt deployment/pathcompservice -c frontend > tmp/exec/opt/pathcomp-frontend.log -kubectl logs --namespace tfs-opt deployment/pathcompservice -c backend > tmp/exec/opt/pathcomp-backend.log -kubectl logs --namespace tfs-opt deployment/webuiservice -c server > tmp/exec/opt/webui.log -kubectl logs --namespace tfs-opt deployment/nbiservice -c server > tmp/exec/opt/nbi.log -kubectl logs --namespace tfs-opt deployment/opticalcontrollerservice -c server > tmp/exec/opt/ctrl.log +kubectl logs --namespace tfs-opt deployment/contextservice -c server > tmp/exec/opt-context.log +kubectl logs --namespace tfs-opt deployment/deviceservice -c server > tmp/exec/opt-device.log +kubectl logs --namespace tfs-opt deployment/serviceservice -c server > tmp/exec/opt-service.log +kubectl logs --namespace tfs-opt deployment/pathcompservice -c frontend > tmp/exec/opt-pathcomp-frontend.log +kubectl logs --namespace tfs-opt deployment/pathcompservice -c backend > tmp/exec/opt-pathcomp-backend.log +kubectl logs --namespace tfs-opt deployment/webuiservice -c server > tmp/exec/opt-webui.log +kubectl logs --namespace tfs-opt deployment/nbiservice -c server > tmp/exec/opt-nbi.log +kubectl logs --namespace tfs-opt deployment/opticalcontrollerservice -c server > tmp/exec/opt-ctrl.log printf "\n" echo "Done!" -- GitLab From 3869c531d3837050d3ddd98b1e711c7f82cd56ea Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 19 Mar 2025 10:42:34 +0000 Subject: [PATCH 160/213] OFC25 tests: - Renamed E2E topology descriptor used for local VMs --- .../descriptors/{topology_e2e.json => topology_e2e-local-vm.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/tests/ofc25/descriptors/{topology_e2e.json => topology_e2e-local-vm.json} (100%) diff --git a/src/tests/ofc25/descriptors/topology_e2e.json b/src/tests/ofc25/descriptors/topology_e2e-local-vm.json similarity index 100% rename from src/tests/ofc25/descriptors/topology_e2e.json rename to src/tests/ofc25/descriptors/topology_e2e-local-vm.json -- GitLab From a6036edaa39c77ceab6e1d635ef749b6de6202a4 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 19 Mar 2025 11:23:07 +0000 Subject: [PATCH 161/213] E2E Orchestrator component: - Corrected selection of border transponders --- .../subscriptions/dispatchers/recommendation/Tools.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py index 12b2069cf..606b5da95 100644 --- a/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py +++ b/src/e2e_orchestrator/service/subscriptions/dispatchers/recommendation/Tools.py @@ -130,6 +130,11 @@ def compose_optical_service(vlink_request : Dict) -> Dict: LOGGER.info('[compose_optical_service] path_hops={:s}'.format(str(path_hops))) + OPTICAL_TRANSPONDER_TYPE = { + DeviceTypeEnum.EMULATED_OPTICAL_TRANSPONDER.value, + DeviceTypeEnum.OPTICAL_TRANSPONDER.value, + } + optical_border_endpoint_ids : List[str] = list() for endpoint_uuid in path_hops: LOGGER.info('[compose_optical_service] endpoint_uuid={:s}'.format(str(endpoint_uuid))) @@ -137,7 +142,7 @@ def compose_optical_service(vlink_request : Dict) -> Dict: LOGGER.info('[compose_optical_service] device_uuid={:s}'.format(str(device_uuid))) device_type = graph_and_mapping.device_to_type[device_uuid] LOGGER.info('[compose_optical_service] device_type={:s}'.format(str(device_type))) - if device_type != DeviceTypeEnum.EMULATED_OPTICAL_TRANSPONDER.value: continue + if device_type not in OPTICAL_TRANSPONDER_TYPE: continue device_id = json_device_id(device_uuid) endpoint_id = json_endpoint_id(device_id, endpoint_uuid) LOGGER.info('[compose_optical_service] endpoint_id={:s}'.format(str(endpoint_id))) -- GitLab From 08d76ded6fbe491c689a232b37b5adb85d8e7934 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 24 Mar 2025 15:57:14 +0000 Subject: [PATCH 162/213] Manifests: - Relaxed readiness and liveness probe failure thresholds --- manifests/nbiservice.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manifests/nbiservice.yaml b/manifests/nbiservice.yaml index 2bf31678f..bc1882e22 100644 --- a/manifests/nbiservice.yaml +++ b/manifests/nbiservice.yaml @@ -51,16 +51,16 @@ spec: httpGet: path: /healthz port: 8080 - initialDelaySeconds: 30 # NBI's gunicorn takes 30~40 seconds to bootstrap + initialDelaySeconds: 50 # NBI's gunicorn takes 30~40 seconds to bootstrap periodSeconds: 10 - failureThreshold: 6 + failureThreshold: 10 livenessProbe: httpGet: path: /healthz port: 8080 - initialDelaySeconds: 30 # NBI's gunicorn takes 30~40 seconds to bootstrap + initialDelaySeconds: 50 # NBI's gunicorn takes 30~40 seconds to bootstrap periodSeconds: 10 - failureThreshold: 6 + failureThreshold: 10 resources: requests: cpu: 150m -- GitLab From 0369031ad53964db24a10e6f531179bc661513d6 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 24 Mar 2025 16:18:27 +0000 Subject: [PATCH 163/213] OFC25 tests: - Added special deployment verison for multiple VMs running independent instances of TFS --- src/tests/ofc25/separate_vms/deploy_e2e.sh | 54 ++ src/tests/ofc25/separate_vms/deploy_opt.sh | 48 ++ src/tests/ofc25/separate_vms/deploy_pkt.sh | 48 ++ .../ofc25/separate_vms/deploy_specs_e2e.sh | 213 +++++++ .../ofc25/separate_vms/deploy_specs_ip.sh | 213 +++++++ .../ofc25/separate_vms/deploy_specs_opt.sh | 213 +++++++ .../descriptors/create-vlink-01.json | 13 + .../descriptors/create-vlink-02.json | 13 + .../descriptors/create-vlink-03.json | 13 + .../descriptors/topology_e2e.json | 85 +++ .../separate_vms/descriptors/topology_ip.json | 36 ++ .../descriptors/topology_opt.json | 552 ++++++++++++++++++ 12 files changed, 1501 insertions(+) create mode 100755 src/tests/ofc25/separate_vms/deploy_e2e.sh create mode 100755 src/tests/ofc25/separate_vms/deploy_opt.sh create mode 100755 src/tests/ofc25/separate_vms/deploy_pkt.sh create mode 100755 src/tests/ofc25/separate_vms/deploy_specs_e2e.sh create mode 100755 src/tests/ofc25/separate_vms/deploy_specs_ip.sh create mode 100755 src/tests/ofc25/separate_vms/deploy_specs_opt.sh create mode 100644 src/tests/ofc25/separate_vms/descriptors/create-vlink-01.json create mode 100644 src/tests/ofc25/separate_vms/descriptors/create-vlink-02.json create mode 100644 src/tests/ofc25/separate_vms/descriptors/create-vlink-03.json create mode 100644 src/tests/ofc25/separate_vms/descriptors/topology_e2e.json create mode 100644 src/tests/ofc25/separate_vms/descriptors/topology_ip.json create mode 100644 src/tests/ofc25/separate_vms/descriptors/topology_opt.json diff --git a/src/tests/ofc25/separate_vms/deploy_e2e.sh b/src/tests/ofc25/separate_vms/deploy_e2e.sh new file mode 100755 index 000000000..c8f3e4dee --- /dev/null +++ b/src/tests/ofc25/separate_vms/deploy_e2e.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + + +# ===== Check Microk8s is ready ============================== +#microk8s status --wait-ready +#kubectl get pods --all-namespaces + + +# ===== Cleanup old deployments ============================== +#helm3 uninstall --namespace nats nats 2>/dev/null || true +#kubectl delete namespaces tfs --ignore-not-found +#kubectl delete namespaces qdb --ignore-not-found +#kubectl delete namespaces kafka --ignore-not-found +#kubectl delete namespaces nats --ignore-not-found + + +# ===== Check Microk8s is ready ============================== +#microk8s status --wait-ready +#kubectl get pods --all-namespaces + + +# ===== Deploy End-to-End TeraFlowSDN ==================== +sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (End-to-End)</h2>|' src/webui/service/templates/main/home.html +source src/tests/ofc25/deploy_specs_e2e.sh + +./deploy/crdb.sh +./deploy/nats.sh +./deploy/kafka.sh +#./deploy/qdb.sh +#./deploy/expose_dashboard.sh +./deploy/tfs.sh +./deploy/show.sh + + +# ===== Wait Content for NATS Subscription ========================= +echo "Waiting for E2E Context to have subscriber ready..." +while ! kubectl --namespace tfs-e2e logs deployment/contextservice -c server 2>&1 | grep -q 'Subscriber is Ready? True'; do sleep 1; done +kubectl --namespace tfs-e2e logs deployment/contextservice -c server + + +echo "Done!" diff --git a/src/tests/ofc25/separate_vms/deploy_opt.sh b/src/tests/ofc25/separate_vms/deploy_opt.sh new file mode 100755 index 000000000..a5e27f146 --- /dev/null +++ b/src/tests/ofc25/separate_vms/deploy_opt.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + + +# ===== Check Microk8s is ready ============================== +#microk8s status --wait-ready +#kubectl get pods --all-namespaces + + +# ===== Cleanup old deployments ============================== +#helm3 uninstall --namespace nats nats 2>/dev/null || true +#kubectl delete namespaces tfs --ignore-not-found +#kubectl delete namespaces qdb --ignore-not-found +#kubectl delete namespaces kafka --ignore-not-found +#kubectl delete namespaces nats --ignore-not-found + + +# ===== Check Microk8s is ready ============================== +#microk8s status --wait-ready +#kubectl get pods --all-namespaces + + +# ===== Deploy End-to-End TeraFlowSDN ==================== +sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (Optical)</h2>|' src/webui/service/templates/main/home.html +source src/tests/ofc25/deploy_specs_opt.sh + +./deploy/crdb.sh +./deploy/nats.sh +./deploy/kafka.sh +#./deploy/qdb.sh +#./deploy/expose_dashboard.sh +./deploy/tfs.sh +./deploy/show.sh + + +echo "Done!" diff --git a/src/tests/ofc25/separate_vms/deploy_pkt.sh b/src/tests/ofc25/separate_vms/deploy_pkt.sh new file mode 100755 index 000000000..bf0c211ef --- /dev/null +++ b/src/tests/ofc25/separate_vms/deploy_pkt.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + + +# ===== Check Microk8s is ready ============================== +#microk8s status --wait-ready +#kubectl get pods --all-namespaces + + +# ===== Cleanup old deployments ============================== +#helm3 uninstall --namespace nats nats 2>/dev/null || true +#kubectl delete namespaces tfs --ignore-not-found +#kubectl delete namespaces qdb --ignore-not-found +#kubectl delete namespaces kafka --ignore-not-found +#kubectl delete namespaces nats --ignore-not-found + + +# ===== Check Microk8s is ready ============================== +#microk8s status --wait-ready +#kubectl get pods --all-namespaces + + +# ===== Deploy End-to-End TeraFlowSDN ==================== +sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (Packet)</h2>|' src/webui/service/templates/main/home.html +source src/tests/ofc25/deploy_specs_pkt.sh + +./deploy/crdb.sh +./deploy/nats.sh +./deploy/kafka.sh +#./deploy/qdb.sh +#./deploy/expose_dashboard.sh +./deploy/tfs.sh +./deploy/show.sh + + +echo "Done!" diff --git a/src/tests/ofc25/separate_vms/deploy_specs_e2e.sh b/src/tests/ofc25/separate_vms/deploy_specs_e2e.sh new file mode 100755 index 000000000..7bdedd3aa --- /dev/null +++ b/src/tests/ofc25/separate_vms/deploy_specs_e2e.sh @@ -0,0 +1,213 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + + +# ----- TeraFlowSDN ------------------------------------------------------------ + +# Set the URL of the internal MicroK8s Docker registry where the images will be uploaded to. +export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" + +# Set the list of components, separated by spaces, you want to build images for, and deploy. +export TFS_COMPONENTS="context device pathcomp service nbi webui" + +# Uncomment to activate Monitoring (old) +#export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" + +# Uncomment to activate Monitoring Framework (new) +#export TFS_COMPONENTS="${TFS_COMPONENTS} kpi_manager kpi_value_writer kpi_value_api telemetry analytics automation" + +# Uncomment to activate QoS Profiles +#export TFS_COMPONENTS="${TFS_COMPONENTS} qos_profile" + +# Uncomment to activate BGP-LS Speaker +#export TFS_COMPONENTS="${TFS_COMPONENTS} bgpls_speaker" + +# Uncomment to activate Optical Controller +# 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" + +# Uncomment to activate Policy Manager +#export TFS_COMPONENTS="${TFS_COMPONENTS} policy" + +# Uncomment to activate Optical CyberSecurity +#export TFS_COMPONENTS="${TFS_COMPONENTS} dbscanserving opticalattackmitigator opticalattackdetector opticalattackmanager" + +# Uncomment to activate L3 CyberSecurity +#export TFS_COMPONENTS="${TFS_COMPONENTS} l3_attackmitigator l3_centralizedattackdetector" + +# Uncomment to activate TE +#export TFS_COMPONENTS="${TFS_COMPONENTS} te" + +# Uncomment to activate Forecaster +#export TFS_COMPONENTS="${TFS_COMPONENTS} forecaster" + +# Uncomment to activate E2E Orchestrator +export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator" + +# Uncomment to activate VNT Manager +#export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager" + +# Uncomment to activate DLT and Interdomain +#export TFS_COMPONENTS="${TFS_COMPONENTS} interdomain dlt" +#if [[ "$TFS_COMPONENTS" == *"dlt"* ]]; then +# export KEY_DIRECTORY_PATH="src/dlt/gateway/keys/priv_sk" +# export CERT_DIRECTORY_PATH="src/dlt/gateway/keys/cert.pem" +# export TLS_CERT_PATH="src/dlt/gateway/keys/ca.crt" +#fi + +# Uncomment to activate QKD App +# To manage QKD Apps, "service" requires "qkd_app" to be deployed +# before "service", thus we "hack" the TFS_COMPONENTS environment variable prepending the +# "qkd_app" 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} qkd_app service ${AFTER}" +#fi + +# Uncomment to activate Load Generator +#export TFS_COMPONENTS="${TFS_COMPONENTS} load_generator" + + +# Set the tag you want to use for your images. +export TFS_IMAGE_TAG="dev" + +# Set the name of the Kubernetes namespace to deploy TFS to. +export TFS_K8S_NAMESPACE="tfs" + +# Set additional manifest files to be applied after the deployment +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" + +# Uncomment when deploying Optical CyberSecurity +#export TFS_EXTRA_MANIFESTS="${TFS_EXTRA_MANIFESTS} manifests/cachingservice.yaml" + +# Set the new Grafana admin password +export TFS_GRAFANA_PASSWORD="admin123+" + +# Disable skip-build flag to rebuild the Docker images. +export TFS_SKIP_BUILD="" + + +# ----- CockroachDB ------------------------------------------------------------ + +# Set the namespace where CockroackDB will be deployed. +export CRDB_NAMESPACE="crdb" + +# Set the external port CockroackDB Postgre SQL interface will be exposed to. +export CRDB_EXT_PORT_SQL="26257" + +# Set the external port CockroackDB HTTP Mgmt GUI interface will be exposed to. +export CRDB_EXT_PORT_HTTP="8081" + +# Set the database username to be used by Context. +export CRDB_USERNAME="tfs" + +# Set the database user's password to be used by Context. +export CRDB_PASSWORD="tfs123" + +# Set CockroachDB installation mode to 'single'. This option is convenient for development and testing. +# See ./deploy/all.sh or ./deploy/crdb.sh for additional details +export CRDB_DEPLOY_MODE="single" + +# Disable flag for dropping database, if it exists. +export CRDB_DROP_DATABASE_IF_EXISTS="YES" + +# Disable flag for re-deploying CockroachDB from scratch. +export CRDB_REDEPLOY="" + + +# ----- NATS ------------------------------------------------------------------- + +# Set the namespace where NATS will be deployed. +export NATS_NAMESPACE="nats" + +# Set the external port NATS Client interface will be exposed to. +export NATS_EXT_PORT_CLIENT="4222" + +# Set the external port NATS HTTP Mgmt GUI interface will be exposed to. +export NATS_EXT_PORT_HTTP="8222" + +# Set NATS installation mode to 'single'. This option is convenient for development and testing. +# See ./deploy/all.sh or ./deploy/nats.sh for additional details +export NATS_DEPLOY_MODE="single" + +# Disable flag for re-deploying NATS from scratch. +export NATS_REDEPLOY="" + + +# ----- QuestDB ---------------------------------------------------------------- + +# Set the namespace where QuestDB will be deployed. +export QDB_NAMESPACE="qdb" + +# Set the external port QuestDB Postgre SQL interface will be exposed to. +export QDB_EXT_PORT_SQL="8812" + +# Set the external port QuestDB Influx Line Protocol interface will be exposed to. +export QDB_EXT_PORT_ILP="9009" + +# Set the external port QuestDB HTTP Mgmt GUI interface will be exposed to. +export QDB_EXT_PORT_HTTP="9000" + +# Set the database username to be used for QuestDB. +export QDB_USERNAME="admin" + +# Set the database user's password to be used for QuestDB. +export QDB_PASSWORD="quest" + +# Set the table name to be used by Monitoring for KPIs. +export QDB_TABLE_MONITORING_KPIS="tfs_monitoring_kpis" + +# Set the table name to be used by Slice for plotting groups. +export QDB_TABLE_SLICE_GROUPS="tfs_slice_groups" + +# Disable flag for dropping tables if they exist. +export QDB_DROP_TABLES_IF_EXIST="YES" + +# Disable flag for re-deploying QuestDB from scratch. +export QDB_REDEPLOY="" + + +# ----- K8s Observability ------------------------------------------------------ + +# Set the external port Prometheus Mgmt HTTP GUI interface will be exposed to. +export PROM_EXT_PORT_HTTP="9090" + +# Set the external port Grafana HTTP Dashboards will be exposed to. +export GRAF_EXT_PORT_HTTP="3000" + + +# ----- Apache Kafka ----------------------------------------------------------- + +# Set the namespace where Apache Kafka will be deployed. +export KFK_NAMESPACE="kafka" + +# Set the port Apache Kafka server will be exposed to. +export KFK_SERVER_PORT="9092" + +# Set the flag to YES for redeploying of Apache Kafka +export KFK_REDEPLOY="" diff --git a/src/tests/ofc25/separate_vms/deploy_specs_ip.sh b/src/tests/ofc25/separate_vms/deploy_specs_ip.sh new file mode 100755 index 000000000..f325c7c45 --- /dev/null +++ b/src/tests/ofc25/separate_vms/deploy_specs_ip.sh @@ -0,0 +1,213 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + + +# ----- TeraFlowSDN ------------------------------------------------------------ + +# Set the URL of the internal MicroK8s Docker registry where the images will be uploaded to. +export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" + +# Set the list of components, separated by spaces, you want to build images for, and deploy. +export TFS_COMPONENTS="context device pathcomp service nbi webui" + +# Uncomment to activate Monitoring (old) +#export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" + +# Uncomment to activate Monitoring Framework (new) +#export TFS_COMPONENTS="${TFS_COMPONENTS} kpi_manager kpi_value_writer kpi_value_api telemetry analytics automation" + +# Uncomment to activate QoS Profiles +#export TFS_COMPONENTS="${TFS_COMPONENTS} qos_profile" + +# Uncomment to activate BGP-LS Speaker +#export TFS_COMPONENTS="${TFS_COMPONENTS} bgpls_speaker" + +# Uncomment to activate Optical Controller +# 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" + +# Uncomment to activate Policy Manager +#export TFS_COMPONENTS="${TFS_COMPONENTS} policy" + +# Uncomment to activate Optical CyberSecurity +#export TFS_COMPONENTS="${TFS_COMPONENTS} dbscanserving opticalattackmitigator opticalattackdetector opticalattackmanager" + +# Uncomment to activate L3 CyberSecurity +#export TFS_COMPONENTS="${TFS_COMPONENTS} l3_attackmitigator l3_centralizedattackdetector" + +# Uncomment to activate TE +#export TFS_COMPONENTS="${TFS_COMPONENTS} te" + +# Uncomment to activate Forecaster +#export TFS_COMPONENTS="${TFS_COMPONENTS} forecaster" + +# Uncomment to activate E2E Orchestrator +#export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator" + +# Uncomment to activate VNT Manager +export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager" + +# Uncomment to activate DLT and Interdomain +#export TFS_COMPONENTS="${TFS_COMPONENTS} interdomain dlt" +#if [[ "$TFS_COMPONENTS" == *"dlt"* ]]; then +# export KEY_DIRECTORY_PATH="src/dlt/gateway/keys/priv_sk" +# export CERT_DIRECTORY_PATH="src/dlt/gateway/keys/cert.pem" +# export TLS_CERT_PATH="src/dlt/gateway/keys/ca.crt" +#fi + +# Uncomment to activate QKD App +# To manage QKD Apps, "service" requires "qkd_app" to be deployed +# before "service", thus we "hack" the TFS_COMPONENTS environment variable prepending the +# "qkd_app" 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} qkd_app service ${AFTER}" +#fi + +# Uncomment to activate Load Generator +#export TFS_COMPONENTS="${TFS_COMPONENTS} load_generator" + + +# Set the tag you want to use for your images. +export TFS_IMAGE_TAG="dev" + +# Set the name of the Kubernetes namespace to deploy TFS to. +export TFS_K8S_NAMESPACE="tfs" + +# Set additional manifest files to be applied after the deployment +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" + +# Uncomment when deploying Optical CyberSecurity +#export TFS_EXTRA_MANIFESTS="${TFS_EXTRA_MANIFESTS} manifests/cachingservice.yaml" + +# Set the new Grafana admin password +export TFS_GRAFANA_PASSWORD="admin123+" + +# Disable skip-build flag to rebuild the Docker images. +export TFS_SKIP_BUILD="" + + +# ----- CockroachDB ------------------------------------------------------------ + +# Set the namespace where CockroackDB will be deployed. +export CRDB_NAMESPACE="crdb" + +# Set the external port CockroackDB Postgre SQL interface will be exposed to. +export CRDB_EXT_PORT_SQL="26257" + +# Set the external port CockroackDB HTTP Mgmt GUI interface will be exposed to. +export CRDB_EXT_PORT_HTTP="8081" + +# Set the database username to be used by Context. +export CRDB_USERNAME="tfs" + +# Set the database user's password to be used by Context. +export CRDB_PASSWORD="tfs123" + +# Set CockroachDB installation mode to 'single'. This option is convenient for development and testing. +# See ./deploy/all.sh or ./deploy/crdb.sh for additional details +export CRDB_DEPLOY_MODE="single" + +# Disable flag for dropping database, if it exists. +export CRDB_DROP_DATABASE_IF_EXISTS="YES" + +# Disable flag for re-deploying CockroachDB from scratch. +export CRDB_REDEPLOY="" + + +# ----- NATS ------------------------------------------------------------------- + +# Set the namespace where NATS will be deployed. +export NATS_NAMESPACE="nats" + +# Set the external port NATS Client interface will be exposed to. +export NATS_EXT_PORT_CLIENT="4222" + +# Set the external port NATS HTTP Mgmt GUI interface will be exposed to. +export NATS_EXT_PORT_HTTP="8222" + +# Set NATS installation mode to 'single'. This option is convenient for development and testing. +# See ./deploy/all.sh or ./deploy/nats.sh for additional details +export NATS_DEPLOY_MODE="single" + +# Disable flag for re-deploying NATS from scratch. +export NATS_REDEPLOY="" + + +# ----- QuestDB ---------------------------------------------------------------- + +# Set the namespace where QuestDB will be deployed. +export QDB_NAMESPACE="qdb" + +# Set the external port QuestDB Postgre SQL interface will be exposed to. +export QDB_EXT_PORT_SQL="8812" + +# Set the external port QuestDB Influx Line Protocol interface will be exposed to. +export QDB_EXT_PORT_ILP="9009" + +# Set the external port QuestDB HTTP Mgmt GUI interface will be exposed to. +export QDB_EXT_PORT_HTTP="9000" + +# Set the database username to be used for QuestDB. +export QDB_USERNAME="admin" + +# Set the database user's password to be used for QuestDB. +export QDB_PASSWORD="quest" + +# Set the table name to be used by Monitoring for KPIs. +export QDB_TABLE_MONITORING_KPIS="tfs_monitoring_kpis" + +# Set the table name to be used by Slice for plotting groups. +export QDB_TABLE_SLICE_GROUPS="tfs_slice_groups" + +# Disable flag for dropping tables if they exist. +export QDB_DROP_TABLES_IF_EXIST="YES" + +# Disable flag for re-deploying QuestDB from scratch. +export QDB_REDEPLOY="" + + +# ----- K8s Observability ------------------------------------------------------ + +# Set the external port Prometheus Mgmt HTTP GUI interface will be exposed to. +export PROM_EXT_PORT_HTTP="9090" + +# Set the external port Grafana HTTP Dashboards will be exposed to. +export GRAF_EXT_PORT_HTTP="3000" + + +# ----- Apache Kafka ----------------------------------------------------------- + +# Set the namespace where Apache Kafka will be deployed. +export KFK_NAMESPACE="kafka" + +# Set the port Apache Kafka server will be exposed to. +export KFK_SERVER_PORT="9092" + +# Set the flag to YES for redeploying of Apache Kafka +export KFK_REDEPLOY="" diff --git a/src/tests/ofc25/separate_vms/deploy_specs_opt.sh b/src/tests/ofc25/separate_vms/deploy_specs_opt.sh new file mode 100755 index 000000000..a597b5687 --- /dev/null +++ b/src/tests/ofc25/separate_vms/deploy_specs_opt.sh @@ -0,0 +1,213 @@ +#!/bin/bash +# Copyright 2022-2024 ETSI 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. + + +# ----- TeraFlowSDN ------------------------------------------------------------ + +# Set the URL of the internal MicroK8s Docker registry where the images will be uploaded to. +export TFS_REGISTRY_IMAGES="http://localhost:32000/tfs/" + +# Set the list of components, separated by spaces, you want to build images for, and deploy. +export TFS_COMPONENTS="context device pathcomp service nbi webui" + +# Uncomment to activate Monitoring (old) +#export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring" + +# Uncomment to activate Monitoring Framework (new) +#export TFS_COMPONENTS="${TFS_COMPONENTS} kpi_manager kpi_value_writer kpi_value_api telemetry analytics automation" + +# Uncomment to activate QoS Profiles +#export TFS_COMPONENTS="${TFS_COMPONENTS} qos_profile" + +# Uncomment to activate BGP-LS Speaker +#export TFS_COMPONENTS="${TFS_COMPONENTS} bgpls_speaker" + +# Uncomment to activate Optical Controller +# 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" + +# Uncomment to activate Policy Manager +#export TFS_COMPONENTS="${TFS_COMPONENTS} policy" + +# Uncomment to activate Optical CyberSecurity +#export TFS_COMPONENTS="${TFS_COMPONENTS} dbscanserving opticalattackmitigator opticalattackdetector opticalattackmanager" + +# Uncomment to activate L3 CyberSecurity +#export TFS_COMPONENTS="${TFS_COMPONENTS} l3_attackmitigator l3_centralizedattackdetector" + +# Uncomment to activate TE +#export TFS_COMPONENTS="${TFS_COMPONENTS} te" + +# Uncomment to activate Forecaster +#export TFS_COMPONENTS="${TFS_COMPONENTS} forecaster" + +# Uncomment to activate E2E Orchestrator +#export TFS_COMPONENTS="${TFS_COMPONENTS} e2e_orchestrator" + +# Uncomment to activate VNT Manager +#export TFS_COMPONENTS="${TFS_COMPONENTS} vnt_manager" + +# Uncomment to activate DLT and Interdomain +#export TFS_COMPONENTS="${TFS_COMPONENTS} interdomain dlt" +#if [[ "$TFS_COMPONENTS" == *"dlt"* ]]; then +# export KEY_DIRECTORY_PATH="src/dlt/gateway/keys/priv_sk" +# export CERT_DIRECTORY_PATH="src/dlt/gateway/keys/cert.pem" +# export TLS_CERT_PATH="src/dlt/gateway/keys/ca.crt" +#fi + +# Uncomment to activate QKD App +# To manage QKD Apps, "service" requires "qkd_app" to be deployed +# before "service", thus we "hack" the TFS_COMPONENTS environment variable prepending the +# "qkd_app" 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} qkd_app service ${AFTER}" +#fi + +# Uncomment to activate Load Generator +#export TFS_COMPONENTS="${TFS_COMPONENTS} load_generator" + + +# Set the tag you want to use for your images. +export TFS_IMAGE_TAG="dev" + +# Set the name of the Kubernetes namespace to deploy TFS to. +export TFS_K8S_NAMESPACE="tfs" + +# Set additional manifest files to be applied after the deployment +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" + +# Uncomment when deploying Optical CyberSecurity +#export TFS_EXTRA_MANIFESTS="${TFS_EXTRA_MANIFESTS} manifests/cachingservice.yaml" + +# Set the new Grafana admin password +export TFS_GRAFANA_PASSWORD="admin123+" + +# Disable skip-build flag to rebuild the Docker images. +export TFS_SKIP_BUILD="" + + +# ----- CockroachDB ------------------------------------------------------------ + +# Set the namespace where CockroackDB will be deployed. +export CRDB_NAMESPACE="crdb" + +# Set the external port CockroackDB Postgre SQL interface will be exposed to. +export CRDB_EXT_PORT_SQL="26257" + +# Set the external port CockroackDB HTTP Mgmt GUI interface will be exposed to. +export CRDB_EXT_PORT_HTTP="8081" + +# Set the database username to be used by Context. +export CRDB_USERNAME="tfs" + +# Set the database user's password to be used by Context. +export CRDB_PASSWORD="tfs123" + +# Set CockroachDB installation mode to 'single'. This option is convenient for development and testing. +# See ./deploy/all.sh or ./deploy/crdb.sh for additional details +export CRDB_DEPLOY_MODE="single" + +# Disable flag for dropping database, if it exists. +export CRDB_DROP_DATABASE_IF_EXISTS="YES" + +# Disable flag for re-deploying CockroachDB from scratch. +export CRDB_REDEPLOY="" + + +# ----- NATS ------------------------------------------------------------------- + +# Set the namespace where NATS will be deployed. +export NATS_NAMESPACE="nats" + +# Set the external port NATS Client interface will be exposed to. +export NATS_EXT_PORT_CLIENT="4222" + +# Set the external port NATS HTTP Mgmt GUI interface will be exposed to. +export NATS_EXT_PORT_HTTP="8222" + +# Set NATS installation mode to 'single'. This option is convenient for development and testing. +# See ./deploy/all.sh or ./deploy/nats.sh for additional details +export NATS_DEPLOY_MODE="single" + +# Disable flag for re-deploying NATS from scratch. +export NATS_REDEPLOY="" + + +# ----- QuestDB ---------------------------------------------------------------- + +# Set the namespace where QuestDB will be deployed. +export QDB_NAMESPACE="qdb" + +# Set the external port QuestDB Postgre SQL interface will be exposed to. +export QDB_EXT_PORT_SQL="8812" + +# Set the external port QuestDB Influx Line Protocol interface will be exposed to. +export QDB_EXT_PORT_ILP="9009" + +# Set the external port QuestDB HTTP Mgmt GUI interface will be exposed to. +export QDB_EXT_PORT_HTTP="9000" + +# Set the database username to be used for QuestDB. +export QDB_USERNAME="admin" + +# Set the database user's password to be used for QuestDB. +export QDB_PASSWORD="quest" + +# Set the table name to be used by Monitoring for KPIs. +export QDB_TABLE_MONITORING_KPIS="tfs_monitoring_kpis" + +# Set the table name to be used by Slice for plotting groups. +export QDB_TABLE_SLICE_GROUPS="tfs_slice_groups" + +# Disable flag for dropping tables if they exist. +export QDB_DROP_TABLES_IF_EXIST="YES" + +# Disable flag for re-deploying QuestDB from scratch. +export QDB_REDEPLOY="" + + +# ----- K8s Observability ------------------------------------------------------ + +# Set the external port Prometheus Mgmt HTTP GUI interface will be exposed to. +export PROM_EXT_PORT_HTTP="9090" + +# Set the external port Grafana HTTP Dashboards will be exposed to. +export GRAF_EXT_PORT_HTTP="3000" + + +# ----- Apache Kafka ----------------------------------------------------------- + +# Set the namespace where Apache Kafka will be deployed. +export KFK_NAMESPACE="kafka" + +# Set the port Apache Kafka server will be exposed to. +export KFK_SERVER_PORT="9092" + +# Set the flag to YES for redeploying of Apache Kafka +export KFK_REDEPLOY="" diff --git a/src/tests/ofc25/separate_vms/descriptors/create-vlink-01.json b/src/tests/ofc25/separate_vms/descriptors/create-vlink-01.json new file mode 100644 index 000000000..edb9bc61c --- /dev/null +++ b/src/tests/ofc25/separate_vms/descriptors/create-vlink-01.json @@ -0,0 +1,13 @@ +{ + "links": [ + { + "link_id": {"link_uuid": {"uuid": "IP1/PORT-xe1==IP2/PORT-xe1"}}, + "link_type": "LINKTYPE_VIRTUAL", + "attributes": {"total_capacity_gbps": 800.0}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + ] + } + ] +} diff --git a/src/tests/ofc25/separate_vms/descriptors/create-vlink-02.json b/src/tests/ofc25/separate_vms/descriptors/create-vlink-02.json new file mode 100644 index 000000000..63b141a2d --- /dev/null +++ b/src/tests/ofc25/separate_vms/descriptors/create-vlink-02.json @@ -0,0 +1,13 @@ +{ + "links": [ + { + "link_id": {"link_uuid": {"uuid": "IP1/PORT-xe2==IP2/PORT-xe2"}}, + "link_type": "LINKTYPE_VIRTUAL", + "attributes": {"total_capacity_gbps": 800.0}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + ] + } + ] +} diff --git a/src/tests/ofc25/separate_vms/descriptors/create-vlink-03.json b/src/tests/ofc25/separate_vms/descriptors/create-vlink-03.json new file mode 100644 index 000000000..1f57c5ce4 --- /dev/null +++ b/src/tests/ofc25/separate_vms/descriptors/create-vlink-03.json @@ -0,0 +1,13 @@ +{ + "links": [ + { + "link_id": {"link_uuid": {"uuid": "IP1/PORT-xe3==IP2/PORT-xe3"}}, + "link_type": "LINKTYPE_VIRTUAL", + "attributes": {"total_capacity_gbps": 800.0}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "IP2"}}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + ] + } + ] +} diff --git a/src/tests/ofc25/separate_vms/descriptors/topology_e2e.json b/src/tests/ofc25/separate_vms/descriptors/topology_e2e.json new file mode 100644 index 000000000..9eac431cb --- /dev/null +++ b/src/tests/ofc25/separate_vms/descriptors/topology_e2e.json @@ -0,0 +1,85 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "TFS-PACKET"}}, "device_type": "teraflowsdn", + "device_drivers": ["DEVICEDRIVER_IETF_L3VPN"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "172.16.254.11"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "80"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "scheme": "http", "username": "admin", "password": "admin", "import_topology": "topology" + }}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "TFS-OPTICAL"}}, "device_type": "teraflowsdn", + "device_drivers": ["DEVICEDRIVER_OPTICAL_TFS"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": 1, "custom": {"resource_key": "_connect/address", "resource_value": "172.24.36.50"}}, + {"action": 1, "custom": {"resource_key": "_connect/port", "resource_value": "80"}}, + {"action": 1, "custom": {"resource_key": "_connect/settings", "resource_value": { + "scheme": "http", "username": "admin", "password": "admin", "import_topology": "topology" + }}} + ]} + } + ], + "links": [ + {"link_id": {"link_uuid": {"uuid": "IP1-T1.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "T1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP1-T1.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "T1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP1-T1.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "T1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + + {"link_id": {"link_uuid": {"uuid": "IP2-T2.1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}}, + {"device_id": {"device_uuid": {"uuid": "T2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP2-T2.2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}}, + {"device_id": {"device_uuid": {"uuid": "T2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + {"link_id": {"link_uuid": {"uuid": "IP2-T2.3"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}}, + {"device_id": {"device_uuid": {"uuid": "T2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }} + ]}, + + {"link_id": {"link_uuid": {"uuid": "T1.1-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "T1.2-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "T1.3-IP1"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP1" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + ]}, + + {"link_id": {"link_uuid": {"uuid": "T2.1-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.1"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe1"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "T2.2-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.2"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe2"}} + ]}, + {"link_id": {"link_uuid": {"uuid": "T2.3-IP2"}}, "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.3"}}, "endpoint_uuid": {"uuid": "CLIENT" }}, + {"device_id": {"device_uuid": {"uuid": "IP2" }}, "endpoint_uuid": {"uuid": "PORT-xe3"}} + ]} + ] +} diff --git a/src/tests/ofc25/separate_vms/descriptors/topology_ip.json b/src/tests/ofc25/separate_vms/descriptors/topology_ip.json new file mode 100644 index 000000000..b75aeb7b1 --- /dev/null +++ b/src/tests/ofc25/separate_vms/descriptors/topology_ip.json @@ -0,0 +1,36 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "IP1"}}, "device_type": "emu-packet-router", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "PORT-xe1", "type": "copper"}, + {"uuid": "PORT-xe2", "type": "copper"}, + {"uuid": "PORT-xe3", "type": "copper"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "IP2"}}, "device_type": "emu-packet-router", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "PORT-xe1", "type": "copper"}, + {"uuid": "PORT-xe2", "type": "copper"}, + {"uuid": "PORT-xe3", "type": "copper"} + ]}}} + ]} + } + ] +} diff --git a/src/tests/ofc25/separate_vms/descriptors/topology_opt.json b/src/tests/ofc25/separate_vms/descriptors/topology_opt.json new file mode 100644 index 000000000..6b6d5f260 --- /dev/null +++ b/src/tests/ofc25/separate_vms/descriptors/topology_opt.json @@ -0,0 +1,552 @@ +{ + "contexts": [ + {"context_id": {"context_uuid": {"uuid": "admin"}}} + ], + "topologies": [ + {"topology_id": {"context_id": {"context_uuid": {"uuid": "admin"}}, "topology_uuid": {"uuid": "admin"}}} + ], + "devices": [ + { + "device_id": {"device_uuid": {"uuid": "T1.1"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "1", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "T1.2"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "2", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "T1.3"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "3", "type": "optical/channel"} + ]}}} + ]} + }, + + { + "device_id": {"device_uuid": {"uuid": "MGON1"}}, "device_type": "emu-optical-roadm", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "port-33-in", "type": "optical/client-add" }, + {"uuid": "port-33-out", "type": "optical/client-drop"}, + {"uuid": "port-34-in", "type": "optical/client-add" }, + {"uuid": "port-34-out", "type": "optical/client-drop"}, + {"uuid": "port-35-in", "type": "optical/client-add" }, + {"uuid": "port-35-out", "type": "optical/client-drop"}, + {"uuid": "port-9-in", "type": "optical/line-in" }, + {"uuid": "port-9-out", "type": "optical/line-out" } + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "MGON2"}}, "device_type": "emu-optical-roadm", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "port-1-in", "type": "optical/line-in" }, + {"uuid": "port-1-out", "type": "optical/line-out" }, + {"uuid": "port-9-in", "type": "optical/line-in" }, + {"uuid": "port-9-out", "type": "optical/line-out" } + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "MGON3"}}, "device_type": "emu-optical-roadm", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "port-33-in", "type": "optical/client-add" }, + {"uuid": "port-33-out", "type": "optical/client-drop"}, + {"uuid": "port-34-in", "type": "optical/client-add" }, + {"uuid": "port-34-out", "type": "optical/client-drop"}, + {"uuid": "port-35-in", "type": "optical/client-add" }, + {"uuid": "port-35-out", "type": "optical/client-drop"}, + {"uuid": "port-1-in", "type": "optical/line-in" }, + {"uuid": "port-1-out", "type": "optical/line-out" } + ]}}} + ]} + }, + + { + "device_id": {"device_uuid": {"uuid": "T2.1"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "1", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "T2.2"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "2", "type": "optical/channel"} + ]}}} + ]} + }, + { + "device_id": {"device_uuid": {"uuid": "T2.3"}}, "device_type": "emu-optical-transponder", + "device_drivers": ["DEVICEDRIVER_UNDEFINED"], "device_operational_status": "DEVICEOPERATIONALSTATUS_UNDEFINED", + "device_config": {"config_rules": [ + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/address", "resource_value": "127.0.0.1"}}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/port", "resource_value": "0" }}, + {"action": "CONFIGACTION_SET", "custom": {"resource_key": "_connect/settings", "resource_value": {"endpoints": [ + {"uuid": "CLIENT", "type": "copper" }, + {"uuid": "3", "type": "optical/channel"} + ]}}} + ]} + } + ], + "optical_links": [ + { + "name": "T1.1-MGON1", "link_id": {"link_uuid": {"uuid": "T1.1->MGON1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.1" }}, "endpoint_uuid": {"uuid": "1" }}, + {"device_id": {"device_uuid": {"uuid": "MGON1"}}, "endpoint_uuid": {"uuid": "port-33-in"}} + ], + "optical_details": { + "length": 0, "src_port": "1", "dst_port": "port-33-in", "local_peer_port": "1", "remote_peer_port": "port-33-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "T1.2-MGON1", "link_id": {"link_uuid": {"uuid": "T1.2->MGON1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.2"}}, "endpoint_uuid": {"uuid": "2"}}, + {"device_id": {"device_uuid": {"uuid": "MGON1"}},"endpoint_uuid": {"uuid": "port-34-in"}} + ], + "optical_details": { + "length": 0, "src_port": "2", "dst_port": "port-34-in", "local_peer_port": "2", "remote_peer_port": "port-34-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "T1.3-MGON1", "link_id": {"link_uuid": {"uuid": "T1.3->MGON1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T1.3"}}, "endpoint_uuid": {"uuid": "3"}}, + {"device_id": {"device_uuid": {"uuid": "MGON1"}},"endpoint_uuid": {"uuid": "port-35-in"}} + ], + "optical_details": { + "length": 0, "src_port": "3", "dst_port": "port-35-in", "local_peer_port": "3", "remote_peer_port": "port-35-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON1-T1.1", "link_id": {"link_uuid": {"uuid": "MGON1->T1.1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON1"}}, "endpoint_uuid": {"uuid": "port-33-out"}}, + {"device_id": {"device_uuid": {"uuid": "T1.1"}},"endpoint_uuid": {"uuid": "1"}} + ], + "optical_details": { + "length": 0, "src_port": "port-33-out", "dst_port": "1", "local_peer_port": "port-33-in", "remote_peer_port": "1", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON1-T1.2", "link_id": {"link_uuid": {"uuid": "MGON1->T1.2"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON1"}}, "endpoint_uuid": {"uuid": "port-34-out"}}, + {"device_id": {"device_uuid": {"uuid": "T1.2"}},"endpoint_uuid": {"uuid": "2"}} + ], + "optical_details": { + "length": 0, "src_port": "port-34-out", "dst_port": "2", "local_peer_port": "port-34-in", "remote_peer_port": "2", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON1-T1.3", "link_id": {"link_uuid": {"uuid": "MGON1->T1.3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON1"}}, "endpoint_uuid": {"uuid": "port-35-out"}}, + {"device_id": {"device_uuid": {"uuid": "T1.3"}},"endpoint_uuid": {"uuid": "3"}} + ], + "optical_details": { + "length": 0, "src_port": "port-35-out", "dst_port": "3", "local_peer_port": "port-35-in", "remote_peer_port": "3", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON1-MGON2", "link_id": {"link_uuid": {"uuid": "MGON1->MGON2"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON1"}}, "endpoint_uuid": {"uuid": "port-9-out"}}, + {"device_id": {"device_uuid": {"uuid": "MGON2"}},"endpoint_uuid": {"uuid": "port-1-in"}} + ], + "optical_details": { + "length": 0, "src_port": "port-9-out", "dst_port": "port-1-in", "local_peer_port": "port-9-in", "remote_peer_port": "port-1-out", + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON2-MGON1", "link_id": {"link_uuid": {"uuid": "MGON2->MGON1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON2"}}, "endpoint_uuid": {"uuid": "port-1-out"}}, + {"device_id": {"device_uuid": {"uuid": "MGON1"}},"endpoint_uuid": {"uuid": "port-9-in"}} + ], + "optical_details": { + "length": 0, "src_port": "port-1-out", "dst_port": "port-9-in", "local_peer_port": "port-1-in", "remote_peer_port": "port-9-out", + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON2-MGON3", "link_id": {"link_uuid": {"uuid": "MGON2->MGON3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON2"}}, "endpoint_uuid": {"uuid": "port-9-out"}}, + {"device_id": {"device_uuid": {"uuid": "MGON3"}},"endpoint_uuid": {"uuid": "port-1-in"}} + ], + "optical_details": { + "length": 0, "src_port": "port-9-out", "dst_port": "port-1-in", "local_peer_port": "port-9-in", "remote_peer_port": "port-1-out", + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON3-MGON2", "link_id": {"link_uuid": {"uuid": "MGON3->MGON2"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON3"}}, "endpoint_uuid": {"uuid": "port-1-out"}}, + {"device_id": {"device_uuid": {"uuid": "MGON2"}},"endpoint_uuid": {"uuid": "port-9-in"}} + ], + "optical_details": { + "length": 0, "src_port": "port-1-out", "dst_port": "port-9-in", "local_peer_port": "port-1-in", "remote_peer_port": "port-9-out", + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "T2.1-MGON3", "link_id": {"link_uuid": {"uuid": "T2.1->MGON3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.1"}}, "endpoint_uuid": {"uuid": "1"}}, + {"device_id": {"device_uuid": {"uuid": "MGON3"}},"endpoint_uuid": {"uuid": "port-33-in"}} + ], + "optical_details": { + "length": 0, "src_port": "1", "dst_port": "port-33-in", "local_peer_port": "1", "remote_peer_port": "port-33-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "T2.2-MGON3", "link_id": {"link_uuid": {"uuid": "T2.2->MGON3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.2"}}, "endpoint_uuid": {"uuid": "2"}}, + {"device_id": {"device_uuid": {"uuid": "MGON3"}},"endpoint_uuid": {"uuid": "port-34-in"}} + ], + "optical_details": { + "length": 0, "src_port": "2", "dst_port": "port-34-in", "local_peer_port": "2", "remote_peer_port": "port-34-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "T2.3-MGON3", "link_id": {"link_uuid": {"uuid": "T2.3->MGON3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "T2.3"}}, "endpoint_uuid": {"uuid": "3"}}, + {"device_id": {"device_uuid": {"uuid": "MGON3"}},"endpoint_uuid": {"uuid": "port-35-in"}} + ], + "optical_details": { + "length": 0, "src_port": "3", "dst_port": "port-35-in", "local_peer_port": "3", "remote_peer_port": "port-35-out", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON3-T2.1", "link_id": {"link_uuid": {"uuid": "MGON3->T2.1"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON3"}}, "endpoint_uuid": {"uuid": "port-33-out"}}, + {"device_id": {"device_uuid": {"uuid": "T2.1"}},"endpoint_uuid": {"uuid": "1"}} + ], + "optical_details": { + "length": 0, "src_port": "port-33-out", "dst_port": "1", "local_peer_port": "port-33-in", "remote_peer_port": "1", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON3-T2.2", "link_id": {"link_uuid": {"uuid": "MGON3->T2.2"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON3"}}, "endpoint_uuid": {"uuid": "port-34-out"}}, + {"device_id": {"device_uuid": {"uuid": "T2.2"}},"endpoint_uuid": {"uuid": "2"}} + ], + "optical_details": { + "length": 0, "src_port": "port-34-out", "dst_port": "2", "local_peer_port": "port-34-in", "remote_peer_port": "2", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + }, + { + "name": "MGON3-T2.3", "link_id": {"link_uuid": {"uuid": "MGON3->T2.3"}}, + "link_endpoint_ids": [ + {"device_id": {"device_uuid": {"uuid": "MGON3"}}, "endpoint_uuid": {"uuid": "port-35-out"}}, + {"device_id": {"device_uuid": {"uuid": "T2.3"}},"endpoint_uuid": {"uuid": "3"}} + ], + "optical_details": { + "length": 0, "src_port": "port-35-out", "dst_port": "3", "local_peer_port": "port-35-in", "remote_peer_port": "3", "used": false, + "c_slots": { + "1": 1, "2": 1, "3": 1, "4": 1, "5": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, + "11": 1, "12": 1, "13": 1, "14": 1, "15": 1, "16": 1, "17": 1, "18": 1, "19": 1, "20": 1, + "21": 1, "22": 1, "23": 1, "24": 1, "25": 1, "26": 1, "27": 1, "28": 1, "29": 1, "30": 1, + "31": 1, "32": 1, "33": 1, "34": 1, "35": 1, "36": 1, "37": 1, "38": 1, "39": 1, "40": 1, + "41": 1, "42": 1, "43": 1, "44": 1, "45": 1, "46": 1, "47": 1, "48": 1, "49": 1, "50": 1, + "51": 1, "52": 1, "53": 1, "54": 1, "55": 1, "56": 1, "57": 1, "58": 1, "59": 1, "60": 1 + }, + "l_slots": { + "101": 1, "102": 1, "103": 1, "104": 1, "105": 1, "106": 1, "107": 1, "108": 1, "109": 1, "110": 1, + "111": 1, "112": 1, "113": 1, "114": 1, "115": 1, "116": 1, "117": 1, "118": 1, "119": 1, "120": 1 + }, + "s_slots": { + "501": 1, "502": 1, "503": 1, "504": 1, "505": 1, "506": 1, "507": 1, "508": 1, "509": 1, "510": 1, + "511": 1, "512": 1, "513": 1, "514": 1, "515": 1, "516": 1, "517": 1, "518": 1, "519": 1, "520": 1 + } + } + } + ] +} -- GitLab From 24d6634b7939577fcbf58f135dfea8fb95ea3148 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 24 Mar 2025 16:18:50 +0000 Subject: [PATCH 164/213] OFC25 tests: - Added labels in all-in-one deployment to differentiate TFS instances --- src/tests/ofc25/deploy.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tests/ofc25/deploy.sh b/src/tests/ofc25/deploy.sh index fb892e14c..c630647a0 100755 --- a/src/tests/ofc25/deploy.sh +++ b/src/tests/ofc25/deploy.sh @@ -57,6 +57,7 @@ cp manifests/contextservice.yaml manifests/contextservice.yaml.bak source src/tests/ofc25/deploy_specs_opt.sh cp manifests/contextservice.yaml.bak manifests/contextservice.yaml sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_opt_context"/}' manifests/contextservice.yaml +sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (Optical)</h2>|' src/webui/service/templates/main/home.html ./deploy/crdb.sh ./deploy/nats.sh @@ -73,6 +74,7 @@ mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_opt.sh source src/tests/ofc25/deploy_specs_ip.sh cp manifests/contextservice.yaml.bak manifests/contextservice.yaml sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_ip_context"/}' manifests/contextservice.yaml +sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (Packet)</h2>|' src/webui/service/templates/main/home.html ./deploy/crdb.sh ./deploy/nats.sh @@ -89,6 +91,7 @@ mv tfs_runtime_env_vars.sh tfs_runtime_env_vars_ip.sh source src/tests/ofc25/deploy_specs_e2e.sh cp manifests/contextservice.yaml.bak manifests/contextservice.yaml sed -i '/name: CRDB_DATABASE/{n;s/value: .*/value: "tfs_e2e_context"/}' manifests/contextservice.yaml +sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (End-to-End)</h2>|' src/webui/service/templates/main/home.html ./deploy/crdb.sh ./deploy/nats.sh -- GitLab From bfcf43481155b14e12fa73c7b8067d7e39f42d28 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 24 Mar 2025 16:22:05 +0000 Subject: [PATCH 165/213] OFC25 tests: - Corrected paths --- src/tests/ofc25/separate_vms/deploy_e2e.sh | 2 +- src/tests/ofc25/separate_vms/deploy_opt.sh | 2 +- src/tests/ofc25/separate_vms/deploy_pkt.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tests/ofc25/separate_vms/deploy_e2e.sh b/src/tests/ofc25/separate_vms/deploy_e2e.sh index c8f3e4dee..9196e9de0 100755 --- a/src/tests/ofc25/separate_vms/deploy_e2e.sh +++ b/src/tests/ofc25/separate_vms/deploy_e2e.sh @@ -34,7 +34,7 @@ # ===== Deploy End-to-End TeraFlowSDN ==================== sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (End-to-End)</h2>|' src/webui/service/templates/main/home.html -source src/tests/ofc25/deploy_specs_e2e.sh +source src/tests/ofc25/separate_vms/deploy_specs_e2e.sh ./deploy/crdb.sh ./deploy/nats.sh diff --git a/src/tests/ofc25/separate_vms/deploy_opt.sh b/src/tests/ofc25/separate_vms/deploy_opt.sh index a5e27f146..d2123cd96 100755 --- a/src/tests/ofc25/separate_vms/deploy_opt.sh +++ b/src/tests/ofc25/separate_vms/deploy_opt.sh @@ -34,7 +34,7 @@ # ===== Deploy End-to-End TeraFlowSDN ==================== sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (Optical)</h2>|' src/webui/service/templates/main/home.html -source src/tests/ofc25/deploy_specs_opt.sh +source src/tests/ofc25/separate_vms/deploy_specs_opt.sh ./deploy/crdb.sh ./deploy/nats.sh diff --git a/src/tests/ofc25/separate_vms/deploy_pkt.sh b/src/tests/ofc25/separate_vms/deploy_pkt.sh index bf0c211ef..b3fadcd96 100755 --- a/src/tests/ofc25/separate_vms/deploy_pkt.sh +++ b/src/tests/ofc25/separate_vms/deploy_pkt.sh @@ -34,7 +34,7 @@ # ===== Deploy End-to-End TeraFlowSDN ==================== sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (Packet)</h2>|' src/webui/service/templates/main/home.html -source src/tests/ofc25/deploy_specs_pkt.sh +source src/tests/ofc25/separate_vms/deploy_specs_pkt.sh ./deploy/crdb.sh ./deploy/nats.sh -- GitLab From b7a46ef0818d771390c7001437ff0c4d5032139f Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Mon, 24 Mar 2025 17:37:05 +0000 Subject: [PATCH 166/213] OFC25 tests: - Corrected file names --- .../separate_vms/{deploy_specs_ip.sh => deploy_specs_pkt.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/tests/ofc25/separate_vms/{deploy_specs_ip.sh => deploy_specs_pkt.sh} (100%) diff --git a/src/tests/ofc25/separate_vms/deploy_specs_ip.sh b/src/tests/ofc25/separate_vms/deploy_specs_pkt.sh similarity index 100% rename from src/tests/ofc25/separate_vms/deploy_specs_ip.sh rename to src/tests/ofc25/separate_vms/deploy_specs_pkt.sh -- GitLab From 18b5143cd638abb917ded4262b2b14659d7712b3 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 25 Mar 2025 10:28:42 +0000 Subject: [PATCH 167/213] Device component - OpenConfig driver: - Added missing AFI-SAFI in BGP config --- .../templates/VPN/Network_instance_multivendor.py | 6 ++++++ .../templates/network_instance/protocols/edit_config.xml | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/src/device/service/drivers/openconfig/templates/VPN/Network_instance_multivendor.py b/src/device/service/drivers/openconfig/templates/VPN/Network_instance_multivendor.py index 71581640e..761312c47 100644 --- a/src/device/service/drivers/openconfig/templates/VPN/Network_instance_multivendor.py +++ b/src/device/service/drivers/openconfig/templates/VPN/Network_instance_multivendor.py @@ -134,6 +134,12 @@ def add_protocol_NI(parameters,vendor, DEL): with tag('as') :text(parameters['as']) if "router_id" in parameters: with tag('router-id'):text(parameters['router_id']) + with tag('afi-safis'): + with tag('afi-safi', 'xmlns:oc-bgp-types="http://openconfig.net/yang/bgp-types"'): + with tag('afi-safi-name'): text('oc-bgp-types:IPV4_UNICAST') + with tag('config'): + with tag('afi-safi-name'): text('oc-bgp-types:IPV4_UNICAST') + with tag('enabled'): text('true') if 'neighbors' in parameters: with tag('neighbors'): for neighbor in parameters['neighbors']: diff --git a/src/device/service/drivers/openconfig/templates/network_instance/protocols/edit_config.xml b/src/device/service/drivers/openconfig/templates/network_instance/protocols/edit_config.xml index da66d97f0..7c36dfb45 100644 --- a/src/device/service/drivers/openconfig/templates/network_instance/protocols/edit_config.xml +++ b/src/device/service/drivers/openconfig/templates/network_instance/protocols/edit_config.xml @@ -19,6 +19,15 @@ <as>{{as}}</as> <router-id>{{router_id}}</router-id> </config> + <afi-safis> + <afi-safi xmlns:oc-bgp-types="http://openconfig.net/yang/bgp-types"> + <afi-safi-name>oc-bgp-types:IPV4_UNICAST</afi-safi-name> + <config> + <afi-safi-name>oc-bgp-types:IPV4_UNICAST</afi-safi-name> + <enabled>true</enabled> + </config> + </afi-safi> + </afi-safis> </global> {% if neighbors is defined %} <neighbors> -- GitLab From 386aab3c39187e120e9487138210febfaaa7453c Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Tue, 25 Mar 2025 10:29:01 +0000 Subject: [PATCH 168/213] OFC25 tests: - Corrected wait for subscriber in E2E deployment --- src/tests/ofc25/separate_vms/deploy_e2e.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/ofc25/separate_vms/deploy_e2e.sh b/src/tests/ofc25/separate_vms/deploy_e2e.sh index 9196e9de0..d2cdf8f10 100755 --- a/src/tests/ofc25/separate_vms/deploy_e2e.sh +++ b/src/tests/ofc25/separate_vms/deploy_e2e.sh @@ -47,8 +47,8 @@ source src/tests/ofc25/separate_vms/deploy_specs_e2e.sh # ===== Wait Content for NATS Subscription ========================= echo "Waiting for E2E Context to have subscriber ready..." -while ! kubectl --namespace tfs-e2e logs deployment/contextservice -c server 2>&1 | grep -q 'Subscriber is Ready? True'; do sleep 1; done -kubectl --namespace tfs-e2e logs deployment/contextservice -c server +while ! kubectl --namespace tfs logs deployment/contextservice -c server 2>&1 | grep -q 'Subscriber is Ready? True'; do sleep 1; done +kubectl --namespace tfs logs deployment/contextservice -c server echo "Done!" -- GitLab From 617797ffaabe5f1714925f938cf5cf0031339af8 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 9 Apr 2025 15:43:01 +0000 Subject: [PATCH 169/213] Deploy scripts: - Corrected deploy of pre-built docker images --- deploy/tfs.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/deploy/tfs.sh b/deploy/tfs.sh index a1429e443..382bce345 100755 --- a/deploy/tfs.sh +++ b/deploy/tfs.sh @@ -342,11 +342,7 @@ for COMPONENT in $TFS_COMPONENTS; do sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT-gateway:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST" else VERSION=$(grep -i "${GITLAB_REPO_URL}/${COMPONENT}:" "$MANIFEST" | cut -d ":" -f4) - if [ "$TFS_SKIP_BUILD" != "YES" ]; then - IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') - else - IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT:$VERSION" | sed 's,//,/,g' | sed 's,http:/,,g') - fi + IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') sed -E -i "s#image: $GITLAB_REPO_URL/$COMPONENT:${VERSION}#image: $IMAGE_URL#g" "$MANIFEST" fi -- GitLab From 8a7a1ffcbca900e761778f5422e9a6e7c27c3535 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 9 Apr 2025 16:27:02 +0000 Subject: [PATCH 170/213] Manifests: - Corrected log levels, annotations, and ports --- manifests/e2e_orchestratorservice.yaml | 9 +-------- manifests/nbiservice.yaml | 2 +- manifests/opticalcontrollerservice.yaml | 2 +- manifests/serviceservice.yaml | 2 +- manifests/vnt_managerservice.yaml | 5 +---- 5 files changed, 5 insertions(+), 15 deletions(-) diff --git a/manifests/e2e_orchestratorservice.yaml b/manifests/e2e_orchestratorservice.yaml index c628df3a7..34121e043 100644 --- a/manifests/e2e_orchestratorservice.yaml +++ b/manifests/e2e_orchestratorservice.yaml @@ -23,9 +23,6 @@ spec: replicas: 1 template: metadata: - annotations: - config.linkerd.io/skip-outbound-ports: "8761" - config.linkerd.io/skip-inbound-ports: "8761" labels: app: e2e-orchestratorservice spec: @@ -37,10 +34,9 @@ spec: ports: - containerPort: 10050 - containerPort: 9192 - - containerPort: 8762 env: - name: LOG_LEVEL - value: "DEBUG" + value: "INFO" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:10050"] @@ -72,6 +68,3 @@ spec: - name: metrics port: 9192 targetPort: 9192 - - name: ws - port: 8762 - targetPort: 8762 diff --git a/manifests/nbiservice.yaml b/manifests/nbiservice.yaml index bc1882e22..5133af5ce 100644 --- a/manifests/nbiservice.yaml +++ b/manifests/nbiservice.yaml @@ -39,7 +39,7 @@ spec: #- containerPort: 9192 env: - name: LOG_LEVEL - value: "DEBUG" + value: "INFO" - name: FLASK_ENV value: "production" # change to "development" if developing - name: IETF_NETWORK_RENDERER diff --git a/manifests/opticalcontrollerservice.yaml b/manifests/opticalcontrollerservice.yaml index 341af782a..d537076fe 100644 --- a/manifests/opticalcontrollerservice.yaml +++ b/manifests/opticalcontrollerservice.yaml @@ -36,7 +36,7 @@ spec: - containerPort: 9192 env: - name: LOG_LEVEL - value: "DEBUG" + value: "INFO" #readinessProbe: # exec: # command: ["/bin/grpc_health_probe", "-addr=:10060"] diff --git a/manifests/serviceservice.yaml b/manifests/serviceservice.yaml index 72c3015b3..aa94e4269 100644 --- a/manifests/serviceservice.yaml +++ b/manifests/serviceservice.yaml @@ -36,7 +36,7 @@ spec: - containerPort: 9192 env: - name: LOG_LEVEL - value: "DEBUG" + value: "INFO" readinessProbe: exec: command: ["/bin/grpc_health_probe", "-addr=:3030"] diff --git a/manifests/vnt_managerservice.yaml b/manifests/vnt_managerservice.yaml index 6f82a341c..3c73bd58d 100644 --- a/manifests/vnt_managerservice.yaml +++ b/manifests/vnt_managerservice.yaml @@ -23,9 +23,6 @@ spec: replicas: 1 template: metadata: - annotations: - config.linkerd.io/skip-outbound-ports: "8765" - config.linkerd.io/skip-inbound-ports: "8765" labels: app: vnt-managerservice spec: @@ -39,7 +36,7 @@ spec: - containerPort: 9192 env: - name: LOG_LEVEL - value: "DEBUG" + value: "INFO" envFrom: - secretRef: name: kfk-kpi-data -- GitLab From f3642dbd9017d8ff00a220d360625ba6c707cec3 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 9 Apr 2025 16:35:59 +0000 Subject: [PATCH 171/213] E2E Orchestrator component: - Remove unneeded files --- src/e2e_orchestrator/service/TopologyTools.py | 37 --- .../old_E2EOrchestratorServiceServicerImpl.py | 268 ------------------ 2 files changed, 305 deletions(-) delete mode 100644 src/e2e_orchestrator/service/TopologyTools.py delete mode 100644 src/e2e_orchestrator/service/old_E2EOrchestratorServiceServicerImpl.py diff --git a/src/e2e_orchestrator/service/TopologyTools.py b/src/e2e_orchestrator/service/TopologyTools.py deleted file mode 100644 index eaa0e2dbb..000000000 --- a/src/e2e_orchestrator/service/TopologyTools.py +++ /dev/null @@ -1,37 +0,0 @@ - def retrieve_external_topologies(self): - i = 1 - while True: - try: - ADD = str(get_setting(f'EXT_CONTROLLER{i}_ADD')) - PORT = int(get_setting(f'EXT_CONTROLLER{i}_PORT')) - except: # pylint: disable=bare-except - break - - try: - LOGGER.info('Retrieving external controller #{:d}'.format(i)) - url = 'http://{:s}:{:d}/tfs-api/context/{:s}/topology_details/{:s}'.format( - ADD, PORT, DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME - ) - LOGGER.info('url={:s}'.format(str(url))) - topo = requests.get(url).json() - LOGGER.info('Retrieved external controller #{:d}'.format(i)) - except: # pylint: disable=bare-except - LOGGER.exception('Exception retrieven topology from external controler #{:d}'.format(i)) - - topology_details = TopologyDetails(**topo) - context = Context() - context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid - context_client.SetContext(context) - - topology = Topology() - topology.topology_id.context_id.CopyFrom(context.context_id) - topology.topology_id.topology_uuid.uuid = topology_details.topology_id.topology_uuid.uuid - context_client.SetTopology(topology) - - for device in topology_details.devices: - context_client.SetDevice(device) - - for link in topology_details.links: - context_client.SetLink(link) - - i+=1 diff --git a/src/e2e_orchestrator/service/old_E2EOrchestratorServiceServicerImpl.py b/src/e2e_orchestrator/service/old_E2EOrchestratorServiceServicerImpl.py deleted file mode 100644 index 4878d4788..000000000 --- a/src/e2e_orchestrator/service/old_E2EOrchestratorServiceServicerImpl.py +++ /dev/null @@ -1,268 +0,0 @@ -# Copyright 2022-2024 ETSI 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 copy, grpc, json, logging, networkx, requests, threading -from common.method_wrappers.Decorator import MetricsPool, safe_and_metered_rpc_method -from common.proto.e2eorchestrator_pb2 import E2EOrchestratorRequest, E2EOrchestratorReply -from common.proto.context_pb2 import ( - Empty, Connection, EndPointId, Link, LinkId, TopologyDetails, Topology, Context, Service, ServiceId, - ServiceTypeEnum, ServiceStatusEnum) -from common.proto.e2eorchestrator_pb2_grpc import E2EOrchestratorServiceServicer -from common.proto.vnt_manager_pb2 import VNTSubscriptionRequest -from common.tools.grpc.Tools import grpc_message_to_json_string -from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME -from common.Settings import get_setting -from context.client.ContextClient import ContextClient -from context.service.database.uuids.EndPoint import endpoint_get_uuid -from context.service.database.uuids.Device import device_get_uuid -from service.client.ServiceClient import ServiceClient -from websockets.sync.client import connect -from websockets.sync.server import serve - - -LOGGER = logging.getLogger(__name__) -logging.getLogger("websockets").propagate = True -logging.getLogger("requests.packages.urllib3").propagate = True - -METRICS_POOL = MetricsPool("E2EOrchestrator", "RPC") - - -context_client: ContextClient = ContextClient() -service_client: ServiceClient = ServiceClient() - -EXT_HOST = str(get_setting('WS_IP_HOST')) -EXT_PORT = int(get_setting('WS_IP_PORT')) -EXT_URL = 'ws://{:s}:{:d}'.format(EXT_HOST, EXT_PORT) - -OWN_HOST = str(get_setting('WS_E2E_HOST')) -OWN_PORT = int(get_setting('WS_E2E_PORT')) - -ALL_HOSTS = '0.0.0.0' - -class SubscriptionServer(threading.Thread): - def run(self): - request = VNTSubscriptionRequest() - request.host = OWN_HOST - request.port = OWN_PORT - try: - LOGGER.debug('Trying to connect to {:s}'.format(EXT_URL)) - websocket = connect(EXT_URL) - except: # pylint: disable=bare-except - LOGGER.exception('Error connecting to {:s}'.format(EXT_URL)) - else: - with websocket: - LOGGER.debug('Connected to {:s}'.format(EXT_URL)) - send = grpc_message_to_json_string(request) - websocket.send(send) - LOGGER.debug('Sent: {:s}'.format(send)) - try: - message = websocket.recv() - LOGGER.debug('Received message from WebSocket: {:s}'.format(message)) - except Exception as ex: - LOGGER.error('Exception receiving from WebSocket: {:s}'.format(ex)) - self._events_server() - - - def _events_server(self): - try: - server = serve(self._event_received, ALL_HOSTS, int(OWN_PORT)) - except: # pylint: disable=bare-except - LOGGER.exception('Error starting server on {:s}:{:d}'.format(ALL_HOSTS, OWN_PORT)) - else: - with server: - LOGGER.info('Running events server...: {:s}:{:d}'.format(ALL_HOSTS, OWN_PORT)) - server.serve_forever() - - - def _event_received(self, connection): - LOGGER.debug('Event received') - for message in connection: - message_json = json.loads(message) - - # Link creation - if 'link_id' in message_json: - LOGGER.debug('Link creation') - link = Link(**message_json) - - service = Service() - service.service_id.service_uuid.uuid = link.link_id.link_uuid.uuid - service.service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME - service.service_type = ServiceTypeEnum.SERVICETYPE_OPTICAL_CONNECTIVITY - service.service_status.service_status = ServiceStatusEnum.SERVICESTATUS_PLANNED - service_client.CreateService(service) - - a_device_uuid = device_get_uuid(link.link_endpoint_ids[0].device_id) - a_endpoint_uuid = endpoint_get_uuid(link.link_endpoint_ids[0])[2] - z_device_uuid = device_get_uuid(link.link_endpoint_ids[1].device_id) - z_endpoint_uuid = endpoint_get_uuid(link.link_endpoint_ids[1])[2] - - links = context_client.ListLinks(Empty()).links - for _link in links: - for _endpoint_id in _link.link_endpoint_ids: - if _endpoint_id.device_id.device_uuid.uuid == a_device_uuid and \ - _endpoint_id.endpoint_uuid.uuid == a_endpoint_uuid: - a_ep_id = _endpoint_id - elif _endpoint_id.device_id.device_uuid.uuid == z_device_uuid and \ - _endpoint_id.endpoint_uuid.uuid == z_endpoint_uuid: - z_ep_id = _endpoint_id - - if (not 'a_ep_id' in locals()) or (not 'z_ep_id' in locals()): - error_msg = f'Could not get VNT link endpoints\ - \n\ta_endpoint_uuid= {a_endpoint_uuid}\ - \n\tz_endpoint_uuid= {z_device_uuid}' - LOGGER.error(error_msg) - connection.send(error_msg) - return - - service.service_endpoint_ids.append(copy.deepcopy(a_ep_id)) - service.service_endpoint_ids.append(copy.deepcopy(z_ep_id)) - - service_client.UpdateService(service) - re_svc = context_client.GetService(service.service_id) - connection.send(grpc_message_to_json_string(link)) - context_client.SetLink(link) - elif 'link_uuid' in message_json: - LOGGER.debug('Link removal') - link_id = LinkId(**message_json) - - service_id = ServiceId() - service_id.service_uuid.uuid = link_id.link_uuid.uuid - service_id.context_id.context_uuid.uuid = DEFAULT_CONTEXT_NAME - service_client.DeleteService(service_id) - connection.send(grpc_message_to_json_string(link_id)) - context_client.RemoveLink(link_id) - else: - LOGGER.debug('Topology received') - topology_details = TopologyDetails(**message_json) - - context = Context() - context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid - context_client.SetContext(context) - - topology = Topology() - topology.topology_id.context_id.CopyFrom(context.context_id) - topology.topology_id.topology_uuid.uuid = topology_details.topology_id.topology_uuid.uuid - context_client.SetTopology(topology) - - for device in topology_details.devices: - context_client.SetDevice(device) - - for link in topology_details.links: - context_client.SetLink(link) - - - -class E2EOrchestratorServiceServicerImpl(E2EOrchestratorServiceServicer): - def __init__(self): - LOGGER.debug('Creating Servicer...') - try: - LOGGER.debug('Requesting subscription') - sub_server = SubscriptionServer() - sub_server.start() - LOGGER.debug('Servicer Created') - self.retrieve_external_topologies() - except: - LOGGER.exception('Unhandled Exception') - - def retrieve_external_topologies(self): - i = 1 - while True: - try: - ADD = str(get_setting(f'EXT_CONTROLLER{i}_ADD')) - PORT = int(get_setting(f'EXT_CONTROLLER{i}_PORT')) - except: # pylint: disable=bare-except - break - - try: - LOGGER.info('Retrieving external controller #{:d}'.format(i)) - url = 'http://{:s}:{:d}/tfs-api/context/{:s}/topology_details/{:s}'.format( - ADD, PORT, DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME - ) - LOGGER.info('url={:s}'.format(str(url))) - topo = requests.get(url).json() - LOGGER.info('Retrieved external controller #{:d}'.format(i)) - except: # pylint: disable=bare-except - LOGGER.exception('Exception retrieven topology from external controler #{:d}'.format(i)) - - topology_details = TopologyDetails(**topo) - context = Context() - context.context_id.context_uuid.uuid = topology_details.topology_id.context_id.context_uuid.uuid - context_client.SetContext(context) - - topology = Topology() - topology.topology_id.context_id.CopyFrom(context.context_id) - topology.topology_id.topology_uuid.uuid = topology_details.topology_id.topology_uuid.uuid - context_client.SetTopology(topology) - - for device in topology_details.devices: - context_client.SetDevice(device) - - for link in topology_details.links: - context_client.SetLink(link) - - i+=1 - - - @safe_and_metered_rpc_method(METRICS_POOL, LOGGER) - def Compute(self, request: E2EOrchestratorRequest, context: grpc.ServicerContext) -> E2EOrchestratorReply: - endpoints_ids = [] - for endpoint_id in request.service.service_endpoint_ids: - endpoints_ids.append(endpoint_get_uuid(endpoint_id)[2]) - - graph = networkx.Graph() - - devices = context_client.ListDevices(Empty()).devices - - for device in devices: - endpoints_uuids = [endpoint.endpoint_id.endpoint_uuid.uuid - for endpoint in device.device_endpoints] - for ep in endpoints_uuids: - graph.add_node(ep) - - for ep in endpoints_uuids: - for ep_i in endpoints_uuids: - if ep == ep_i: - continue - graph.add_edge(ep, ep_i) - - links = context_client.ListLinks(Empty()).links - for link in links: - eps = [] - for endpoint_id in link.link_endpoint_ids: - eps.append(endpoint_id.endpoint_uuid.uuid) - graph.add_edge(eps[0], eps[1]) - - - shortest = networkx.shortest_path(graph, endpoints_ids[0], endpoints_ids[1]) - - path = E2EOrchestratorReply() - path.services.append(copy.deepcopy(request.service)) - for i in range(0, int(len(shortest)/2)): - conn = Connection() - ep_a_uuid = str(shortest[i*2]) - ep_z_uuid = str(shortest[i*2+1]) - - conn.connection_id.connection_uuid.uuid = str(ep_a_uuid) + '_->_' + str(ep_z_uuid) - - ep_a_id = EndPointId() - ep_a_id.endpoint_uuid.uuid = ep_a_uuid - conn.path_hops_endpoint_ids.append(ep_a_id) - - ep_z_id = EndPointId() - ep_z_id.endpoint_uuid.uuid = ep_z_uuid - conn.path_hops_endpoint_ids.append(ep_z_id) - - path.connections.append(conn) - - return path -- GitLab From 89ae4bd011d107fb13ff8ed5c030c6252320db3e Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 9 Apr 2025 16:36:08 +0000 Subject: [PATCH 172/213] Manifests: - Corrected log levels, annotations, and ports --- manifests/pathcompservice.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifests/pathcompservice.yaml b/manifests/pathcompservice.yaml index b6f969bf4..0cac6cc18 100644 --- a/manifests/pathcompservice.yaml +++ b/manifests/pathcompservice.yaml @@ -36,7 +36,7 @@ spec: - containerPort: 9192 env: - name: LOG_LEVEL - value: "DEBUG" + value: "INFO" - name: ENABLE_FORECASTER value: "NO" readinessProbe: -- GitLab From 8b77136376dd04117fa2e17176a336e003be7d16 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 9 Apr 2025 16:40:12 +0000 Subject: [PATCH 173/213] NBI component: - Remove unneeded GitLab CI/CD commands --- src/nbi/.gitlab-ci.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 52f9d856b..674aabf01 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -82,19 +82,12 @@ unit_test nbi: - docker ps -a - docker logs mock_tfs_nbi_dependencies - docker logs $IMAGE_NAME - - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml" - - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" - - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" - - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" - - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" - - date - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" - - date - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' after_script: -- GitLab From 4928cbc55f14e7ba4ce877c4f6e173e2c6f1c245 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 9 Apr 2025 16:40:39 +0000 Subject: [PATCH 174/213] GitLab CI/CD pipeline: - Reactivated tests of Automation component --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 769ccd80e..2fe405733 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,7 +34,7 @@ include: - local: '/src/opticalcontroller/.gitlab-ci.yml' - local: '/src/ztp/.gitlab-ci.yml' - local: '/src/policy/.gitlab-ci.yml' - #- local: '/src/automation/.gitlab-ci.yml' + - local: '/src/automation/.gitlab-ci.yml' - local: '/src/forecaster/.gitlab-ci.yml' #- local: '/src/webui/.gitlab-ci.yml' #- local: '/src/l3_distributedattackdetector/.gitlab-ci.yml' -- GitLab From c609d51c37d2d92d5fdac17af6fec796405e9a92 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 9 Apr 2025 17:11:16 +0000 Subject: [PATCH 175/213] GitLab CI/CD pipeline - NBI component: - Corrected test log levels --- src/nbi/.gitlab-ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml index 674aabf01..2e280ed8a 100644 --- a/src/nbi/.gitlab-ci.yml +++ b/src/nbi/.gitlab-ci.yml @@ -82,12 +82,12 @@ unit_test nbi: - docker ps -a - docker logs mock_tfs_nbi_dependencies - docker logs $IMAGE_NAME - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" - - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml" + - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml" - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' after_script: -- GitLab From 3cdeb456a2d18294f6c7998cb03e1b51268dc8c4 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Wed, 9 Apr 2025 17:22:54 +0000 Subject: [PATCH 176/213] Forecaster component: - Added missing dependencies --- src/forecaster/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/forecaster/Dockerfile b/src/forecaster/Dockerfile index f521eab40..8e4bd3c4e 100644 --- a/src/forecaster/Dockerfile +++ b/src/forecaster/Dockerfile @@ -72,6 +72,8 @@ COPY src/service/__init__.py service/__init__.py COPY src/service/client/. service/client/ COPY src/slice/__init__.py slice/__init__.py COPY src/slice/client/. slice/client/ +COPY src/vnt_manager/__init__.py vnt_manager/__init__.py +COPY src/vnt_manager/client/. vnt_manager/client/ COPY src/forecaster/. forecaster/ # Start the service -- GitLab From 1a2ad3f91f2b8404b9f60f808a8a6677ce8b769d Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Thu, 10 Apr 2025 10:57:52 +0200 Subject: [PATCH 177/213] Code cleanup --- proto/context.proto | 2 +- proto/nfv_client.proto | 51 -- proto/nos_client.proto | 33 - src/common/tools/object_factory/Device.py | 6 +- src/device/service/drivers/__init__.py | 2 +- .../drivers/smartnic/probes-agent.yang | 14 + .../nbi_plugins/agent_probes/Resources.py | 180 +---- .../nbi_plugins/agent_probes/Tools.py | 73 +-- .../nbi_plugins/agent_probes/__init__.py | 41 +- src/nbi/tests/data/agent_probes_device.json | 1 - src/policy/Dockerfile | 67 +- src/policy/src/main/proto/acl.proto | 70 +- src/policy/src/main/proto/context.proto | 616 +----------------- .../src/main/proto/context_policy.proto | 29 +- src/policy/src/main/proto/device.proto | 35 +- .../src/main/proto/kpi_sample_types.proto | 43 +- src/policy/src/main/proto/monitoring.proto | 175 +---- src/policy/src/main/proto/policy.proto | 114 +--- src/policy/src/main/proto/policy_action.proto | 43 +- .../src/main/proto/policy_condition.proto | 44 +- src/policy/src/main/proto/service.proto | 26 +- src/ztp/Dockerfile | 68 +- src/ztp/src/main/proto/acl.proto | 70 +- src/ztp/src/main/proto/context.proto | 616 +----------------- src/ztp/src/main/proto/device.proto | 35 +- src/ztp/src/main/proto/kpi_sample_types.proto | 43 +- src/ztp/src/main/proto/monitoring.proto | 175 +---- src/ztp/src/main/proto/ztp.proto | 70 +- 28 files changed, 42 insertions(+), 2700 deletions(-) delete mode 100644 proto/nfv_client.proto delete mode 100644 proto/nos_client.proto mode change 100644 => 120000 src/policy/Dockerfile mode change 100644 => 120000 src/policy/src/main/proto/acl.proto mode change 100644 => 120000 src/policy/src/main/proto/context.proto mode change 100644 => 120000 src/policy/src/main/proto/context_policy.proto mode change 100644 => 120000 src/policy/src/main/proto/device.proto mode change 100644 => 120000 src/policy/src/main/proto/kpi_sample_types.proto mode change 100644 => 120000 src/policy/src/main/proto/monitoring.proto mode change 100644 => 120000 src/policy/src/main/proto/policy.proto mode change 100644 => 120000 src/policy/src/main/proto/policy_action.proto mode change 100644 => 120000 src/policy/src/main/proto/policy_condition.proto mode change 100644 => 120000 src/policy/src/main/proto/service.proto mode change 100644 => 120000 src/ztp/Dockerfile mode change 100644 => 120000 src/ztp/src/main/proto/acl.proto mode change 100644 => 120000 src/ztp/src/main/proto/context.proto mode change 100644 => 120000 src/ztp/src/main/proto/device.proto mode change 100644 => 120000 src/ztp/src/main/proto/kpi_sample_types.proto mode change 100644 => 120000 src/ztp/src/main/proto/monitoring.proto mode change 100644 => 120000 src/ztp/src/main/proto/ztp.proto diff --git a/proto/context.proto b/proto/context.proto index b6b55c15f..d22dcdc43 100644 --- a/proto/context.proto +++ b/proto/context.proto @@ -497,7 +497,7 @@ message EndPointId { message EndPoint { EndPointId endpoint_id = 1; string name = 2; - string endpoint_type = 3; // == 'smartnics' + string endpoint_type = 3; repeated kpi_sample_types.KpiSampleType kpi_sample_types = 4; Location endpoint_location = 5; map<string, google.protobuf.Any> capabilities = 6; diff --git a/proto/nfv_client.proto b/proto/nfv_client.proto deleted file mode 100644 index d903e7907..000000000 --- a/proto/nfv_client.proto +++ /dev/null @@ -1,51 +0,0 @@ -// 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. - -syntax = "proto3"; -package nfv_client; - -import "context.proto"; - -message Nsd { - string nsd_name = 1; - string config_params=2; -} - -message Ns { - string ns_id=1; - string ns_name=2; - string nsd_name=3; - string vim_account=4; - string config_params=5; - string status = 6; - string status_message = 7; -} - -message NsList { - repeated Ns ns = 1; -} - -message NsdList { - repeated Nsd nsd = 1; -} - -service nfv_client { - rpc GetNsList (context.Empty) returns (NsList) {} - rpc GetNsdList (context.Empty) returns (NsdList) {} - rpc CreateNs (Ns) returns (Ns) {} - rpc UpdateNs (Ns) returns (Ns) {} - rpc DeleteNs (Ns) returns (context.Empty) {} -} - - diff --git a/proto/nos_client.proto b/proto/nos_client.proto deleted file mode 100644 index e0e35a648..000000000 --- a/proto/nos_client.proto +++ /dev/null @@ -1,33 +0,0 @@ -// 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. - -syntax = "proto3"; -package nos_client; - -message NOS_SW { - string ztp_device_sw_url = 1; - bytes ztp_device_sw_file = 2; -} - -message Config_Script { - string config_script_url = 1; - bytes config_script_file = 2; -} - -service nos_client { - rpc GetNOSFile (NOS_SW) returns (NOS_SW) {} - rpc GetConfigScriptFile (Config_Script) returns (Config_Script) {} -} - - diff --git a/src/common/tools/object_factory/Device.py b/src/common/tools/object_factory/Device.py index bb5c85634..3d09d7156 100644 --- a/src/common/tools/object_factory/Device.py +++ b/src/common/tools/object_factory/Device.py @@ -12,13 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -import copy, logging +import copy from typing import Dict, List, Optional, Tuple from common.DeviceTypes import DeviceTypeEnum from common.proto.context_pb2 import DeviceDriverEnum, DeviceOperationalStatusEnum from common.tools.object_factory.ConfigRule import json_config_rule_set -LOGGER = logging.getLogger(__name__) DEVICE_DISABLED = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_DISABLED DEVICE_EMUDC_TYPE = DeviceTypeEnum.EMULATED_DATACENTER.value @@ -53,7 +52,6 @@ DEVICE_IETF_ACTN_DRIVERS = [DeviceDriverEnum.DEVICEDRIVER_IETF_ACTN] DEVICE_SMARTNIC_TYPE = DeviceTypeEnum.SMARTNIC.value DEVICE_SMARTNIC_DRIVERS = [DeviceDriverEnum.DEVICEDRIVER_SMARTNIC] - def json_device_id(device_uuid : str): return {'device_uuid': {'uuid': device_uuid}} @@ -63,13 +61,13 @@ def json_device( ): result = { 'device_id' : json_device_id(device_uuid), - 'name' : name, 'device_type' : device_type, 'device_config' : {'config_rules': copy.deepcopy(config_rules)}, 'device_operational_status': status, 'device_drivers' : copy.deepcopy(drivers), 'device_endpoints' : copy.deepcopy(endpoints), } + if name is not None: result['name'] = name return result def json_device_emulated_packet_router_disabled( diff --git a/src/device/service/drivers/__init__.py b/src/device/service/drivers/__init__.py index 3c1baf5df..ccb348c05 100644 --- a/src/device/service/drivers/__init__.py +++ b/src/device/service/drivers/__init__.py @@ -167,7 +167,7 @@ if LOAD_ALL_DEVICE_DRIVERS: DRIVERS.append( (SmartnicDriver, [ { - # Real P4 Switch, specifying P4 Driver => use P4Driver + # Real SmartNics device => use SmartNicsDriver FilterFieldEnum.DEVICE_TYPE: DeviceTypeEnum.SMARTNIC, FilterFieldEnum.DRIVER : DeviceDriverEnum.DEVICEDRIVER_SMARTNIC, } diff --git a/src/device/service/drivers/smartnic/probes-agent.yang b/src/device/service/drivers/smartnic/probes-agent.yang index 897d2f129..0ed81170a 100644 --- a/src/device/service/drivers/smartnic/probes-agent.yang +++ b/src/device/service/drivers/smartnic/probes-agent.yang @@ -1,3 +1,17 @@ +// 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. + module probes-agent { namespace "urn:probes-agent"; diff --git a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py index 50e8e77af..3c3184323 100644 --- a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py +++ b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Resources.py @@ -12,162 +12,22 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json -from flask.json import jsonify from flask_restful import Resource, request from common.proto.context_pb2 import Empty -from common.tools.grpc.Tools import grpc_message_to_json from context.client.ContextClient import ContextClient from device.client.DeviceClient import DeviceClient -from service.client.ServiceClient import ServiceClient -from .Tools import ( - format_grpc_to_json, grpc_connection_id, grpc_context_id, grpc_device, grpc_device_id, grpc_link_id, grpc_policy_rule_id, - grpc_service_id, grpc_service, grpc_slice_id, grpc_topology_id) +from .Tools import format_grpc_to_json, grpc_device, grpc_device_id class _Resource(Resource): def __init__(self) -> None: super().__init__() self.client = ContextClient() self.device_client = DeviceClient() - self.service_client = ServiceClient() - -class ContextIds(_Resource): - def get(self): - return format_grpc_to_json(self.client.ListContextIds(Empty())) - -class Contexts(_Resource): - def get(self): - return format_grpc_to_json(self.client.ListContexts(Empty())) - -class DummyContexts(_Resource): - def get(self): - contexts = grpc_message_to_json(self.client.ListContexts(Empty()), use_integers_for_enums=True)['contexts'] - devices = grpc_message_to_json(self.client.ListDevices(Empty()), use_integers_for_enums=True)['devices'] - links = grpc_message_to_json(self.client.ListLinks(Empty()), use_integers_for_enums=True)['links'] - - topologies = list() - slices = list() - services = list() - connections = list() - - for context in contexts: - context_uuid = context['context_id']['context_uuid']['uuid'] - context_id = grpc_context_id(context_uuid) - - topologies.extend(grpc_message_to_json( - self.client.ListTopologies(context_id), - use_integers_for_enums=True - )['topologies']) - - slices.extend(grpc_message_to_json( - self.client.ListSlices(context_id), - use_integers_for_enums=True - )['slices']) - - context_services = grpc_message_to_json( - self.client.ListServices(context_id), - use_integers_for_enums=True - )['services'] - services.extend(context_services) - - for service in context_services: - service_uuid = service['service_id']['service_uuid']['uuid'] - service_id = grpc_service_id(context_uuid, service_uuid) - connections.extend(grpc_message_to_json( - self.client.ListConnections(service_id), - use_integers_for_enums=True - )['connections']) - - for device in devices: - for config_rule in device['device_config']['config_rules']: - if 'custom' not in config_rule: continue - resource_value = config_rule['custom']['resource_value'] - if not isinstance(resource_value, str): continue - try: - resource_value = json.loads(resource_value) - except: # pylint: disable=bare-except - pass - config_rule['custom']['resource_value'] = resource_value - - dummy_context = {'dummy_mode': True} - if len(contexts ) > 0: dummy_context['contexts' ] = contexts - if len(topologies ) > 0: dummy_context['topologies' ] = topologies - if len(devices ) > 0: dummy_context['devices' ] = devices - if len(links ) > 0: dummy_context['links' ] = links - if len(slices ) > 0: dummy_context['slices' ] = slices - if len(services ) > 0: dummy_context['services' ] = services - if len(connections) > 0: dummy_context['connections'] = connections - return jsonify(dummy_context) - -class Context(_Resource): - def get(self, context_uuid : str): - return format_grpc_to_json(self.client.GetContext(grpc_context_id(context_uuid))) - -class TopologyIds(_Resource): - def get(self, context_uuid : str): - return format_grpc_to_json(self.client.ListTopologyIds(grpc_context_id(context_uuid))) - -class Topologies(_Resource): - def get(self, context_uuid : str): - return format_grpc_to_json(self.client.ListTopologies(grpc_context_id(context_uuid))) - -class Topology(_Resource): - def get(self, context_uuid : str, topology_uuid : str): - return format_grpc_to_json(self.client.GetTopology(grpc_topology_id(context_uuid, topology_uuid))) - -class ServiceIds(_Resource): - def get(self, context_uuid : str): - return format_grpc_to_json(self.client.ListServiceIds(grpc_context_id(context_uuid))) - -class Services(_Resource): - def get(self, context_uuid : str): - return format_grpc_to_json(self.client.ListServices(grpc_context_id(context_uuid))) - -class Service(_Resource): - def get(self, context_uuid : str, service_uuid : str): - return format_grpc_to_json(self.client.GetService(grpc_service_id(context_uuid, service_uuid))) - - def post(self, context_uuid : str, service_uuid : str): # pylint: disable=unused-argument - service = request.get_json()['services'][0] - return format_grpc_to_json(self.service_client.CreateService(grpc_service( - service_uuid = service['service_id']['service_uuid']['uuid'], - service_type = service['service_type'], - context_uuid = service['service_id']['context_id']['context_uuid']['uuid'], - ))) - - def put(self, context_uuid : str, service_uuid : str): # pylint: disable=unused-argument - service = request.get_json()['services'][0] - return format_grpc_to_json(self.service_client.UpdateService(grpc_service( - service_uuid = service['service_id']['service_uuid']['uuid'], - service_type = service['service_type'], - context_uuid = service['service_id']['context_id']['context_uuid']['uuid'], - status = service['service_status']['service_status'], - endpoint_ids = service['service_endpoint_ids'], - constraints = service['service_constraints'], - config_rules = service['service_config']['config_rules'] - ))) - - def delete(self, context_uuid : str, service_uuid : str): - return format_grpc_to_json(self.service_client.DeleteService(grpc_service_id( - context_uuid, service_uuid, - ))) - -class SliceIds(_Resource): - def get(self, context_uuid : str): - return format_grpc_to_json(self.client.ListSliceIds(grpc_context_id(context_uuid))) - -class Slices(_Resource): - def get(self, context_uuid : str): - return format_grpc_to_json(self.client.ListSlices(grpc_context_id(context_uuid))) - -class Slice(_Resource): - def get(self, context_uuid : str, slice_uuid : str): - return format_grpc_to_json(self.client.GetSlice(grpc_slice_id(context_uuid, slice_uuid))) class DeviceIds(_Resource): def get(self): return format_grpc_to_json(self.client.ListDeviceIds(Empty())) - + class Devices(_Resource): def get(self): return format_grpc_to_json(self.client.ListDevices(Empty())) @@ -208,39 +68,3 @@ class Device(_Resource): config_rules = device['device_config']['config_rules'], drivers = device['device_drivers'] ))) - -class LinkIds(_Resource): - def get(self): - return format_grpc_to_json(self.client.ListLinkIds(Empty())) - -class Links(_Resource): - def get(self): - return format_grpc_to_json(self.client.ListLinks(Empty())) - -class Link(_Resource): - def get(self, link_uuid : str): - return format_grpc_to_json(self.client.GetLink(grpc_link_id(link_uuid))) - -class ConnectionIds(_Resource): - def get(self, context_uuid : str, service_uuid : str): - return format_grpc_to_json(self.client.ListConnectionIds(grpc_service_id(context_uuid, service_uuid))) - -class Connections(_Resource): - def get(self, context_uuid : str, service_uuid : str): - return format_grpc_to_json(self.client.ListConnections(grpc_service_id(context_uuid, service_uuid))) - -class Connection(_Resource): - def get(self, connection_uuid : str): - return format_grpc_to_json(self.client.GetConnection(grpc_connection_id(connection_uuid))) - -class PolicyRuleIds(_Resource): - def get(self): - return format_grpc_to_json(self.client.ListPolicyRuleIds(Empty())) - -class PolicyRules(_Resource): - def get(self): - return format_grpc_to_json(self.client.ListPolicyRules(Empty())) - -class PolicyRule(_Resource): - def get(self, policy_rule_uuid : str): - return format_grpc_to_json(self.client.GetPolicyRule(grpc_policy_rule_id(policy_rule_uuid))) diff --git a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py index 6cffbb5cc..27a2780bb 100644 --- a/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py +++ b/src/nbi/service/rest_server/nbi_plugins/agent_probes/Tools.py @@ -12,45 +12,24 @@ # See the License for the specific language governing permissions and # limitations under the License. -import logging from flask.json import jsonify from common.proto.context_pb2 import ( - ConnectionId, ContextId, DeviceDriverEnum, Device, DeviceId, DeviceOperationalStatusEnum, LinkId, ServiceId, SliceId, TopologyId, Service, ServiceStatusEnum + DeviceDriverEnum, Device, DeviceId, DeviceOperationalStatusEnum ) -from common.proto.policy_pb2 import PolicyRuleId -from common.proto.context_pb2 import ConfigActionEnum -from common.tools.grpc.Tools import grpc_message_to_json, grpc_message_to_json_string -from common.tools.object_factory.Connection import json_connection_id -from common.tools.object_factory.Context import json_context_id +from common.tools.grpc.Tools import grpc_message_to_json from common.tools.object_factory.ConfigRule import json_config_rule -from common.tools.object_factory.Constraint import json_constraint_custom -from common.tools.object_factory.EndPoint import json_endpoint_id, json_endpoint +from common.tools.object_factory.EndPoint import json_endpoint from common.tools.object_factory.Device import json_device_id, json_device -from common.tools.object_factory.Link import json_link_id -from common.tools.object_factory.PolicyRule import json_policyrule_id -from common.tools.object_factory.Service import json_service_id, json_service -from common.tools.object_factory.Slice import json_slice_id -from common.tools.object_factory.Topology import json_topology_id - -LOGGER = logging.getLogger(__name__) -LOGGER.setLevel(logging.DEBUG) def format_grpc_to_json(grpc_reply): return jsonify(grpc_message_to_json(grpc_reply)) -def grpc_connection_id(connection_uuid): - return ConnectionId(**json_connection_id(connection_uuid)) - -def grpc_context_id(context_uuid): - return ContextId(**json_context_id(context_uuid)) - def grpc_device_id(device_uuid): return DeviceId(**json_device_id(device_uuid)) def grpc_device( device_uuid, device_type, status, endpoints=None, config_rules=None, drivers=None ): - json_config_rules = [ json_config_rule( config_rule['action'], @@ -74,49 +53,3 @@ def grpc_device( ] if endpoints else [] return Device(**json_device( device_uuid, device_type, json_status, None, json_endpoints, json_config_rules, json_drivers)) - -def grpc_link_id(link_uuid): - return LinkId(**json_link_id(link_uuid)) - -def grpc_service_id(context_uuid, service_uuid): - return ServiceId(**json_service_id(service_uuid, context_id=json_context_id(context_uuid))) - -def grpc_service( - service_uuid, service_type, context_uuid, status=None, endpoint_ids=None, constraints=None, config_rules=None -): - json_context = json_context_id(context_uuid) - json_status = status if status else ServiceStatusEnum.SERVICESTATUS_PLANNED - json_endpoints_ids = [ - json_endpoint_id( - json_device_id(endpoint_id['device_id']['device_uuid']['uuid']), - endpoint_id['endpoint_uuid']['uuid'] - ) - for endpoint_id in endpoint_ids - ] if endpoint_ids else [] - json_constraints = [ - json_constraint_custom( - constraint['custom']['constraint_type'], - constraint['custom']['constraint_value'] - ) - for constraint in constraints - ] if constraints else [] - json_config_rules = [ - json_config_rule( - config_rule['action'], - config_rule['custom']['resource_key'], - config_rule['custom']['resource_value'] - ) - for config_rule in config_rules - ] if config_rules else [] - return Service(**json_service( - service_uuid, service_type, json_context, json_status, - json_endpoints_ids, json_constraints, json_config_rules)) - -def grpc_slice_id(context_uuid, slice_uuid): - return SliceId(**json_slice_id(slice_uuid, context_id=json_context_id(context_uuid))) - -def grpc_topology_id(context_uuid, topology_uuid): - return TopologyId(**json_topology_id(topology_uuid, context_id=json_context_id(context_uuid))) - -def grpc_policy_rule_id(policy_rule_uuid): - return PolicyRuleId(**json_policyrule_id(policy_rule_uuid)) diff --git a/src/nbi/service/rest_server/nbi_plugins/agent_probes/__init__.py b/src/nbi/service/rest_server/nbi_plugins/agent_probes/__init__.py index 0b85500fc..f28a2ad56 100644 --- a/src/nbi/service/rest_server/nbi_plugins/agent_probes/__init__.py +++ b/src/nbi/service/rest_server/nbi_plugins/agent_probes/__init__.py @@ -13,55 +13,16 @@ # limitations under the License. from nbi.service.rest_server.RestServer import RestServer -from .Resources import ( - Connection, ConnectionIds, Connections, - Context, ContextIds, Contexts, - Device, DeviceIds, Devices, - DummyContexts, - Link, LinkIds, Links, - PolicyRule, PolicyRuleIds, PolicyRules, - Service, ServiceIds, Services, - Slice, SliceIds, Slices, - Topologies, Topology, TopologyIds -) +from .Resources import Device, DeviceIds, Devices URL_PREFIX = '/agent-probes' # Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type. RESOURCES = [ # (endpoint_name, resource_class, resource_url) - # ('api.context_ids', ContextIds, '/context_ids'), - # ('api.contexts', Contexts, '/contexts'), - # ('api.dummy_contexts', DummyContexts, '/dummy_contexts'), - # ('api.context', Context, '/context/<path:context_uuid>'), - - # ('api.topology_ids', TopologyIds, '/context/<path:context_uuid>/topology_ids'), - # ('api.topologies', Topologies, '/context/<path:context_uuid>/topologies'), - # ('api.topology', Topology, '/context/<path:context_uuid>/topology/<path:topology_uuid>'), - - # ('api.service_ids', ServiceIds, '/context/<path:context_uuid>/service_ids'), - # ('api.services', Services, '/context/<path:context_uuid>/services'), - # ('api.service', Service, '/context/<path:context_uuid>/service/<path:service_uuid>'), - - # ('api.slice_ids', SliceIds, '/context/<path:context_uuid>/slice_ids'), - # ('api.slices', Slices, '/context/<path:context_uuid>/slices'), - # ('api.slice', Slice, '/context/<path:context_uuid>/slice/<path:slice_uuid>'), - ('api.smartnic.device_ids', DeviceIds, '/device_ids'), ('api.smartnic.devices', Devices, '/devices'), ('api.smartnic.device', Device, '/device/<path:device_uuid>'), - - # ('api.link_ids', LinkIds, '/link_ids'), - # ('api.links', Links, '/links'), - # ('api.link', Link, '/link/<path:link_uuid>'), - - # ('api.connection_ids', ConnectionIds, '/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids'), - # ('api.connections', Connections, '/context/<path:context_uuid>/service/<path:service_uuid>/connections'), - # ('api.connection', Connection, '/connection/<path:connection_uuid>'), - - # ('api.policyrule_ids', PolicyRuleIds, '/policyrule_ids'), - # ('api.policyrules', PolicyRules, '/policyrules'), - # ('api.policyrule', PolicyRule, '/policyrule/<path:policyrule_uuid>'), ] def register_agent_probes(rest_server : RestServer): diff --git a/src/nbi/tests/data/agent_probes_device.json b/src/nbi/tests/data/agent_probes_device.json index e9d931528..6170e88a1 100644 --- a/src/nbi/tests/data/agent_probes_device.json +++ b/src/nbi/tests/data/agent_probes_device.json @@ -24,4 +24,3 @@ ] } - \ No newline at end of file diff --git a/src/policy/Dockerfile b/src/policy/Dockerfile deleted file mode 100644 index 2c6412d07..000000000 --- a/src/policy/Dockerfile +++ /dev/null @@ -1,66 +0,0 @@ -# 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. - -# Multi-stage Docker image build - -# Stage 1 -FROM maven:3-jdk-11 AS builder - -# Define working directory -WORKDIR /app - -# Copy every file in working directory, as defined in .dockerignore file -COPY ./pom.xml pom.xml -COPY ./src src/ -COPY ./target/generated-sources/ target/generated-sources/ -RUN mvn --errors --batch-mode package -Dmaven.test.skip=true - -# Stage 2 -FROM builder AS unit-test - -RUN mvn --errors --batch-mode -Pgenerate-consolidated-coverage verify - -# Stage 3 -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.4 AS release - -ARG JAVA_PACKAGE=java-11-openjdk-headless -ARG RUN_JAVA_VERSION=1.3.8 -ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' -# Install java and the run-java script -# Also set up permissions for user `1001` -RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \ - && microdnf update \ - && microdnf clean all \ - && mkdir /deployments \ - && chown 1001 /deployments \ - && chmod "g+rwX" /deployments \ - && chown 1001:root /deployments \ - && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \ - && chown 1001 /deployments/run-java.sh \ - && chmod 540 /deployments/run-java.sh \ - && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/conf/security/java.security - -# Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size. -ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" -# We make four distinct layers so if there are application changes the library layers can be re-used -COPY --from=builder --chown=1001 /app/target/quarkus-app/lib/ /deployments/lib/ -COPY --from=builder --chown=1001 /app/target/quarkus-app/*.jar /deployments/ -COPY --from=builder --chown=1001 /app/target/quarkus-app/app/ /deployments/app/ -COPY --from=builder --chown=1001 /app/target/quarkus-app/quarkus/ /deployments/quarkus/ - -EXPOSE 8080 -EXPOSE 6060 -USER 1001 - -ENTRYPOINT [ "/deployments/run-java.sh" ] diff --git a/src/policy/Dockerfile b/src/policy/Dockerfile new file mode 120000 index 000000000..eec732273 --- /dev/null +++ b/src/policy/Dockerfile @@ -0,0 +1 @@ +src/main/docker/Dockerfile.multistage.jvm \ No newline at end of file diff --git a/src/policy/src/main/proto/acl.proto b/src/policy/src/main/proto/acl.proto deleted file mode 100644 index 3dba735dc..000000000 --- a/src/policy/src/main/proto/acl.proto +++ /dev/null @@ -1,69 +0,0 @@ -// 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. - -syntax = "proto3"; -package acl; - -enum AclRuleTypeEnum { - ACLRULETYPE_UNDEFINED = 0; - ACLRULETYPE_IPV4 = 1; - ACLRULETYPE_IPV6 = 2; - ACLRULETYPE_L2 = 3; - ACLRULETYPE_MPLS = 4; - ACLRULETYPE_MIXED = 5; -} - -enum AclForwardActionEnum { - ACLFORWARDINGACTION_UNDEFINED = 0; - ACLFORWARDINGACTION_DROP = 1; - ACLFORWARDINGACTION_ACCEPT = 2; - ACLFORWARDINGACTION_REJECT = 3; -} - -enum AclLogActionEnum { - ACLLOGACTION_UNDEFINED = 0; - ACLLOGACTION_NOLOG = 1; - ACLLOGACTION_SYSLOG = 2; -} - -message AclMatch { - uint32 dscp = 1; - uint32 protocol = 2; - string src_address = 3; - string dst_address = 4; - uint32 src_port = 5; - uint32 dst_port = 6; - uint32 start_mpls_label = 7; - uint32 end_mpls_label = 8; -} - -message AclAction { - AclForwardActionEnum forward_action = 1; - AclLogActionEnum log_action = 2; -} - -message AclEntry { - uint32 sequence_id = 1; - string description = 2; - AclMatch match = 3; - AclAction action = 4; -} - -message AclRuleSet { - string name = 1; - AclRuleTypeEnum type = 2; - string description = 3; - string user_id = 4; - repeated AclEntry entries = 5; -} diff --git a/src/policy/src/main/proto/acl.proto b/src/policy/src/main/proto/acl.proto new file mode 120000 index 000000000..158ae78eb --- /dev/null +++ b/src/policy/src/main/proto/acl.proto @@ -0,0 +1 @@ +../../../../../proto/acl.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/context.proto b/src/policy/src/main/proto/context.proto deleted file mode 100644 index fce1e71ad..000000000 --- a/src/policy/src/main/proto/context.proto +++ /dev/null @@ -1,615 +0,0 @@ -// 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. - -syntax = "proto3"; -package context; - -import "acl.proto"; -import "kpi_sample_types.proto"; - -service ContextService { - rpc ListContextIds (Empty ) returns ( ContextIdList ) {} - rpc ListContexts (Empty ) returns ( ContextList ) {} - rpc GetContext (ContextId ) returns ( Context ) {} - rpc SetContext (Context ) returns ( ContextId ) {} - rpc RemoveContext (ContextId ) returns ( Empty ) {} - rpc GetContextEvents (Empty ) returns (stream ContextEvent ) {} - - rpc ListTopologyIds (ContextId ) returns ( TopologyIdList ) {} - rpc ListTopologies (ContextId ) returns ( TopologyList ) {} - rpc GetTopology (TopologyId ) returns ( Topology ) {} - rpc GetTopologyDetails (TopologyId ) returns ( TopologyDetails ) {} - rpc SetTopology (Topology ) returns ( TopologyId ) {} - rpc RemoveTopology (TopologyId ) returns ( Empty ) {} - rpc GetTopologyEvents (Empty ) returns (stream TopologyEvent ) {} - - rpc ListDeviceIds (Empty ) returns ( DeviceIdList ) {} - rpc ListDevices (Empty ) returns ( DeviceList ) {} - rpc GetDevice (DeviceId ) returns ( Device ) {} - rpc SetDevice (Device ) returns ( DeviceId ) {} - rpc RemoveDevice (DeviceId ) returns ( Empty ) {} - rpc GetDeviceEvents (Empty ) returns (stream DeviceEvent ) {} - rpc SelectDevice (DeviceFilter ) returns ( DeviceList ) {} - rpc ListEndPointNames (EndPointIdList) returns ( EndPointNameList) {} - - rpc ListLinkIds (Empty ) returns ( LinkIdList ) {} - rpc ListLinks (Empty ) returns ( LinkList ) {} - rpc GetLink (LinkId ) returns ( Link ) {} - rpc SetLink (Link ) returns ( LinkId ) {} - rpc RemoveLink (LinkId ) returns ( Empty ) {} - rpc GetLinkEvents (Empty ) returns (stream LinkEvent ) {} - - rpc ListServiceIds (ContextId ) returns ( ServiceIdList ) {} - rpc ListServices (ContextId ) returns ( ServiceList ) {} - rpc GetService (ServiceId ) returns ( Service ) {} - rpc SetService (Service ) returns ( ServiceId ) {} - rpc UnsetService (Service ) returns ( ServiceId ) {} - rpc RemoveService (ServiceId ) returns ( Empty ) {} - rpc GetServiceEvents (Empty ) returns (stream ServiceEvent ) {} - rpc SelectService (ServiceFilter ) returns ( ServiceList ) {} - - rpc ListSliceIds (ContextId ) returns ( SliceIdList ) {} - rpc ListSlices (ContextId ) returns ( SliceList ) {} - rpc GetSlice (SliceId ) returns ( Slice ) {} - rpc SetSlice (Slice ) returns ( SliceId ) {} - rpc UnsetSlice (Slice ) returns ( SliceId ) {} - rpc RemoveSlice (SliceId ) returns ( Empty ) {} - rpc GetSliceEvents (Empty ) returns (stream SliceEvent ) {} - rpc SelectSlice (SliceFilter ) returns ( SliceList ) {} - - rpc ListConnectionIds (ServiceId ) returns ( ConnectionIdList) {} - rpc ListConnections (ServiceId ) returns ( ConnectionList ) {} - rpc GetConnection (ConnectionId ) returns ( Connection ) {} - rpc SetConnection (Connection ) returns ( ConnectionId ) {} - rpc RemoveConnection (ConnectionId ) returns ( Empty ) {} - rpc GetConnectionEvents(Empty ) returns (stream ConnectionEvent ) {} -} - -// ----- Generic ------------------------------------------------------------------------------------------------------- -message Empty {} - -message Uuid { - string uuid = 1; -} - -enum EventTypeEnum { - EVENTTYPE_UNDEFINED = 0; - EVENTTYPE_CREATE = 1; - EVENTTYPE_UPDATE = 2; - EVENTTYPE_REMOVE = 3; -} - -message Timestamp { - double timestamp = 1; -} - -message Event { - Timestamp timestamp = 1; - EventTypeEnum event_type = 2; -} - -// ----- Context ------------------------------------------------------------------------------------------------------- -message ContextId { - Uuid context_uuid = 1; -} - -message Context { - ContextId context_id = 1; - string name = 2; - repeated TopologyId topology_ids = 3; - repeated ServiceId service_ids = 4; - repeated SliceId slice_ids = 5; - TeraFlowController controller = 6; -} - -message ContextIdList { - repeated ContextId context_ids = 1; -} - -message ContextList { - repeated Context contexts = 1; -} - -message ContextEvent { - Event event = 1; - ContextId context_id = 2; -} - - -// ----- Topology ------------------------------------------------------------------------------------------------------ -message TopologyId { - ContextId context_id = 1; - Uuid topology_uuid = 2; -} - -message Topology { - TopologyId topology_id = 1; - string name = 2; - repeated DeviceId device_ids = 3; - repeated LinkId link_ids = 4; -} - -message TopologyDetails { - TopologyId topology_id = 1; - string name = 2; - repeated Device devices = 3; - repeated Link links = 4; -} - -message TopologyIdList { - repeated TopologyId topology_ids = 1; -} - -message TopologyList { - repeated Topology topologies = 1; -} - -message TopologyEvent { - Event event = 1; - TopologyId topology_id = 2; -} - - -// ----- Device -------------------------------------------------------------------------------------------------------- -message DeviceId { - Uuid device_uuid = 1; -} - -message Device { - DeviceId device_id = 1; - string name = 2; - string device_type = 3; - DeviceConfig device_config = 4; - DeviceOperationalStatusEnum device_operational_status = 5; - repeated DeviceDriverEnum device_drivers = 6; - repeated EndPoint device_endpoints = 7; - repeated Component components = 8; // Used for inventory - DeviceId controller_id = 9; // Identifier of node controlling the actual device -} - -message Component { //Defined previously to this section - Tested OK - Uuid component_uuid = 1; - string name = 2; - string type = 3; - - map<string, string> attributes = 4; // dict[attr.name => json.dumps(attr.value)] - string parent = 5; -} - -message DeviceConfig { - repeated ConfigRule config_rules = 1; -} - -enum DeviceDriverEnum { - DEVICEDRIVER_UNDEFINED = 0; // also used for emulated - DEVICEDRIVER_OPENCONFIG = 1; - DEVICEDRIVER_TRANSPORT_API = 2; - DEVICEDRIVER_P4 = 3; - DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4; - DEVICEDRIVER_ONF_TR_532 = 5; - DEVICEDRIVER_XR = 6; - DEVICEDRIVER_IETF_L2VPN = 7; - DEVICEDRIVER_GNMI_OPENCONFIG = 8; - DEVICEDRIVER_FLEXSCALE = 9; - DEVICEDRIVER_IETF_ACTN = 10; - DEVICEDRIVER_SMARTNIC = 11; -} - -enum DeviceOperationalStatusEnum { - DEVICEOPERATIONALSTATUS_UNDEFINED = 0; - DEVICEOPERATIONALSTATUS_DISABLED = 1; - DEVICEOPERATIONALSTATUS_ENABLED = 2; -} - -message DeviceIdList { - repeated DeviceId device_ids = 1; -} - -message DeviceList { - repeated Device devices = 1; -} - -message DeviceFilter { - DeviceIdList device_ids = 1; - bool include_endpoints = 2; - bool include_config_rules = 3; - bool include_components = 4; -} - -message DeviceEvent { - Event event = 1; - DeviceId device_id = 2; - DeviceConfig device_config = 3; -} - - -// ----- Link ---------------------------------------------------------------------------------------------------------- -message LinkId { - Uuid link_uuid = 1; -} - -message LinkAttributes { - float total_capacity_gbps = 1; - float used_capacity_gbps = 2; -} - -message Link { - LinkId link_id = 1; - string name = 2; - repeated EndPointId link_endpoint_ids = 3; - LinkAttributes attributes = 4; -} - -message LinkIdList { - repeated LinkId link_ids = 1; -} - -message LinkList { - repeated Link links = 1; -} - -message LinkEvent { - Event event = 1; - LinkId link_id = 2; -} - - -// ----- Service ------------------------------------------------------------------------------------------------------- -message ServiceId { - ContextId context_id = 1; - Uuid service_uuid = 2; -} - -message Service { - ServiceId service_id = 1; - string name = 2; - ServiceTypeEnum service_type = 3; - repeated EndPointId service_endpoint_ids = 4; - repeated Constraint service_constraints = 5; - ServiceStatus service_status = 6; - ServiceConfig service_config = 7; - Timestamp timestamp = 8; -} - -enum ServiceTypeEnum { - SERVICETYPE_UNKNOWN = 0; - SERVICETYPE_L3NM = 1; - SERVICETYPE_L2NM = 2; - SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3; - SERVICETYPE_TE = 4; - SERVICETYPE_E2E = 5; -} - -enum ServiceStatusEnum { - SERVICESTATUS_UNDEFINED = 0; - SERVICESTATUS_PLANNED = 1; - SERVICESTATUS_ACTIVE = 2; - SERVICESTATUS_UPDATING = 3; - SERVICESTATUS_PENDING_REMOVAL = 4; - SERVICESTATUS_SLA_VIOLATED = 5; -} - -message ServiceStatus { - ServiceStatusEnum service_status = 1; -} - -message ServiceConfig { - repeated ConfigRule config_rules = 1; -} - -message ServiceIdList { - repeated ServiceId service_ids = 1; -} - -message ServiceList { - repeated Service services = 1; -} - -message ServiceFilter { - ServiceIdList service_ids = 1; - bool include_endpoint_ids = 2; - bool include_constraints = 3; - bool include_config_rules = 4; -} - -message ServiceEvent { - Event event = 1; - ServiceId service_id = 2; -} - -// ----- Slice --------------------------------------------------------------------------------------------------------- -message SliceId { - ContextId context_id = 1; - Uuid slice_uuid = 2; -} - -message Slice { - SliceId slice_id = 1; - string name = 2; - repeated EndPointId slice_endpoint_ids = 3; - repeated Constraint slice_constraints = 4; - repeated ServiceId slice_service_ids = 5; - repeated SliceId slice_subslice_ids = 6; - SliceStatus slice_status = 7; - SliceConfig slice_config = 8; - SliceOwner slice_owner = 9; - Timestamp timestamp = 10; -} - -message SliceOwner { - Uuid owner_uuid = 1; - string owner_string = 2; -} - -enum SliceStatusEnum { - SLICESTATUS_UNDEFINED = 0; - SLICESTATUS_PLANNED = 1; - SLICESTATUS_INIT = 2; - SLICESTATUS_ACTIVE = 3; - SLICESTATUS_DEINIT = 4; - SLICESTATUS_SLA_VIOLATED = 5; -} - -message SliceStatus { - SliceStatusEnum slice_status = 1; -} - -message SliceConfig { - repeated ConfigRule config_rules = 1; -} - -message SliceIdList { - repeated SliceId slice_ids = 1; -} - -message SliceList { - repeated Slice slices = 1; -} - -message SliceFilter { - SliceIdList slice_ids = 1; - bool include_endpoint_ids = 2; - bool include_constraints = 3; - bool include_service_ids = 4; - bool include_subslice_ids = 5; - bool include_config_rules = 6; -} - -message SliceEvent { - Event event = 1; - SliceId slice_id = 2; -} - -// ----- Connection ---------------------------------------------------------------------------------------------------- -message ConnectionId { - Uuid connection_uuid = 1; -} - -message ConnectionSettings_L0 { - string lsp_symbolic_name = 1; -} - -message ConnectionSettings_L2 { - string src_mac_address = 1; - string dst_mac_address = 2; - uint32 ether_type = 3; - uint32 vlan_id = 4; - uint32 mpls_label = 5; - uint32 mpls_traffic_class = 6; -} - -message ConnectionSettings_L3 { - string src_ip_address = 1; - string dst_ip_address = 2; - uint32 dscp = 3; - uint32 protocol = 4; - uint32 ttl = 5; -} - -message ConnectionSettings_L4 { - uint32 src_port = 1; - uint32 dst_port = 2; - uint32 tcp_flags = 3; - uint32 ttl = 4; -} - -message ConnectionSettings { - ConnectionSettings_L0 l0 = 1; - ConnectionSettings_L2 l2 = 2; - ConnectionSettings_L3 l3 = 3; - ConnectionSettings_L4 l4 = 4; -} - -message Connection { - ConnectionId connection_id = 1; - ServiceId service_id = 2; - repeated EndPointId path_hops_endpoint_ids = 3; - repeated ServiceId sub_service_ids = 4; - ConnectionSettings settings = 5; -} - -message ConnectionIdList { - repeated ConnectionId connection_ids = 1; -} - -message ConnectionList { - repeated Connection connections = 1; -} - -message ConnectionEvent { - Event event = 1; - ConnectionId connection_id = 2; -} - - -// ----- Endpoint ------------------------------------------------------------------------------------------------------ -message EndPointId { - TopologyId topology_id = 1; - DeviceId device_id = 2; - Uuid endpoint_uuid = 3; -} - -message EndPoint { - EndPointId endpoint_id = 1; - string name = 2; - string endpoint_type = 3; - repeated kpi_sample_types.KpiSampleType kpi_sample_types = 4; - Location endpoint_location = 5; -} - -message EndPointName { - EndPointId endpoint_id = 1; - string device_name = 2; - string endpoint_name = 3; - string endpoint_type = 4; -} - -message EndPointIdList { - repeated EndPointId endpoint_ids = 1; -} - -message EndPointNameList { - repeated EndPointName endpoint_names = 1; -} - - -// ----- Configuration ------------------------------------------------------------------------------------------------- -enum ConfigActionEnum { - CONFIGACTION_UNDEFINED = 0; - CONFIGACTION_SET = 1; - CONFIGACTION_DELETE = 2; -} - -message ConfigRule_Custom { - string resource_key = 1; - string resource_value = 2; -} - -message ConfigRule_ACL { - EndPointId endpoint_id = 1; - acl.AclRuleSet rule_set = 2; -} - -message ConfigRule { - ConfigActionEnum action = 1; - oneof config_rule { - ConfigRule_Custom custom = 2; - ConfigRule_ACL acl = 3; - } -} - - -// ----- Constraint ---------------------------------------------------------------------------------------------------- -enum ConstraintActionEnum { - CONSTRAINTACTION_UNDEFINED = 0; - CONSTRAINTACTION_SET = 1; - CONSTRAINTACTION_DELETE = 2; -} - -message Constraint_Custom { - string constraint_type = 1; - string constraint_value = 2; -} - -message Constraint_Schedule { - float start_timestamp = 1; - float duration_days = 2; -} - -message GPS_Position { - float latitude = 1; - float longitude = 2; -} - -message Location { - oneof location { - string region = 1; - GPS_Position gps_position = 2; - } -} - -message Constraint_EndPointLocation { - EndPointId endpoint_id = 1; - Location location = 2; -} - -message Constraint_EndPointPriority { - EndPointId endpoint_id = 1; - uint32 priority = 2; -} - -message Constraint_SLA_Latency { - float e2e_latency_ms = 1; -} - -message Constraint_SLA_Capacity { - float capacity_gbps = 1; -} - -message Constraint_SLA_Availability { - uint32 num_disjoint_paths = 1; - bool all_active = 2; - float availability = 3; // 0.0 .. 100.0 percentage of availability -} - -enum IsolationLevelEnum { - NO_ISOLATION = 0; - PHYSICAL_ISOLATION = 1; - LOGICAL_ISOLATION = 2; - PROCESS_ISOLATION = 3; - PHYSICAL_MEMORY_ISOLATION = 4; - PHYSICAL_NETWORK_ISOLATION = 5; - VIRTUAL_RESOURCE_ISOLATION = 6; - NETWORK_FUNCTIONS_ISOLATION = 7; - SERVICE_ISOLATION = 8; -} - -message Constraint_SLA_Isolation_level { - repeated IsolationLevelEnum isolation_level = 1; -} - -message Constraint_Exclusions { - bool is_permanent = 1; - repeated DeviceId device_ids = 2; - repeated EndPointId endpoint_ids = 3; - repeated LinkId link_ids = 4; -} - -message Constraint { - ConstraintActionEnum action = 1; - oneof constraint { - Constraint_Custom custom = 2; - Constraint_Schedule schedule = 3; - Constraint_EndPointLocation endpoint_location = 4; - Constraint_EndPointPriority endpoint_priority = 5; - Constraint_SLA_Capacity sla_capacity = 6; - Constraint_SLA_Latency sla_latency = 7; - Constraint_SLA_Availability sla_availability = 8; - Constraint_SLA_Isolation_level sla_isolation = 9; - Constraint_Exclusions exclusions = 10; - } -} - - -// ----- Miscellaneous ------------------------------------------------------------------------------------------------- -message TeraFlowController { - ContextId context_id = 1; - string ip_address = 2; - uint32 port = 3; -} - -message AuthenticationResult { - ContextId context_id = 1; - bool authenticated = 2; -} diff --git a/src/policy/src/main/proto/context.proto b/src/policy/src/main/proto/context.proto new file mode 120000 index 000000000..7f33c4bc7 --- /dev/null +++ b/src/policy/src/main/proto/context.proto @@ -0,0 +1 @@ +../../../../../proto/context.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/context_policy.proto b/src/policy/src/main/proto/context_policy.proto deleted file mode 100644 index f6dae4830..000000000 --- a/src/policy/src/main/proto/context_policy.proto +++ /dev/null @@ -1,28 +0,0 @@ -// 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. - -syntax = "proto3"; -package context_policy; - -import "context.proto"; -import "policy.proto"; - -// created as a separate service to prevent import-loops in context and policy -service ContextPolicyService { - rpc ListPolicyRuleIds(context.Empty ) returns (policy.PolicyRuleIdList) {} - rpc ListPolicyRules (context.Empty ) returns (policy.PolicyRuleList ) {} - rpc GetPolicyRule (policy.PolicyRuleId ) returns (policy.PolicyRule ) {} - rpc SetPolicyRule (policy.PolicyRule ) returns (policy.PolicyRuleId ) {} - rpc RemovePolicyRule (policy.PolicyRuleId ) returns (context.Empty ) {} -} diff --git a/src/policy/src/main/proto/context_policy.proto b/src/policy/src/main/proto/context_policy.proto new file mode 120000 index 000000000..d41593dde --- /dev/null +++ b/src/policy/src/main/proto/context_policy.proto @@ -0,0 +1 @@ +../../../../../proto/context_policy.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/device.proto b/src/policy/src/main/proto/device.proto deleted file mode 100644 index 30e60079d..000000000 --- a/src/policy/src/main/proto/device.proto +++ /dev/null @@ -1,34 +0,0 @@ -// 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. - -syntax = "proto3"; -package device; - -import "context.proto"; -import "monitoring.proto"; - -service DeviceService { - rpc AddDevice (context.Device ) returns (context.DeviceId ) {} - rpc ConfigureDevice (context.Device ) returns (context.DeviceId ) {} - rpc DeleteDevice (context.DeviceId ) returns (context.Empty ) {} - rpc GetInitialConfig(context.DeviceId ) returns (context.DeviceConfig) {} - rpc MonitorDeviceKpi(MonitoringSettings) returns (context.Empty ) {} -} - -message MonitoringSettings { - monitoring.KpiId kpi_id = 1; - monitoring.KpiDescriptor kpi_descriptor = 2; - float sampling_duration_s = 3; - float sampling_interval_s = 4; -} diff --git a/src/policy/src/main/proto/device.proto b/src/policy/src/main/proto/device.proto new file mode 120000 index 000000000..ad6e7c47e --- /dev/null +++ b/src/policy/src/main/proto/device.proto @@ -0,0 +1 @@ +../../../../../proto/device.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/kpi_sample_types.proto b/src/policy/src/main/proto/kpi_sample_types.proto deleted file mode 100644 index 5b234a4e3..000000000 --- a/src/policy/src/main/proto/kpi_sample_types.proto +++ /dev/null @@ -1,42 +0,0 @@ -// 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. - -syntax = "proto3"; -package kpi_sample_types; - -enum KpiSampleType { - KPISAMPLETYPE_UNKNOWN = 0; - - KPISAMPLETYPE_PACKETS_TRANSMITTED = 101; - KPISAMPLETYPE_PACKETS_RECEIVED = 102; - KPISAMPLETYPE_PACKETS_DROPPED = 103; - KPISAMPLETYPE_BYTES_TRANSMITTED = 201; - KPISAMPLETYPE_BYTES_RECEIVED = 202; - KPISAMPLETYPE_BYTES_DROPPED = 203; - - KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS = 301; - KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS = 302; - - KPISAMPLETYPE_ML_CONFIDENCE = 401; //. can be used by both optical and L3 without any issue - - KPISAMPLETYPE_OPTICAL_SECURITY_STATUS = 501; //. can be used by both optical and L3 without any issue - - KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS = 601; - KPISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS = 602; - KPISAMPLETYPE_L3_UNIQUE_ATTACKERS = 603; - KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CLIENTS = 604; - KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO = 605; - - KPISAMPLETYPE_SERVICE_LATENCY_MS = 701; -} diff --git a/src/policy/src/main/proto/kpi_sample_types.proto b/src/policy/src/main/proto/kpi_sample_types.proto new file mode 120000 index 000000000..98e748bbf --- /dev/null +++ b/src/policy/src/main/proto/kpi_sample_types.proto @@ -0,0 +1 @@ +../../../../../proto/kpi_sample_types.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/monitoring.proto b/src/policy/src/main/proto/monitoring.proto deleted file mode 100644 index 45ba48b02..000000000 --- a/src/policy/src/main/proto/monitoring.proto +++ /dev/null @@ -1,174 +0,0 @@ -// 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. - -syntax = "proto3"; -package monitoring; - -import "context.proto"; -import "kpi_sample_types.proto"; - -service MonitoringService { - rpc SetKpi (KpiDescriptor ) returns (KpiId ) {} // Stable not final - rpc DeleteKpi (KpiId ) returns (context.Empty ) {} // Stable and final - rpc GetKpiDescriptor (KpiId ) returns (KpiDescriptor ) {} // Stable and final - rpc GetKpiDescriptorList (context.Empty ) returns (KpiDescriptorList ) {} // Stable and final - rpc IncludeKpi (Kpi ) returns (context.Empty ) {} // Stable and final - rpc MonitorKpi (MonitorKpiRequest ) returns (context.Empty ) {} // Stable and final - rpc QueryKpiData (KpiQuery ) returns (RawKpiTable ) {} // Not implemented - rpc SetKpiSubscription (SubsDescriptor ) returns (stream SubsResponse ) {} // Stable not final - rpc GetSubsDescriptor (SubscriptionID ) returns (SubsDescriptor ) {} // Stable and final - rpc GetSubscriptions (context.Empty ) returns (SubsList ) {} // Stable and final - rpc DeleteSubscription (SubscriptionID ) returns (context.Empty ) {} // Stable and final - rpc SetKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {} // Stable not final - rpc GetAlarms (context.Empty ) returns (AlarmList ) {} // Stable and final - rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {} // Stable and final - rpc GetAlarmResponseStream(AlarmSubscription ) returns (stream AlarmResponse) {} // Not Stable not final - rpc DeleteAlarm (AlarmID ) returns (context.Empty ) {} // Stable and final - rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} // Stable not final - rpc GetInstantKpi (KpiId ) returns (Kpi ) {} // Stable not final -} - -message KpiDescriptor { - KpiId kpi_id = 1; - string kpi_description = 2; - repeated KpiId kpi_id_list = 3; - kpi_sample_types.KpiSampleType kpi_sample_type = 4; - context.DeviceId device_id = 5; - context.EndPointId endpoint_id = 6; - context.ServiceId service_id = 7; - context.SliceId slice_id = 8; - context.ConnectionId connection_id = 9; - context.LinkId link_id = 10; -} - -message MonitorKpiRequest { - KpiId kpi_id = 1; - float monitoring_window_s = 2; - float sampling_rate_s = 3; - // Pending add field to reflect Available Device Protocols -} - -message KpiQuery { - repeated KpiId kpi_ids = 1; - float monitoring_window_s = 2; - uint32 last_n_samples = 3; // used when you want something like "get the last N many samples - context.Timestamp start_timestamp = 4; // used when you want something like "get the samples since X date/time" - context.Timestamp end_timestamp = 5; // used when you want something like "get the samples until X date/time" -} - - -message RawKpi { // cell - context.Timestamp timestamp = 1; - KpiValue kpi_value = 2; -} - -message RawKpiList { // column - KpiId kpi_id = 1; - repeated RawKpi raw_kpis = 2; -} - -message RawKpiTable { // table - repeated RawKpiList raw_kpi_lists = 1; -} - -message KpiId { - context.Uuid kpi_id = 1; -} - -message Kpi { - KpiId kpi_id = 1; - context.Timestamp timestamp = 2; - KpiValue kpi_value = 3; -} - -message KpiValueRange { - KpiValue kpiMinValue = 1; - KpiValue kpiMaxValue = 2; - bool inRange = 3; // by default True - bool includeMinValue = 4; // False is outside the interval - bool includeMaxValue = 5; // False is outside the interval -} - -message KpiValue { - oneof value { - int32 int32Val = 1; - uint32 uint32Val = 2; - int64 int64Val = 3; - uint64 uint64Val = 4; - float floatVal = 5; - string stringVal = 6; - bool boolVal = 7; - } -} - - -message KpiList { - repeated Kpi kpi = 1; -} - -message KpiDescriptorList { - repeated KpiDescriptor kpi_descriptor_list = 1; -} - -message SubsDescriptor{ - SubscriptionID subs_id = 1; - KpiId kpi_id = 2; - float sampling_duration_s = 3; - float sampling_interval_s = 4; - context.Timestamp start_timestamp = 5; // used when you want something like "get the samples since X date/time" - context.Timestamp end_timestamp = 6; // used when you want something like "get the samples until X date/time" - // Pending add field to reflect Available Device Protocols -} - -message SubscriptionID { - context.Uuid subs_id = 1; -} - -message SubsResponse { - SubscriptionID subs_id = 1; - KpiList kpi_list = 2; -} - -message SubsList { - repeated SubsDescriptor subs_descriptor = 1; -} - -message AlarmDescriptor { - AlarmID alarm_id = 1; - string alarm_description = 2; - string name = 3; - KpiId kpi_id = 4; - KpiValueRange kpi_value_range = 5; - context.Timestamp timestamp = 6; -} - -message AlarmID{ - context.Uuid alarm_id = 1; -} - -message AlarmSubscription{ - AlarmID alarm_id = 1; - float subscription_timeout_s = 2; - float subscription_frequency_ms = 3; -} - -message AlarmResponse { - AlarmID alarm_id = 1; - string text = 2; - KpiList kpi_list = 3; -} - -message AlarmList { - repeated AlarmDescriptor alarm_descriptor = 1; -} diff --git a/src/policy/src/main/proto/monitoring.proto b/src/policy/src/main/proto/monitoring.proto new file mode 120000 index 000000000..aceaa7328 --- /dev/null +++ b/src/policy/src/main/proto/monitoring.proto @@ -0,0 +1 @@ +../../../../../proto/monitoring.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/policy.proto b/src/policy/src/main/proto/policy.proto deleted file mode 100644 index a6f160150..000000000 --- a/src/policy/src/main/proto/policy.proto +++ /dev/null @@ -1,113 +0,0 @@ -// 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. - -syntax = "proto3"; -package policy; - -import "context.proto"; -import "policy_condition.proto"; -import "policy_action.proto"; - -service PolicyService { - rpc PolicyAddService (PolicyRuleService) returns (PolicyRuleState) {} - rpc PolicyAddDevice (PolicyRuleDevice) returns (PolicyRuleState) {} - rpc PolicyUpdateService (PolicyRuleService) returns (PolicyRuleState) {} - rpc PolicyUpdateDevice (PolicyRuleDevice) returns (PolicyRuleState) {} - rpc PolicyDelete (PolicyRuleId) returns (PolicyRuleState) {} - rpc GetPolicyService (PolicyRuleId) returns (PolicyRuleService) {} - rpc GetPolicyDevice (PolicyRuleId) returns (PolicyRuleDevice) {} - rpc GetPolicyByServiceId (context.ServiceId) returns (PolicyRuleServiceList) {} -} - -enum PolicyRuleStateEnum { - POLICY_UNDEFINED = 0; // Undefined rule state - POLICY_FAILED = 1; // Rule failed - POLICY_INSERTED = 2; // Rule is just inserted - POLICY_VALIDATED = 3; // Rule content is correct - POLICY_PROVISIONED = 4; // Rule subscribed to Monitoring - POLICY_ACTIVE = 5; // Rule is currently active (alarm is just thrown by Monitoring) - POLICY_ENFORCED = 6; // Rule action is successfully enforced - POLICY_INEFFECTIVE = 7; // The applied rule action did not work as expected - POLICY_EFFECTIVE = 8; // The applied rule action did work as expected - POLICY_UPDATED = 9; // Operator requires a policy to change - POLICY_REMOVED = 10; // Operator requires to remove a policy -} - -message PolicyRuleId { - context.Uuid uuid = 1; -} - -message PolicyRuleState { - PolicyRuleStateEnum policyRuleState = 1; - string policyRuleStateMessage = 2; -} - -// Basic policy rule attributes -message PolicyRuleBasic { - PolicyRuleId policyRuleId = 1; - PolicyRuleState policyRuleState = 2; //policy.proto:58:12: Explicit 'optional' labels are disallowed in the Proto3 syntax. To define 'optional' fields in Proto3, simply remove the 'optional' label, as fields are 'optional' by default. - uint32 priority = 3; - - // Event-Condition-Action (ECA) model - repeated PolicyRuleCondition conditionList = 4; // When these policy conditions are met, an event is automatically thrown - BooleanOperator booleanOperator = 5; // Evaluation operator to be used - repeated PolicyRuleAction actionList = 6; // One or more actions should be applied -} - -// Service-oriented policy rule -message PolicyRuleService { - // Basic policy rule attributes - PolicyRuleBasic policyRuleBasic = 1; - - // Affected service and (some of) its device(s) - context.ServiceId serviceId = 2; - repeated context.DeviceId deviceList = 3; // List of devices this service is traversing (not exhaustive) -} - -// Device-oriented policy rule -message PolicyRuleDevice { - // Basic policy rule attributes - PolicyRuleBasic policyRuleBasic = 1; - - // Affected device(s) - repeated context.DeviceId deviceList = 2; -} - -// Wrapper policy rule object -message PolicyRule { - oneof policy_rule { - PolicyRuleService service = 1; - PolicyRuleDevice device = 2; - } -} - -// A list of policy rule IDs -message PolicyRuleIdList { - repeated PolicyRuleId policyRuleIdList = 1; -} - -// A list of service-oriented policy rules -message PolicyRuleServiceList { - repeated PolicyRuleService policyRuleServiceList = 1; -} - -// A list of device-oriented policy rules -message PolicyRuleDeviceList { - repeated PolicyRuleDevice policyRuleDeviceList = 1; -} - -// A list of policy rules -message PolicyRuleList { - repeated PolicyRule policyRules = 1; -} diff --git a/src/policy/src/main/proto/policy.proto b/src/policy/src/main/proto/policy.proto new file mode 120000 index 000000000..df455f961 --- /dev/null +++ b/src/policy/src/main/proto/policy.proto @@ -0,0 +1 @@ +../../../../../proto/policy.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/policy_action.proto b/src/policy/src/main/proto/policy_action.proto deleted file mode 100644 index d547e9779..000000000 --- a/src/policy/src/main/proto/policy_action.proto +++ /dev/null @@ -1,42 +0,0 @@ -// 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. - -syntax = "proto3"; -package policy; - -// Action -message PolicyRuleAction { - PolicyRuleActionEnum action = 1; - repeated PolicyRuleActionConfig action_config = 2; -} - -enum PolicyRuleActionEnum { - POLICYRULE_ACTION_NO_ACTION = 0; - POLICYRULE_ACTION_SET_DEVICE_STATUS = 1; - POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE = 2; - POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT = 3; - POLICY_RULE_ACTION_CALL_SERVICE_RPC = 4; - POLICY_RULE_ACTION_RECALCULATE_PATH = 5; -} - -// Action configuration -message PolicyRuleActionConfig { - string action_key = 1; - string action_value = 2; -} - -// message PolicyRuleAction { -// PolicyRuleActionEnum action = 1; -// repeated string parameters = 2; -// } diff --git a/src/policy/src/main/proto/policy_action.proto b/src/policy/src/main/proto/policy_action.proto new file mode 120000 index 000000000..63dcef3d2 --- /dev/null +++ b/src/policy/src/main/proto/policy_action.proto @@ -0,0 +1 @@ +../../../../../proto/policy_action.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/policy_condition.proto b/src/policy/src/main/proto/policy_condition.proto deleted file mode 100644 index 2037af93c..000000000 --- a/src/policy/src/main/proto/policy_condition.proto +++ /dev/null @@ -1,43 +0,0 @@ -// 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. - -syntax = "proto3"; -package policy; - -import "monitoring.proto"; - -// Condition -message PolicyRuleCondition { - monitoring.KpiId kpiId = 1; - NumericalOperator numericalOperator = 2; - monitoring.KpiValue kpiValue = 3; -} - -// Operator to be used when comparing Kpis with condition values -enum NumericalOperator { - POLICYRULE_CONDITION_NUMERICAL_UNDEFINED = 0; // Kpi numerical operator undefined - POLICYRULE_CONDITION_NUMERICAL_EQUAL = 1; // Kpi is equal with value - POLICYRULE_CONDITION_NUMERICAL_NOT_EQUAL = 2; // Kpi is not equal with value - POLICYRULE_CONDITION_NUMERICAL_LESS_THAN = 3; // Kpi is less than value - POLICYRULE_CONDITION_NUMERICAL_LESS_THAN_EQUAL = 4; // Kpi is less than or equal with value - POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN = 5; // Kpi is greater than value - POLICYRULE_CONDITION_NUMERICAL_GREATER_THAN_EQUAL = 6; // Kpi is less than or equal with value -} - -// Operator to be used when evaluating each condition -enum BooleanOperator { - POLICYRULE_CONDITION_BOOLEAN_UNDEFINED = 0; // Boolean operator undefined - POLICYRULE_CONDITION_BOOLEAN_AND = 1; // Boolean AND operator - POLICYRULE_CONDITION_BOOLEAN_OR = 2; // Boolean OR operator -} \ No newline at end of file diff --git a/src/policy/src/main/proto/policy_condition.proto b/src/policy/src/main/proto/policy_condition.proto new file mode 120000 index 000000000..31f7d9d10 --- /dev/null +++ b/src/policy/src/main/proto/policy_condition.proto @@ -0,0 +1 @@ +../../../../../proto/policy_condition.proto \ No newline at end of file diff --git a/src/policy/src/main/proto/service.proto b/src/policy/src/main/proto/service.proto deleted file mode 100644 index 658859e3c..000000000 --- a/src/policy/src/main/proto/service.proto +++ /dev/null @@ -1,25 +0,0 @@ -// 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. - -syntax = "proto3"; -package service; - -import "context.proto"; - -service ServiceService { - rpc CreateService (context.Service ) returns (context.ServiceId) {} - rpc UpdateService (context.Service ) returns (context.ServiceId) {} - rpc DeleteService (context.ServiceId) returns (context.Empty ) {} - rpc RecomputeConnections(context.Service ) returns (context.Empty ) {} -} diff --git a/src/policy/src/main/proto/service.proto b/src/policy/src/main/proto/service.proto new file mode 120000 index 000000000..5ca543da0 --- /dev/null +++ b/src/policy/src/main/proto/service.proto @@ -0,0 +1 @@ +../../../../../proto/service.proto \ No newline at end of file diff --git a/src/ztp/Dockerfile b/src/ztp/Dockerfile deleted file mode 100644 index 43fef96b4..000000000 --- a/src/ztp/Dockerfile +++ /dev/null @@ -1,67 +0,0 @@ -# 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. - -# Multi-stage Docker image build - -# Stage 1 -FROM maven:3-jdk-11 AS builder - -# Define working directory -WORKDIR /app - -# Copy every file in working directory, as defined in .dockerignore file -COPY ./pom.xml pom.xml -COPY ./src src/ -COPY ./target/generated-sources/ target/generated-sources/ -RUN mvn --errors --batch-mode package -Dmaven.test.skip=true - -# Stage 2 -FROM builder AS unit-test - -RUN mvn --errors --batch-mode -Pgenerate-consolidated-coverage verify - -# Stage 3 -FROM registry.access.redhat.com/ubi8/ubi-minimal:8.4 AS release - -ARG JAVA_PACKAGE=java-11-openjdk-headless -ARG RUN_JAVA_VERSION=1.3.8 -ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' -# Install java and the run-java script -# Also set up permissions for user `1001` -RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \ - && microdnf update \ - && microdnf clean all \ - && mkdir /deployments \ - && chown 1001 /deployments \ - && chmod "g+rwX" /deployments \ - && chown 1001:root /deployments \ - && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \ - && chown 1001 /deployments/run-java.sh \ - && chmod 540 /deployments/run-java.sh \ - && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/conf/security/java.security - -# Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size. -ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" -# We make four distinct layers so if there are application changes the library layers can be re-used -COPY --from=builder --chown=1001 /app/target/quarkus-app/lib/ /deployments/lib/ -COPY --from=builder --chown=1001 /app/target/quarkus-app/*.jar /deployments/ -COPY --from=builder --chown=1001 /app/target/quarkus-app/app/ /deployments/app/ -COPY --from=builder --chown=1001 /app/target/quarkus-app/quarkus/ /deployments/quarkus/ - -EXPOSE 8080 -EXPOSE 5050 -USER 1001 - -ENTRYPOINT [ "/deployments/run-java.sh" ] - diff --git a/src/ztp/Dockerfile b/src/ztp/Dockerfile new file mode 120000 index 000000000..eec732273 --- /dev/null +++ b/src/ztp/Dockerfile @@ -0,0 +1 @@ +src/main/docker/Dockerfile.multistage.jvm \ No newline at end of file diff --git a/src/ztp/src/main/proto/acl.proto b/src/ztp/src/main/proto/acl.proto deleted file mode 100644 index 3dba735dc..000000000 --- a/src/ztp/src/main/proto/acl.proto +++ /dev/null @@ -1,69 +0,0 @@ -// 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. - -syntax = "proto3"; -package acl; - -enum AclRuleTypeEnum { - ACLRULETYPE_UNDEFINED = 0; - ACLRULETYPE_IPV4 = 1; - ACLRULETYPE_IPV6 = 2; - ACLRULETYPE_L2 = 3; - ACLRULETYPE_MPLS = 4; - ACLRULETYPE_MIXED = 5; -} - -enum AclForwardActionEnum { - ACLFORWARDINGACTION_UNDEFINED = 0; - ACLFORWARDINGACTION_DROP = 1; - ACLFORWARDINGACTION_ACCEPT = 2; - ACLFORWARDINGACTION_REJECT = 3; -} - -enum AclLogActionEnum { - ACLLOGACTION_UNDEFINED = 0; - ACLLOGACTION_NOLOG = 1; - ACLLOGACTION_SYSLOG = 2; -} - -message AclMatch { - uint32 dscp = 1; - uint32 protocol = 2; - string src_address = 3; - string dst_address = 4; - uint32 src_port = 5; - uint32 dst_port = 6; - uint32 start_mpls_label = 7; - uint32 end_mpls_label = 8; -} - -message AclAction { - AclForwardActionEnum forward_action = 1; - AclLogActionEnum log_action = 2; -} - -message AclEntry { - uint32 sequence_id = 1; - string description = 2; - AclMatch match = 3; - AclAction action = 4; -} - -message AclRuleSet { - string name = 1; - AclRuleTypeEnum type = 2; - string description = 3; - string user_id = 4; - repeated AclEntry entries = 5; -} diff --git a/src/ztp/src/main/proto/acl.proto b/src/ztp/src/main/proto/acl.proto new file mode 120000 index 000000000..158ae78eb --- /dev/null +++ b/src/ztp/src/main/proto/acl.proto @@ -0,0 +1 @@ +../../../../../proto/acl.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/context.proto b/src/ztp/src/main/proto/context.proto deleted file mode 100644 index fce1e71ad..000000000 --- a/src/ztp/src/main/proto/context.proto +++ /dev/null @@ -1,615 +0,0 @@ -// 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. - -syntax = "proto3"; -package context; - -import "acl.proto"; -import "kpi_sample_types.proto"; - -service ContextService { - rpc ListContextIds (Empty ) returns ( ContextIdList ) {} - rpc ListContexts (Empty ) returns ( ContextList ) {} - rpc GetContext (ContextId ) returns ( Context ) {} - rpc SetContext (Context ) returns ( ContextId ) {} - rpc RemoveContext (ContextId ) returns ( Empty ) {} - rpc GetContextEvents (Empty ) returns (stream ContextEvent ) {} - - rpc ListTopologyIds (ContextId ) returns ( TopologyIdList ) {} - rpc ListTopologies (ContextId ) returns ( TopologyList ) {} - rpc GetTopology (TopologyId ) returns ( Topology ) {} - rpc GetTopologyDetails (TopologyId ) returns ( TopologyDetails ) {} - rpc SetTopology (Topology ) returns ( TopologyId ) {} - rpc RemoveTopology (TopologyId ) returns ( Empty ) {} - rpc GetTopologyEvents (Empty ) returns (stream TopologyEvent ) {} - - rpc ListDeviceIds (Empty ) returns ( DeviceIdList ) {} - rpc ListDevices (Empty ) returns ( DeviceList ) {} - rpc GetDevice (DeviceId ) returns ( Device ) {} - rpc SetDevice (Device ) returns ( DeviceId ) {} - rpc RemoveDevice (DeviceId ) returns ( Empty ) {} - rpc GetDeviceEvents (Empty ) returns (stream DeviceEvent ) {} - rpc SelectDevice (DeviceFilter ) returns ( DeviceList ) {} - rpc ListEndPointNames (EndPointIdList) returns ( EndPointNameList) {} - - rpc ListLinkIds (Empty ) returns ( LinkIdList ) {} - rpc ListLinks (Empty ) returns ( LinkList ) {} - rpc GetLink (LinkId ) returns ( Link ) {} - rpc SetLink (Link ) returns ( LinkId ) {} - rpc RemoveLink (LinkId ) returns ( Empty ) {} - rpc GetLinkEvents (Empty ) returns (stream LinkEvent ) {} - - rpc ListServiceIds (ContextId ) returns ( ServiceIdList ) {} - rpc ListServices (ContextId ) returns ( ServiceList ) {} - rpc GetService (ServiceId ) returns ( Service ) {} - rpc SetService (Service ) returns ( ServiceId ) {} - rpc UnsetService (Service ) returns ( ServiceId ) {} - rpc RemoveService (ServiceId ) returns ( Empty ) {} - rpc GetServiceEvents (Empty ) returns (stream ServiceEvent ) {} - rpc SelectService (ServiceFilter ) returns ( ServiceList ) {} - - rpc ListSliceIds (ContextId ) returns ( SliceIdList ) {} - rpc ListSlices (ContextId ) returns ( SliceList ) {} - rpc GetSlice (SliceId ) returns ( Slice ) {} - rpc SetSlice (Slice ) returns ( SliceId ) {} - rpc UnsetSlice (Slice ) returns ( SliceId ) {} - rpc RemoveSlice (SliceId ) returns ( Empty ) {} - rpc GetSliceEvents (Empty ) returns (stream SliceEvent ) {} - rpc SelectSlice (SliceFilter ) returns ( SliceList ) {} - - rpc ListConnectionIds (ServiceId ) returns ( ConnectionIdList) {} - rpc ListConnections (ServiceId ) returns ( ConnectionList ) {} - rpc GetConnection (ConnectionId ) returns ( Connection ) {} - rpc SetConnection (Connection ) returns ( ConnectionId ) {} - rpc RemoveConnection (ConnectionId ) returns ( Empty ) {} - rpc GetConnectionEvents(Empty ) returns (stream ConnectionEvent ) {} -} - -// ----- Generic ------------------------------------------------------------------------------------------------------- -message Empty {} - -message Uuid { - string uuid = 1; -} - -enum EventTypeEnum { - EVENTTYPE_UNDEFINED = 0; - EVENTTYPE_CREATE = 1; - EVENTTYPE_UPDATE = 2; - EVENTTYPE_REMOVE = 3; -} - -message Timestamp { - double timestamp = 1; -} - -message Event { - Timestamp timestamp = 1; - EventTypeEnum event_type = 2; -} - -// ----- Context ------------------------------------------------------------------------------------------------------- -message ContextId { - Uuid context_uuid = 1; -} - -message Context { - ContextId context_id = 1; - string name = 2; - repeated TopologyId topology_ids = 3; - repeated ServiceId service_ids = 4; - repeated SliceId slice_ids = 5; - TeraFlowController controller = 6; -} - -message ContextIdList { - repeated ContextId context_ids = 1; -} - -message ContextList { - repeated Context contexts = 1; -} - -message ContextEvent { - Event event = 1; - ContextId context_id = 2; -} - - -// ----- Topology ------------------------------------------------------------------------------------------------------ -message TopologyId { - ContextId context_id = 1; - Uuid topology_uuid = 2; -} - -message Topology { - TopologyId topology_id = 1; - string name = 2; - repeated DeviceId device_ids = 3; - repeated LinkId link_ids = 4; -} - -message TopologyDetails { - TopologyId topology_id = 1; - string name = 2; - repeated Device devices = 3; - repeated Link links = 4; -} - -message TopologyIdList { - repeated TopologyId topology_ids = 1; -} - -message TopologyList { - repeated Topology topologies = 1; -} - -message TopologyEvent { - Event event = 1; - TopologyId topology_id = 2; -} - - -// ----- Device -------------------------------------------------------------------------------------------------------- -message DeviceId { - Uuid device_uuid = 1; -} - -message Device { - DeviceId device_id = 1; - string name = 2; - string device_type = 3; - DeviceConfig device_config = 4; - DeviceOperationalStatusEnum device_operational_status = 5; - repeated DeviceDriverEnum device_drivers = 6; - repeated EndPoint device_endpoints = 7; - repeated Component components = 8; // Used for inventory - DeviceId controller_id = 9; // Identifier of node controlling the actual device -} - -message Component { //Defined previously to this section - Tested OK - Uuid component_uuid = 1; - string name = 2; - string type = 3; - - map<string, string> attributes = 4; // dict[attr.name => json.dumps(attr.value)] - string parent = 5; -} - -message DeviceConfig { - repeated ConfigRule config_rules = 1; -} - -enum DeviceDriverEnum { - DEVICEDRIVER_UNDEFINED = 0; // also used for emulated - DEVICEDRIVER_OPENCONFIG = 1; - DEVICEDRIVER_TRANSPORT_API = 2; - DEVICEDRIVER_P4 = 3; - DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4; - DEVICEDRIVER_ONF_TR_532 = 5; - DEVICEDRIVER_XR = 6; - DEVICEDRIVER_IETF_L2VPN = 7; - DEVICEDRIVER_GNMI_OPENCONFIG = 8; - DEVICEDRIVER_FLEXSCALE = 9; - DEVICEDRIVER_IETF_ACTN = 10; - DEVICEDRIVER_SMARTNIC = 11; -} - -enum DeviceOperationalStatusEnum { - DEVICEOPERATIONALSTATUS_UNDEFINED = 0; - DEVICEOPERATIONALSTATUS_DISABLED = 1; - DEVICEOPERATIONALSTATUS_ENABLED = 2; -} - -message DeviceIdList { - repeated DeviceId device_ids = 1; -} - -message DeviceList { - repeated Device devices = 1; -} - -message DeviceFilter { - DeviceIdList device_ids = 1; - bool include_endpoints = 2; - bool include_config_rules = 3; - bool include_components = 4; -} - -message DeviceEvent { - Event event = 1; - DeviceId device_id = 2; - DeviceConfig device_config = 3; -} - - -// ----- Link ---------------------------------------------------------------------------------------------------------- -message LinkId { - Uuid link_uuid = 1; -} - -message LinkAttributes { - float total_capacity_gbps = 1; - float used_capacity_gbps = 2; -} - -message Link { - LinkId link_id = 1; - string name = 2; - repeated EndPointId link_endpoint_ids = 3; - LinkAttributes attributes = 4; -} - -message LinkIdList { - repeated LinkId link_ids = 1; -} - -message LinkList { - repeated Link links = 1; -} - -message LinkEvent { - Event event = 1; - LinkId link_id = 2; -} - - -// ----- Service ------------------------------------------------------------------------------------------------------- -message ServiceId { - ContextId context_id = 1; - Uuid service_uuid = 2; -} - -message Service { - ServiceId service_id = 1; - string name = 2; - ServiceTypeEnum service_type = 3; - repeated EndPointId service_endpoint_ids = 4; - repeated Constraint service_constraints = 5; - ServiceStatus service_status = 6; - ServiceConfig service_config = 7; - Timestamp timestamp = 8; -} - -enum ServiceTypeEnum { - SERVICETYPE_UNKNOWN = 0; - SERVICETYPE_L3NM = 1; - SERVICETYPE_L2NM = 2; - SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3; - SERVICETYPE_TE = 4; - SERVICETYPE_E2E = 5; -} - -enum ServiceStatusEnum { - SERVICESTATUS_UNDEFINED = 0; - SERVICESTATUS_PLANNED = 1; - SERVICESTATUS_ACTIVE = 2; - SERVICESTATUS_UPDATING = 3; - SERVICESTATUS_PENDING_REMOVAL = 4; - SERVICESTATUS_SLA_VIOLATED = 5; -} - -message ServiceStatus { - ServiceStatusEnum service_status = 1; -} - -message ServiceConfig { - repeated ConfigRule config_rules = 1; -} - -message ServiceIdList { - repeated ServiceId service_ids = 1; -} - -message ServiceList { - repeated Service services = 1; -} - -message ServiceFilter { - ServiceIdList service_ids = 1; - bool include_endpoint_ids = 2; - bool include_constraints = 3; - bool include_config_rules = 4; -} - -message ServiceEvent { - Event event = 1; - ServiceId service_id = 2; -} - -// ----- Slice --------------------------------------------------------------------------------------------------------- -message SliceId { - ContextId context_id = 1; - Uuid slice_uuid = 2; -} - -message Slice { - SliceId slice_id = 1; - string name = 2; - repeated EndPointId slice_endpoint_ids = 3; - repeated Constraint slice_constraints = 4; - repeated ServiceId slice_service_ids = 5; - repeated SliceId slice_subslice_ids = 6; - SliceStatus slice_status = 7; - SliceConfig slice_config = 8; - SliceOwner slice_owner = 9; - Timestamp timestamp = 10; -} - -message SliceOwner { - Uuid owner_uuid = 1; - string owner_string = 2; -} - -enum SliceStatusEnum { - SLICESTATUS_UNDEFINED = 0; - SLICESTATUS_PLANNED = 1; - SLICESTATUS_INIT = 2; - SLICESTATUS_ACTIVE = 3; - SLICESTATUS_DEINIT = 4; - SLICESTATUS_SLA_VIOLATED = 5; -} - -message SliceStatus { - SliceStatusEnum slice_status = 1; -} - -message SliceConfig { - repeated ConfigRule config_rules = 1; -} - -message SliceIdList { - repeated SliceId slice_ids = 1; -} - -message SliceList { - repeated Slice slices = 1; -} - -message SliceFilter { - SliceIdList slice_ids = 1; - bool include_endpoint_ids = 2; - bool include_constraints = 3; - bool include_service_ids = 4; - bool include_subslice_ids = 5; - bool include_config_rules = 6; -} - -message SliceEvent { - Event event = 1; - SliceId slice_id = 2; -} - -// ----- Connection ---------------------------------------------------------------------------------------------------- -message ConnectionId { - Uuid connection_uuid = 1; -} - -message ConnectionSettings_L0 { - string lsp_symbolic_name = 1; -} - -message ConnectionSettings_L2 { - string src_mac_address = 1; - string dst_mac_address = 2; - uint32 ether_type = 3; - uint32 vlan_id = 4; - uint32 mpls_label = 5; - uint32 mpls_traffic_class = 6; -} - -message ConnectionSettings_L3 { - string src_ip_address = 1; - string dst_ip_address = 2; - uint32 dscp = 3; - uint32 protocol = 4; - uint32 ttl = 5; -} - -message ConnectionSettings_L4 { - uint32 src_port = 1; - uint32 dst_port = 2; - uint32 tcp_flags = 3; - uint32 ttl = 4; -} - -message ConnectionSettings { - ConnectionSettings_L0 l0 = 1; - ConnectionSettings_L2 l2 = 2; - ConnectionSettings_L3 l3 = 3; - ConnectionSettings_L4 l4 = 4; -} - -message Connection { - ConnectionId connection_id = 1; - ServiceId service_id = 2; - repeated EndPointId path_hops_endpoint_ids = 3; - repeated ServiceId sub_service_ids = 4; - ConnectionSettings settings = 5; -} - -message ConnectionIdList { - repeated ConnectionId connection_ids = 1; -} - -message ConnectionList { - repeated Connection connections = 1; -} - -message ConnectionEvent { - Event event = 1; - ConnectionId connection_id = 2; -} - - -// ----- Endpoint ------------------------------------------------------------------------------------------------------ -message EndPointId { - TopologyId topology_id = 1; - DeviceId device_id = 2; - Uuid endpoint_uuid = 3; -} - -message EndPoint { - EndPointId endpoint_id = 1; - string name = 2; - string endpoint_type = 3; - repeated kpi_sample_types.KpiSampleType kpi_sample_types = 4; - Location endpoint_location = 5; -} - -message EndPointName { - EndPointId endpoint_id = 1; - string device_name = 2; - string endpoint_name = 3; - string endpoint_type = 4; -} - -message EndPointIdList { - repeated EndPointId endpoint_ids = 1; -} - -message EndPointNameList { - repeated EndPointName endpoint_names = 1; -} - - -// ----- Configuration ------------------------------------------------------------------------------------------------- -enum ConfigActionEnum { - CONFIGACTION_UNDEFINED = 0; - CONFIGACTION_SET = 1; - CONFIGACTION_DELETE = 2; -} - -message ConfigRule_Custom { - string resource_key = 1; - string resource_value = 2; -} - -message ConfigRule_ACL { - EndPointId endpoint_id = 1; - acl.AclRuleSet rule_set = 2; -} - -message ConfigRule { - ConfigActionEnum action = 1; - oneof config_rule { - ConfigRule_Custom custom = 2; - ConfigRule_ACL acl = 3; - } -} - - -// ----- Constraint ---------------------------------------------------------------------------------------------------- -enum ConstraintActionEnum { - CONSTRAINTACTION_UNDEFINED = 0; - CONSTRAINTACTION_SET = 1; - CONSTRAINTACTION_DELETE = 2; -} - -message Constraint_Custom { - string constraint_type = 1; - string constraint_value = 2; -} - -message Constraint_Schedule { - float start_timestamp = 1; - float duration_days = 2; -} - -message GPS_Position { - float latitude = 1; - float longitude = 2; -} - -message Location { - oneof location { - string region = 1; - GPS_Position gps_position = 2; - } -} - -message Constraint_EndPointLocation { - EndPointId endpoint_id = 1; - Location location = 2; -} - -message Constraint_EndPointPriority { - EndPointId endpoint_id = 1; - uint32 priority = 2; -} - -message Constraint_SLA_Latency { - float e2e_latency_ms = 1; -} - -message Constraint_SLA_Capacity { - float capacity_gbps = 1; -} - -message Constraint_SLA_Availability { - uint32 num_disjoint_paths = 1; - bool all_active = 2; - float availability = 3; // 0.0 .. 100.0 percentage of availability -} - -enum IsolationLevelEnum { - NO_ISOLATION = 0; - PHYSICAL_ISOLATION = 1; - LOGICAL_ISOLATION = 2; - PROCESS_ISOLATION = 3; - PHYSICAL_MEMORY_ISOLATION = 4; - PHYSICAL_NETWORK_ISOLATION = 5; - VIRTUAL_RESOURCE_ISOLATION = 6; - NETWORK_FUNCTIONS_ISOLATION = 7; - SERVICE_ISOLATION = 8; -} - -message Constraint_SLA_Isolation_level { - repeated IsolationLevelEnum isolation_level = 1; -} - -message Constraint_Exclusions { - bool is_permanent = 1; - repeated DeviceId device_ids = 2; - repeated EndPointId endpoint_ids = 3; - repeated LinkId link_ids = 4; -} - -message Constraint { - ConstraintActionEnum action = 1; - oneof constraint { - Constraint_Custom custom = 2; - Constraint_Schedule schedule = 3; - Constraint_EndPointLocation endpoint_location = 4; - Constraint_EndPointPriority endpoint_priority = 5; - Constraint_SLA_Capacity sla_capacity = 6; - Constraint_SLA_Latency sla_latency = 7; - Constraint_SLA_Availability sla_availability = 8; - Constraint_SLA_Isolation_level sla_isolation = 9; - Constraint_Exclusions exclusions = 10; - } -} - - -// ----- Miscellaneous ------------------------------------------------------------------------------------------------- -message TeraFlowController { - ContextId context_id = 1; - string ip_address = 2; - uint32 port = 3; -} - -message AuthenticationResult { - ContextId context_id = 1; - bool authenticated = 2; -} diff --git a/src/ztp/src/main/proto/context.proto b/src/ztp/src/main/proto/context.proto new file mode 120000 index 000000000..7f33c4bc7 --- /dev/null +++ b/src/ztp/src/main/proto/context.proto @@ -0,0 +1 @@ +../../../../../proto/context.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/device.proto b/src/ztp/src/main/proto/device.proto deleted file mode 100644 index 30e60079d..000000000 --- a/src/ztp/src/main/proto/device.proto +++ /dev/null @@ -1,34 +0,0 @@ -// 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. - -syntax = "proto3"; -package device; - -import "context.proto"; -import "monitoring.proto"; - -service DeviceService { - rpc AddDevice (context.Device ) returns (context.DeviceId ) {} - rpc ConfigureDevice (context.Device ) returns (context.DeviceId ) {} - rpc DeleteDevice (context.DeviceId ) returns (context.Empty ) {} - rpc GetInitialConfig(context.DeviceId ) returns (context.DeviceConfig) {} - rpc MonitorDeviceKpi(MonitoringSettings) returns (context.Empty ) {} -} - -message MonitoringSettings { - monitoring.KpiId kpi_id = 1; - monitoring.KpiDescriptor kpi_descriptor = 2; - float sampling_duration_s = 3; - float sampling_interval_s = 4; -} diff --git a/src/ztp/src/main/proto/device.proto b/src/ztp/src/main/proto/device.proto new file mode 120000 index 000000000..ad6e7c47e --- /dev/null +++ b/src/ztp/src/main/proto/device.proto @@ -0,0 +1 @@ +../../../../../proto/device.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/kpi_sample_types.proto b/src/ztp/src/main/proto/kpi_sample_types.proto deleted file mode 100644 index 5b234a4e3..000000000 --- a/src/ztp/src/main/proto/kpi_sample_types.proto +++ /dev/null @@ -1,42 +0,0 @@ -// 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. - -syntax = "proto3"; -package kpi_sample_types; - -enum KpiSampleType { - KPISAMPLETYPE_UNKNOWN = 0; - - KPISAMPLETYPE_PACKETS_TRANSMITTED = 101; - KPISAMPLETYPE_PACKETS_RECEIVED = 102; - KPISAMPLETYPE_PACKETS_DROPPED = 103; - KPISAMPLETYPE_BYTES_TRANSMITTED = 201; - KPISAMPLETYPE_BYTES_RECEIVED = 202; - KPISAMPLETYPE_BYTES_DROPPED = 203; - - KPISAMPLETYPE_LINK_TOTAL_CAPACITY_GBPS = 301; - KPISAMPLETYPE_LINK_USED_CAPACITY_GBPS = 302; - - KPISAMPLETYPE_ML_CONFIDENCE = 401; //. can be used by both optical and L3 without any issue - - KPISAMPLETYPE_OPTICAL_SECURITY_STATUS = 501; //. can be used by both optical and L3 without any issue - - KPISAMPLETYPE_L3_UNIQUE_ATTACK_CONNS = 601; - KPISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS = 602; - KPISAMPLETYPE_L3_UNIQUE_ATTACKERS = 603; - KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CLIENTS = 604; - KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO = 605; - - KPISAMPLETYPE_SERVICE_LATENCY_MS = 701; -} diff --git a/src/ztp/src/main/proto/kpi_sample_types.proto b/src/ztp/src/main/proto/kpi_sample_types.proto new file mode 120000 index 000000000..98e748bbf --- /dev/null +++ b/src/ztp/src/main/proto/kpi_sample_types.proto @@ -0,0 +1 @@ +../../../../../proto/kpi_sample_types.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/monitoring.proto b/src/ztp/src/main/proto/monitoring.proto deleted file mode 100644 index 45ba48b02..000000000 --- a/src/ztp/src/main/proto/monitoring.proto +++ /dev/null @@ -1,174 +0,0 @@ -// 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. - -syntax = "proto3"; -package monitoring; - -import "context.proto"; -import "kpi_sample_types.proto"; - -service MonitoringService { - rpc SetKpi (KpiDescriptor ) returns (KpiId ) {} // Stable not final - rpc DeleteKpi (KpiId ) returns (context.Empty ) {} // Stable and final - rpc GetKpiDescriptor (KpiId ) returns (KpiDescriptor ) {} // Stable and final - rpc GetKpiDescriptorList (context.Empty ) returns (KpiDescriptorList ) {} // Stable and final - rpc IncludeKpi (Kpi ) returns (context.Empty ) {} // Stable and final - rpc MonitorKpi (MonitorKpiRequest ) returns (context.Empty ) {} // Stable and final - rpc QueryKpiData (KpiQuery ) returns (RawKpiTable ) {} // Not implemented - rpc SetKpiSubscription (SubsDescriptor ) returns (stream SubsResponse ) {} // Stable not final - rpc GetSubsDescriptor (SubscriptionID ) returns (SubsDescriptor ) {} // Stable and final - rpc GetSubscriptions (context.Empty ) returns (SubsList ) {} // Stable and final - rpc DeleteSubscription (SubscriptionID ) returns (context.Empty ) {} // Stable and final - rpc SetKpiAlarm (AlarmDescriptor ) returns (AlarmID ) {} // Stable not final - rpc GetAlarms (context.Empty ) returns (AlarmList ) {} // Stable and final - rpc GetAlarmDescriptor (AlarmID ) returns (AlarmDescriptor ) {} // Stable and final - rpc GetAlarmResponseStream(AlarmSubscription ) returns (stream AlarmResponse) {} // Not Stable not final - rpc DeleteAlarm (AlarmID ) returns (context.Empty ) {} // Stable and final - rpc GetStreamKpi (KpiId ) returns (stream Kpi ) {} // Stable not final - rpc GetInstantKpi (KpiId ) returns (Kpi ) {} // Stable not final -} - -message KpiDescriptor { - KpiId kpi_id = 1; - string kpi_description = 2; - repeated KpiId kpi_id_list = 3; - kpi_sample_types.KpiSampleType kpi_sample_type = 4; - context.DeviceId device_id = 5; - context.EndPointId endpoint_id = 6; - context.ServiceId service_id = 7; - context.SliceId slice_id = 8; - context.ConnectionId connection_id = 9; - context.LinkId link_id = 10; -} - -message MonitorKpiRequest { - KpiId kpi_id = 1; - float monitoring_window_s = 2; - float sampling_rate_s = 3; - // Pending add field to reflect Available Device Protocols -} - -message KpiQuery { - repeated KpiId kpi_ids = 1; - float monitoring_window_s = 2; - uint32 last_n_samples = 3; // used when you want something like "get the last N many samples - context.Timestamp start_timestamp = 4; // used when you want something like "get the samples since X date/time" - context.Timestamp end_timestamp = 5; // used when you want something like "get the samples until X date/time" -} - - -message RawKpi { // cell - context.Timestamp timestamp = 1; - KpiValue kpi_value = 2; -} - -message RawKpiList { // column - KpiId kpi_id = 1; - repeated RawKpi raw_kpis = 2; -} - -message RawKpiTable { // table - repeated RawKpiList raw_kpi_lists = 1; -} - -message KpiId { - context.Uuid kpi_id = 1; -} - -message Kpi { - KpiId kpi_id = 1; - context.Timestamp timestamp = 2; - KpiValue kpi_value = 3; -} - -message KpiValueRange { - KpiValue kpiMinValue = 1; - KpiValue kpiMaxValue = 2; - bool inRange = 3; // by default True - bool includeMinValue = 4; // False is outside the interval - bool includeMaxValue = 5; // False is outside the interval -} - -message KpiValue { - oneof value { - int32 int32Val = 1; - uint32 uint32Val = 2; - int64 int64Val = 3; - uint64 uint64Val = 4; - float floatVal = 5; - string stringVal = 6; - bool boolVal = 7; - } -} - - -message KpiList { - repeated Kpi kpi = 1; -} - -message KpiDescriptorList { - repeated KpiDescriptor kpi_descriptor_list = 1; -} - -message SubsDescriptor{ - SubscriptionID subs_id = 1; - KpiId kpi_id = 2; - float sampling_duration_s = 3; - float sampling_interval_s = 4; - context.Timestamp start_timestamp = 5; // used when you want something like "get the samples since X date/time" - context.Timestamp end_timestamp = 6; // used when you want something like "get the samples until X date/time" - // Pending add field to reflect Available Device Protocols -} - -message SubscriptionID { - context.Uuid subs_id = 1; -} - -message SubsResponse { - SubscriptionID subs_id = 1; - KpiList kpi_list = 2; -} - -message SubsList { - repeated SubsDescriptor subs_descriptor = 1; -} - -message AlarmDescriptor { - AlarmID alarm_id = 1; - string alarm_description = 2; - string name = 3; - KpiId kpi_id = 4; - KpiValueRange kpi_value_range = 5; - context.Timestamp timestamp = 6; -} - -message AlarmID{ - context.Uuid alarm_id = 1; -} - -message AlarmSubscription{ - AlarmID alarm_id = 1; - float subscription_timeout_s = 2; - float subscription_frequency_ms = 3; -} - -message AlarmResponse { - AlarmID alarm_id = 1; - string text = 2; - KpiList kpi_list = 3; -} - -message AlarmList { - repeated AlarmDescriptor alarm_descriptor = 1; -} diff --git a/src/ztp/src/main/proto/monitoring.proto b/src/ztp/src/main/proto/monitoring.proto new file mode 120000 index 000000000..aceaa7328 --- /dev/null +++ b/src/ztp/src/main/proto/monitoring.proto @@ -0,0 +1 @@ +../../../../../proto/monitoring.proto \ No newline at end of file diff --git a/src/ztp/src/main/proto/ztp.proto b/src/ztp/src/main/proto/ztp.proto deleted file mode 100644 index 5c895900d..000000000 --- a/src/ztp/src/main/proto/ztp.proto +++ /dev/null @@ -1,69 +0,0 @@ -// 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. - -syntax = "proto3"; -package ztp; - -import "context.proto"; - -service ZtpService { - rpc ZtpGetDeviceRole(DeviceRoleId) returns (DeviceRole) {} - rpc ZtpGetDeviceRolesByDeviceId(context.DeviceId) returns (DeviceRoleList) {} - rpc ZtpAdd(DeviceRole) returns (DeviceRoleState) {} - rpc ZtpUpdate(DeviceRoleConfig) returns (DeviceRoleState) {} - rpc ZtpDelete(DeviceRole) returns (DeviceRoleState) {} - rpc ZtpDeleteAll(context.Empty) returns (DeviceDeletionResult) {} -} - -enum DeviceRoleType { - NONE = 0; - DEV_OPS = 1; - DEV_CONF = 2; - PIPELINE_CONF = 3; -} - -message DeviceRoleId { - context.Uuid devRoleId = 1; - context.DeviceId devId = 2; -} - -message DeviceRole { - DeviceRoleId devRoleId = 1; - DeviceRoleType devRoleType = 2; -} - -message DeviceRoleConfig { - DeviceRole devRole = 1; - context.DeviceConfig devConfig = 2; -} - -message DeviceRoleList { - repeated DeviceRole devRole = 1; -} - -message DeviceRoleState { - DeviceRoleId devRoleId = 1; - ZtpDeviceState devRoleState = 2; -} - -message DeviceDeletionResult { - repeated string deleted = 1; -} - -enum ZtpDeviceState { - ZTP_DEV_STATE_UNDEFINED = 0; - ZTP_DEV_STATE_CREATED = 1; - ZTP_DEV_STATE_UPDATED = 2; - ZTP_DEV_STATE_DELETED = 3; -} diff --git a/src/ztp/src/main/proto/ztp.proto b/src/ztp/src/main/proto/ztp.proto new file mode 120000 index 000000000..9183ce531 --- /dev/null +++ b/src/ztp/src/main/proto/ztp.proto @@ -0,0 +1 @@ +../../../../../proto/ztp.proto \ No newline at end of file -- GitLab From 3786a02f8976fa80a9c2b71ef9955fc009258cdc Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Thu, 10 Apr 2025 11:02:45 +0200 Subject: [PATCH 178/213] Remove ztp_device.yang --- src/ztp/src/ztp-agent/ztp_device.yang | 46 --------------------------- 1 file changed, 46 deletions(-) delete mode 100644 src/ztp/src/ztp-agent/ztp_device.yang diff --git a/src/ztp/src/ztp-agent/ztp_device.yang b/src/ztp/src/ztp-agent/ztp_device.yang deleted file mode 100644 index f506d6413..000000000 --- a/src/ztp/src/ztp-agent/ztp_device.yang +++ /dev/null @@ -1,46 +0,0 @@ -module ztp_device { - - yang-version "1"; - - namespace "urn:ztp_nos"; - prefix "ztp_nos"; - organization "EVIDEN"; - contact "jose.carcel@eviden.com"; - description "Basic example of data model for modelling NOS ZTP Device"; - - revision "2023-08-03" { - description "Basic example of data model for modelling NOS ZTP Device"; - reference ""; - } - - grouping config{ - leaf ztp_device_sw_url{ - type string; - } - leaf config_script_url{ - type string; - } - leaf ip_range { - type string; // check IP regular expression - } - } - - typedef state { - type enumeration{ - enum "UNDEF"; - enum "INIT_HW"; - enum "INIT_SW"; - enum "CONFIGURED"; - enum "RUNNING"; - enum "UPDATING"; - enum "MIGRATING"; - enum "DELETED"; - } - } - - grouping state { - leaf ztp_device_state { - type state; - } - } -} \ No newline at end of file -- GitLab From ac2f59755ee0550c5377c5e993df71bc187d3b99 Mon Sep 17 00:00:00 2001 From: jimenezquesa <manuel.jimenez@eviden.com> Date: Thu, 10 Apr 2025 16:34:36 +0200 Subject: [PATCH 179/213] Add requirements.in --- src/ztp_server/requirements.in | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/ztp_server/requirements.in diff --git a/src/ztp_server/requirements.in b/src/ztp_server/requirements.in new file mode 100644 index 000000000..d56ee821b --- /dev/null +++ b/src/ztp_server/requirements.in @@ -0,0 +1,28 @@ +# Copyright 2022-2024 ETSI 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. + +deepdiff==6.7.* +deepmerge==1.1.* +Flask==2.1.3 +Flask-HTTPAuth==4.5.0 +Flask-RESTful==0.3.9 +jsonschema==4.4.0 +libyang==2.8.4 +netaddr==0.9.0 +pyang==2.6.0 +git+https://github.com/robshakir/pyangbind.git +pydantic==2.6.3 +requests==2.27.1 +werkzeug==2.3.7 +websockets==12.0 -- GitLab From 2f3891fda51de8f6221c3303cd40192901ff3b30 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Thu, 10 Apr 2025 15:31:39 +0000 Subject: [PATCH 180/213] Protocol Buffers: - Auto-import any.proto in context --- proto/any.proto | 162 -------------------------------------------- proto/context.proto | 4 +- 2 files changed, 3 insertions(+), 163 deletions(-) delete mode 100644 proto/any.proto diff --git a/proto/any.proto b/proto/any.proto deleted file mode 100644 index eff44e509..000000000 --- a/proto/any.proto +++ /dev/null @@ -1,162 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package google.protobuf; - -option go_package = "google.golang.org/protobuf/types/known/anypb"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "AnyProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; -option csharp_namespace = "Google.Protobuf.WellKnownTypes"; - -// `Any` contains an arbitrary serialized protocol buffer message along with a -// URL that describes the type of the serialized message. -// -// Protobuf library provides support to pack/unpack Any values in the form -// of utility functions or additional generated methods of the Any type. -// -// Example 1: Pack and unpack a message in C++. -// -// Foo foo = ...; -// Any any; -// any.PackFrom(foo); -// ... -// if (any.UnpackTo(&foo)) { -// ... -// } -// -// Example 2: Pack and unpack a message in Java. -// -// Foo foo = ...; -// Any any = Any.pack(foo); -// ... -// if (any.is(Foo.class)) { -// foo = any.unpack(Foo.class); -// } -// // or ... -// if (any.isSameTypeAs(Foo.getDefaultInstance())) { -// foo = any.unpack(Foo.getDefaultInstance()); -// } -// -// Example 3: Pack and unpack a message in Python. -// -// foo = Foo(...) -// any = Any() -// any.Pack(foo) -// ... -// if any.Is(Foo.DESCRIPTOR): -// any.Unpack(foo) -// ... -// -// Example 4: Pack and unpack a message in Go -// -// foo := &pb.Foo{...} -// any, err := anypb.New(foo) -// if err != nil { -// ... -// } -// ... -// foo := &pb.Foo{} -// if err := any.UnmarshalTo(foo); err != nil { -// ... -// } -// -// The pack methods provided by protobuf library will by default use -// 'type.googleapis.com/full.type.name' as the type URL and the unpack -// methods only use the fully qualified type name after the last '/' -// in the type URL, for example "foo.bar.com/x/y.z" will yield type -// name "y.z". -// -// JSON -// ==== -// The JSON representation of an `Any` value uses the regular -// representation of the deserialized, embedded message, with an -// additional field `@type` which contains the type URL. Example: -// -// package google.profile; -// message Person { -// string first_name = 1; -// string last_name = 2; -// } -// -// { -// "@type": "type.googleapis.com/google.profile.Person", -// "firstName": <string>, -// "lastName": <string> -// } -// -// If the embedded message type is well-known and has a custom JSON -// representation, that representation will be embedded adding a field -// `value` which holds the custom JSON in addition to the `@type` -// field. Example (for message [google.protobuf.Duration][]): -// -// { -// "@type": "type.googleapis.com/google.protobuf.Duration", -// "value": "1.212s" -// } -// -message Any { - // A URL/resource name that uniquely identifies the type of the serialized - // protocol buffer message. This string must contain at least - // one "/" character. The last segment of the URL's path must represent - // the fully qualified name of the type (as in - // `path/google.protobuf.Duration`). The name should be in a canonical form - // (e.g., leading "." is not accepted). - // - // In practice, teams usually precompile into the binary all types that they - // expect it to use in the context of Any. However, for URLs which use the - // scheme `http`, `https`, or no scheme, one can optionally set up a type - // server that maps type URLs to message definitions as follows: - // - // * If no scheme is provided, `https` is assumed. - // * An HTTP GET on the URL must yield a [google.protobuf.Type][] - // value in binary format, or produce an error. - // * Applications are allowed to cache lookup results based on the - // URL, or have them precompiled into a binary to avoid any - // lookup. Therefore, binary compatibility needs to be preserved - // on changes to types. (Use versioned type names to manage - // breaking changes.) - // - // Note: this functionality is not currently available in the official - // protobuf release, and it is not used for type URLs beginning with - // type.googleapis.com. As of May 2023, there are no widely used type server - // implementations and no plans to implement one. - // - // Schemes other than `http`, `https` (or the empty scheme) might be - // used with implementation specific semantics. - // - string type_url = 1; - - // Must be a valid serialized protocol buffer of the above specified type. - bytes value = 2; -} diff --git a/proto/context.proto b/proto/context.proto index d22dcdc43..fb0111e14 100644 --- a/proto/context.proto +++ b/proto/context.proto @@ -15,7 +15,9 @@ syntax = "proto3"; package context; -import "any.proto"; +//import "any.proto"; +import "google/protobuf/any.proto"; + import "acl.proto"; import "kpi_sample_types.proto"; -- GitLab From 4a4c9dae464ba1919bca69eb213009c24385a759 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Thu, 10 Apr 2025 15:38:13 +0000 Subject: [PATCH 181/213] Common - Type Checkers - Assertions: - Corrected definition of endpoint --- src/common/type_checkers/Assertions.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/common/type_checkers/Assertions.py b/src/common/type_checkers/Assertions.py index 9fb48bcde..f241dc0fb 100644 --- a/src/common/type_checkers/Assertions.py +++ b/src/common/type_checkers/Assertions.py @@ -472,7 +472,7 @@ def validate_topology(message, num_devices=None, num_links=None): def validate_endpoint(message): assert isinstance(message, dict) - assert len(message.keys()) == 4 + assert len(message.keys()) == 6 assert 'endpoint_id' in message validate_endpoint_id(message['endpoint_id']) assert 'name' in message @@ -482,6 +482,10 @@ def validate_endpoint(message): assert 'kpi_sample_types' in message assert isinstance(message['kpi_sample_types'], list) for kpi_sample_type in message['kpi_sample_types']: validate_kpi_sample_types_enum(kpi_sample_type) + assert 'endpoint_location' in message + # TODO: validate "endpoint_location" + assert 'capabilities' in message + # TODO: validate "capabilities" def validate_component(component): assert isinstance(component, dict) -- GitLab From a324e412ed0f73afe42a34b51f3c67f76a1ab3e0 Mon Sep 17 00:00:00 2001 From: gifrerenom <lluis.gifre@cttc.es> Date: Thu, 10 Apr 2025 16:02:26 +0000 Subject: [PATCH 182/213] Policy & ZTP components: - Updated generated gRPC code - Fixed ConstraintSchedule data types --- .../context/model/ConstraintSchedule.java | 6 +- .../grpc/context/ContextOuterClass.java | 14015 ++++--- .../grpc/context/ContextService.java | 14 +- .../grpc/context/ContextServiceBean.java | 51 +- .../grpc/context/ContextServiceClient.java | 31 +- .../grpc/context/ContextServiceGrpc.java | 288 +- .../context/MutinyContextServiceGrpc.java | 91 +- .../grpc/kpi_sample_types/KpiSampleTypes.java | 87 +- src/policy/target/kubernetes/kubernetes.yml | 135 + .../generated-sources/grpc/acl/Acl.java | 1257 +- .../grpc/context/ContextOuterClass.java | 34324 ++++++++-------- .../grpc/context/ContextService.java | 14 +- .../grpc/context/ContextServiceBean.java | 51 +- .../grpc/context/ContextServiceClient.java | 31 +- .../grpc/context/ContextServiceGrpc.java | 416 +- .../context/MutinyContextServiceGrpc.java | 91 +- .../generated-sources/grpc/device/Device.java | 425 +- .../grpc/device/DeviceServiceGrpc.java | 34 +- .../grpc/kpi_sample_types/KpiSampleTypes.java | 87 +- .../grpc/monitoring/Monitoring.java | 5773 ++- .../monitoring/MonitoringServiceGrpc.java | 60 +- .../generated-sources/grpc/ztp/Ztp.java | 1315 +- .../grpc/ztp/ZtpServiceGrpc.java | 36 +- src/ztp/target/kubernetes/kubernetes.yml | 16 +- 24 files changed, 32338 insertions(+), 26310 deletions(-) create mode 100644 src/policy/target/kubernetes/kubernetes.yml diff --git a/src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintSchedule.java b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintSchedule.java index 19a249513..ddfa2bfb8 100644 --- a/src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintSchedule.java +++ b/src/policy/src/main/java/org/etsi/tfs/policy/context/model/ConstraintSchedule.java @@ -18,15 +18,15 @@ package org.etsi.tfs.policy.context.model; public class ConstraintSchedule { - private final float startTimestamp; + private final double startTimestamp; private final float durationDays; - public ConstraintSchedule(float startTimestamp, float durationDays) { + public ConstraintSchedule(double startTimestamp, float durationDays) { this.startTimestamp = startTimestamp; this.durationDays = durationDays; } - public float getStartTimestamp() { + public double getStartTimestamp() { return startTimestamp; } diff --git a/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java b/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java index d41b80f1d..d85f89f6f 100644 --- a/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java +++ b/src/policy/target/generated-sources/grpc/context/ContextOuterClass.java @@ -199,6 +199,22 @@ public final class ContextOuterClass { * <code>DEVICEDRIVER_QKD = 12;</code> */ DEVICEDRIVER_QKD(12), + /** + * <code>DEVICEDRIVER_IETF_L3VPN = 13;</code> + */ + DEVICEDRIVER_IETF_L3VPN(13), + /** + * <code>DEVICEDRIVER_IETF_SLICE = 14;</code> + */ + DEVICEDRIVER_IETF_SLICE(14), + /** + * <code>DEVICEDRIVER_NCE = 15;</code> + */ + DEVICEDRIVER_NCE(15), + /** + * <code>DEVICEDRIVER_SMARTNIC = 16;</code> + */ + DEVICEDRIVER_SMARTNIC(16), UNRECOGNIZED(-1); /** @@ -270,6 +286,26 @@ public final class ContextOuterClass { */ public static final int DEVICEDRIVER_QKD_VALUE = 12; + /** + * <code>DEVICEDRIVER_IETF_L3VPN = 13;</code> + */ + public static final int DEVICEDRIVER_IETF_L3VPN_VALUE = 13; + + /** + * <code>DEVICEDRIVER_IETF_SLICE = 14;</code> + */ + public static final int DEVICEDRIVER_IETF_SLICE_VALUE = 14; + + /** + * <code>DEVICEDRIVER_NCE = 15;</code> + */ + public static final int DEVICEDRIVER_NCE_VALUE = 15; + + /** + * <code>DEVICEDRIVER_SMARTNIC = 16;</code> + */ + public static final int DEVICEDRIVER_SMARTNIC_VALUE = 16; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); @@ -319,6 +355,14 @@ public final class ContextOuterClass { return DEVICEDRIVER_OC; case 12: return DEVICEDRIVER_QKD; + case 13: + return DEVICEDRIVER_IETF_L3VPN; + case 14: + return DEVICEDRIVER_IETF_SLICE; + case 15: + return DEVICEDRIVER_NCE; + case 16: + return DEVICEDRIVER_SMARTNIC; default: return null; } @@ -482,6 +526,141 @@ public final class ContextOuterClass { } } + /** + * Protobuf enum {@code context.LinkTypeEnum} + */ + public enum LinkTypeEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * <code>LINKTYPE_UNKNOWN = 0;</code> + */ + LINKTYPE_UNKNOWN(0), + /** + * <code>LINKTYPE_COPPER = 1;</code> + */ + LINKTYPE_COPPER(1), + /** + * <code>LINKTYPE_FIBER = 2;</code> + */ + LINKTYPE_FIBER(2), + /** + * <code>LINKTYPE_RADIO = 3;</code> + */ + LINKTYPE_RADIO(3), + /** + * <code>LINKTYPE_VIRTUAL = 4;</code> + */ + LINKTYPE_VIRTUAL(4), + UNRECOGNIZED(-1); + + /** + * <code>LINKTYPE_UNKNOWN = 0;</code> + */ + public static final int LINKTYPE_UNKNOWN_VALUE = 0; + + /** + * <code>LINKTYPE_COPPER = 1;</code> + */ + public static final int LINKTYPE_COPPER_VALUE = 1; + + /** + * <code>LINKTYPE_FIBER = 2;</code> + */ + public static final int LINKTYPE_FIBER_VALUE = 2; + + /** + * <code>LINKTYPE_RADIO = 3;</code> + */ + public static final int LINKTYPE_RADIO_VALUE = 3; + + /** + * <code>LINKTYPE_VIRTUAL = 4;</code> + */ + public static final int LINKTYPE_VIRTUAL_VALUE = 4; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static LinkTypeEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static LinkTypeEnum forNumber(int value) { + switch(value) { + case 0: + return LINKTYPE_UNKNOWN; + case 1: + return LINKTYPE_COPPER; + case 2: + return LINKTYPE_FIBER; + case 3: + return LINKTYPE_RADIO; + case 4: + return LINKTYPE_VIRTUAL; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap<LinkTypeEnum> internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap<LinkTypeEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<LinkTypeEnum>() { + + public LinkTypeEnum findValueByNumber(int number) { + return LinkTypeEnum.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(3); + } + + private static final LinkTypeEnum[] VALUES = values(); + + public static LinkTypeEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private LinkTypeEnum(int value) { + this.value = value; + } + } + /** * Protobuf enum {@code context.ServiceTypeEnum} */ @@ -628,7 +807,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(3); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(4); } private static final ServiceTypeEnum[] VALUES = values(); @@ -774,7 +953,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(4); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(5); } private static final ServiceStatusEnum[] VALUES = values(); @@ -920,7 +1099,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(5); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(6); } private static final SliceStatusEnum[] VALUES = values(); @@ -1037,7 +1216,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(6); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(7); } private static final ConfigActionEnum[] VALUES = values(); @@ -1154,7 +1333,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(7); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(8); } private static final ConstraintActionEnum[] VALUES = values(); @@ -1333,7 +1512,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(8); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(9); } private static final IsolationLevelEnum[] VALUES = values(); @@ -8814,6 +8993,31 @@ public final class ContextOuterClass { * <code>repeated .context.LinkId link_ids = 4;</code> */ context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index); + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + java.util.List<context.ContextOuterClass.LinkId> getOpticalLinkIdsList(); + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + context.ContextOuterClass.LinkId getOpticalLinkIds(int index); + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + int getOpticalLinkIdsCount(); + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + java.util.List<? extends context.ContextOuterClass.LinkIdOrBuilder> getOpticalLinkIdsOrBuilderList(); + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + context.ContextOuterClass.LinkIdOrBuilder getOpticalLinkIdsOrBuilder(int index); } /** @@ -8833,6 +9037,7 @@ public final class ContextOuterClass { name_ = ""; deviceIds_ = java.util.Collections.emptyList(); linkIds_ = java.util.Collections.emptyList(); + opticalLinkIds_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -9008,6 +9213,51 @@ public final class ContextOuterClass { return linkIds_.get(index); } + public static final int OPTICAL_LINK_IDS_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private java.util.List<context.ContextOuterClass.LinkId> opticalLinkIds_; + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + @java.lang.Override + public java.util.List<context.ContextOuterClass.LinkId> getOpticalLinkIdsList() { + return opticalLinkIds_; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + @java.lang.Override + public java.util.List<? extends context.ContextOuterClass.LinkIdOrBuilder> getOpticalLinkIdsOrBuilderList() { + return opticalLinkIds_; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + @java.lang.Override + public int getOpticalLinkIdsCount() { + return opticalLinkIds_.size(); + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.LinkId getOpticalLinkIds(int index) { + return opticalLinkIds_.get(index); + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.LinkIdOrBuilder getOpticalLinkIdsOrBuilder(int index) { + return opticalLinkIds_.get(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -9035,6 +9285,9 @@ public final class ContextOuterClass { for (int i = 0; i < linkIds_.size(); i++) { output.writeMessage(4, linkIds_.get(i)); } + for (int i = 0; i < opticalLinkIds_.size(); i++) { + output.writeMessage(5, opticalLinkIds_.get(i)); + } getUnknownFields().writeTo(output); } @@ -9056,6 +9309,9 @@ public final class ContextOuterClass { for (int i = 0; i < linkIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, linkIds_.get(i)); } + for (int i = 0; i < opticalLinkIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, opticalLinkIds_.get(i)); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -9082,6 +9338,8 @@ public final class ContextOuterClass { return false; if (!getLinkIdsList().equals(other.getLinkIdsList())) return false; + if (!getOpticalLinkIdsList().equals(other.getOpticalLinkIdsList())) + return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; @@ -9108,6 +9366,10 @@ public final class ContextOuterClass { hash = (37 * hash) + LINK_IDS_FIELD_NUMBER; hash = (53 * hash) + getLinkIdsList().hashCode(); } + if (getOpticalLinkIdsCount() > 0) { + hash = (37 * hash) + OPTICAL_LINK_IDS_FIELD_NUMBER; + hash = (53 * hash) + getOpticalLinkIdsList().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -9232,6 +9494,13 @@ public final class ContextOuterClass { linkIdsBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000008); + if (opticalLinkIdsBuilder_ == null) { + opticalLinkIds_ = java.util.Collections.emptyList(); + } else { + opticalLinkIds_ = null; + opticalLinkIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -9284,6 +9553,15 @@ public final class ContextOuterClass { } else { result.linkIds_ = linkIdsBuilder_.build(); } + if (opticalLinkIdsBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + opticalLinkIds_ = java.util.Collections.unmodifiableList(opticalLinkIds_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.opticalLinkIds_ = opticalLinkIds_; + } else { + result.opticalLinkIds_ = opticalLinkIdsBuilder_.build(); + } } private void buildPartial0(context.ContextOuterClass.Topology result) { @@ -9365,6 +9643,30 @@ public final class ContextOuterClass { } } } + if (opticalLinkIdsBuilder_ == null) { + if (!other.opticalLinkIds_.isEmpty()) { + if (opticalLinkIds_.isEmpty()) { + opticalLinkIds_ = other.opticalLinkIds_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.addAll(other.opticalLinkIds_); + } + onChanged(); + } + } else { + if (!other.opticalLinkIds_.isEmpty()) { + if (opticalLinkIdsBuilder_.isEmpty()) { + opticalLinkIdsBuilder_.dispose(); + opticalLinkIdsBuilder_ = null; + opticalLinkIds_ = other.opticalLinkIds_; + bitField0_ = (bitField0_ & ~0x00000010); + opticalLinkIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getOpticalLinkIdsFieldBuilder() : null; + } else { + opticalLinkIdsBuilder_.addAllMessages(other.opticalLinkIds_); + } + } + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -9426,6 +9728,18 @@ public final class ContextOuterClass { break; } // case 34 + case 42: + { + context.ContextOuterClass.LinkId m = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry); + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.add(m); + } else { + opticalLinkIdsBuilder_.addMessage(m); + } + break; + } + // case 42 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -10116,6 +10430,243 @@ public final class ContextOuterClass { return linkIdsBuilder_; } + private java.util.List<context.ContextOuterClass.LinkId> opticalLinkIds_ = java.util.Collections.emptyList(); + + private void ensureOpticalLinkIdsIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + opticalLinkIds_ = new java.util.ArrayList<context.ContextOuterClass.LinkId>(opticalLinkIds_); + bitField0_ |= 0x00000010; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> opticalLinkIdsBuilder_; + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public java.util.List<context.ContextOuterClass.LinkId> getOpticalLinkIdsList() { + if (opticalLinkIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(opticalLinkIds_); + } else { + return opticalLinkIdsBuilder_.getMessageList(); + } + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public int getOpticalLinkIdsCount() { + if (opticalLinkIdsBuilder_ == null) { + return opticalLinkIds_.size(); + } else { + return opticalLinkIdsBuilder_.getCount(); + } + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public context.ContextOuterClass.LinkId getOpticalLinkIds(int index) { + if (opticalLinkIdsBuilder_ == null) { + return opticalLinkIds_.get(index); + } else { + return opticalLinkIdsBuilder_.getMessage(index); + } + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder setOpticalLinkIds(int index, context.ContextOuterClass.LinkId value) { + if (opticalLinkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.set(index, value); + onChanged(); + } else { + opticalLinkIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder setOpticalLinkIds(int index, context.ContextOuterClass.LinkId.Builder builderForValue) { + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.set(index, builderForValue.build()); + onChanged(); + } else { + opticalLinkIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder addOpticalLinkIds(context.ContextOuterClass.LinkId value) { + if (opticalLinkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.add(value); + onChanged(); + } else { + opticalLinkIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder addOpticalLinkIds(int index, context.ContextOuterClass.LinkId value) { + if (opticalLinkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.add(index, value); + onChanged(); + } else { + opticalLinkIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder addOpticalLinkIds(context.ContextOuterClass.LinkId.Builder builderForValue) { + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.add(builderForValue.build()); + onChanged(); + } else { + opticalLinkIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder addOpticalLinkIds(int index, context.ContextOuterClass.LinkId.Builder builderForValue) { + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.add(index, builderForValue.build()); + onChanged(); + } else { + opticalLinkIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder addAllOpticalLinkIds(java.lang.Iterable<? extends context.ContextOuterClass.LinkId> values) { + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, opticalLinkIds_); + onChanged(); + } else { + opticalLinkIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder clearOpticalLinkIds() { + if (opticalLinkIdsBuilder_ == null) { + opticalLinkIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + opticalLinkIdsBuilder_.clear(); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder removeOpticalLinkIds(int index) { + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.remove(index); + onChanged(); + } else { + opticalLinkIdsBuilder_.remove(index); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public context.ContextOuterClass.LinkId.Builder getOpticalLinkIdsBuilder(int index) { + return getOpticalLinkIdsFieldBuilder().getBuilder(index); + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public context.ContextOuterClass.LinkIdOrBuilder getOpticalLinkIdsOrBuilder(int index) { + if (opticalLinkIdsBuilder_ == null) { + return opticalLinkIds_.get(index); + } else { + return opticalLinkIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public java.util.List<? extends context.ContextOuterClass.LinkIdOrBuilder> getOpticalLinkIdsOrBuilderList() { + if (opticalLinkIdsBuilder_ != null) { + return opticalLinkIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(opticalLinkIds_); + } + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public context.ContextOuterClass.LinkId.Builder addOpticalLinkIdsBuilder() { + return getOpticalLinkIdsFieldBuilder().addBuilder(context.ContextOuterClass.LinkId.getDefaultInstance()); + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public context.ContextOuterClass.LinkId.Builder addOpticalLinkIdsBuilder(int index) { + return getOpticalLinkIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.LinkId.getDefaultInstance()); + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public java.util.List<context.ContextOuterClass.LinkId.Builder> getOpticalLinkIdsBuilderList() { + return getOpticalLinkIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> getOpticalLinkIdsFieldBuilder() { + if (opticalLinkIdsBuilder_ == null) { + opticalLinkIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>(opticalLinkIds_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); + opticalLinkIds_ = null; + } + return opticalLinkIdsBuilder_; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); @@ -10253,6 +10804,31 @@ public final class ContextOuterClass { * <code>repeated .context.Link links = 4;</code> */ context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index); + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList(); + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + context.ContextOuterClass.OpticalLink getOpticalLinks(int index); + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + int getOpticalLinksCount(); + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList(); + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index); } /** @@ -10272,6 +10848,7 @@ public final class ContextOuterClass { name_ = ""; devices_ = java.util.Collections.emptyList(); links_ = java.util.Collections.emptyList(); + opticalLinks_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -10447,6 +11024,51 @@ public final class ContextOuterClass { return links_.get(index); } + public static final int OPTICAL_LINKS_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private java.util.List<context.ContextOuterClass.OpticalLink> opticalLinks_; + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + @java.lang.Override + public java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList() { + return opticalLinks_; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + @java.lang.Override + public java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList() { + return opticalLinks_; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + @java.lang.Override + public int getOpticalLinksCount() { + return opticalLinks_.size(); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.OpticalLink getOpticalLinks(int index) { + return opticalLinks_.get(index); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index) { + return opticalLinks_.get(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -10474,6 +11096,9 @@ public final class ContextOuterClass { for (int i = 0; i < links_.size(); i++) { output.writeMessage(4, links_.get(i)); } + for (int i = 0; i < opticalLinks_.size(); i++) { + output.writeMessage(5, opticalLinks_.get(i)); + } getUnknownFields().writeTo(output); } @@ -10495,6 +11120,9 @@ public final class ContextOuterClass { for (int i = 0; i < links_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, links_.get(i)); } + for (int i = 0; i < opticalLinks_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, opticalLinks_.get(i)); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -10521,6 +11149,8 @@ public final class ContextOuterClass { return false; if (!getLinksList().equals(other.getLinksList())) return false; + if (!getOpticalLinksList().equals(other.getOpticalLinksList())) + return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; @@ -10547,6 +11177,10 @@ public final class ContextOuterClass { hash = (37 * hash) + LINKS_FIELD_NUMBER; hash = (53 * hash) + getLinksList().hashCode(); } + if (getOpticalLinksCount() > 0) { + hash = (37 * hash) + OPTICAL_LINKS_FIELD_NUMBER; + hash = (53 * hash) + getOpticalLinksList().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -10671,6 +11305,13 @@ public final class ContextOuterClass { linksBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000008); + if (opticalLinksBuilder_ == null) { + opticalLinks_ = java.util.Collections.emptyList(); + } else { + opticalLinks_ = null; + opticalLinksBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -10723,6 +11364,15 @@ public final class ContextOuterClass { } else { result.links_ = linksBuilder_.build(); } + if (opticalLinksBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + opticalLinks_ = java.util.Collections.unmodifiableList(opticalLinks_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.opticalLinks_ = opticalLinks_; + } else { + result.opticalLinks_ = opticalLinksBuilder_.build(); + } } private void buildPartial0(context.ContextOuterClass.TopologyDetails result) { @@ -10804,6 +11454,30 @@ public final class ContextOuterClass { } } } + if (opticalLinksBuilder_ == null) { + if (!other.opticalLinks_.isEmpty()) { + if (opticalLinks_.isEmpty()) { + opticalLinks_ = other.opticalLinks_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureOpticalLinksIsMutable(); + opticalLinks_.addAll(other.opticalLinks_); + } + onChanged(); + } + } else { + if (!other.opticalLinks_.isEmpty()) { + if (opticalLinksBuilder_.isEmpty()) { + opticalLinksBuilder_.dispose(); + opticalLinksBuilder_ = null; + opticalLinks_ = other.opticalLinks_; + bitField0_ = (bitField0_ & ~0x00000010); + opticalLinksBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getOpticalLinksFieldBuilder() : null; + } else { + opticalLinksBuilder_.addAllMessages(other.opticalLinks_); + } + } + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -10865,6 +11539,18 @@ public final class ContextOuterClass { break; } // case 34 + case 42: + { + context.ContextOuterClass.OpticalLink m = input.readMessage(context.ContextOuterClass.OpticalLink.parser(), extensionRegistry); + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(m); + } else { + opticalLinksBuilder_.addMessage(m); + } + break; + } + // case 42 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -11555,6 +12241,243 @@ public final class ContextOuterClass { return linksBuilder_; } + private java.util.List<context.ContextOuterClass.OpticalLink> opticalLinks_ = java.util.Collections.emptyList(); + + private void ensureOpticalLinksIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + opticalLinks_ = new java.util.ArrayList<context.ContextOuterClass.OpticalLink>(opticalLinks_); + bitField0_ |= 0x00000010; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder> opticalLinksBuilder_; + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList() { + if (opticalLinksBuilder_ == null) { + return java.util.Collections.unmodifiableList(opticalLinks_); + } else { + return opticalLinksBuilder_.getMessageList(); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public int getOpticalLinksCount() { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.size(); + } else { + return opticalLinksBuilder_.getCount(); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public context.ContextOuterClass.OpticalLink getOpticalLinks(int index) { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.get(index); + } else { + return opticalLinksBuilder_.getMessage(index); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder setOpticalLinks(int index, context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinksIsMutable(); + opticalLinks_.set(index, value); + onChanged(); + } else { + opticalLinksBuilder_.setMessage(index, value); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder setOpticalLinks(int index, context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.set(index, builderForValue.build()); + onChanged(); + } else { + opticalLinksBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder addOpticalLinks(context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinksIsMutable(); + opticalLinks_.add(value); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(value); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder addOpticalLinks(int index, context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinksIsMutable(); + opticalLinks_.add(index, value); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(index, value); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder addOpticalLinks(context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(builderForValue.build()); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder addOpticalLinks(int index, context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(index, builderForValue.build()); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder addAllOpticalLinks(java.lang.Iterable<? extends context.ContextOuterClass.OpticalLink> values) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, opticalLinks_); + onChanged(); + } else { + opticalLinksBuilder_.addAllMessages(values); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder clearOpticalLinks() { + if (opticalLinksBuilder_ == null) { + opticalLinks_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + opticalLinksBuilder_.clear(); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder removeOpticalLinks(int index) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.remove(index); + onChanged(); + } else { + opticalLinksBuilder_.remove(index); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public context.ContextOuterClass.OpticalLink.Builder getOpticalLinksBuilder(int index) { + return getOpticalLinksFieldBuilder().getBuilder(index); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index) { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.get(index); + } else { + return opticalLinksBuilder_.getMessageOrBuilder(index); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList() { + if (opticalLinksBuilder_ != null) { + return opticalLinksBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(opticalLinks_); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public context.ContextOuterClass.OpticalLink.Builder addOpticalLinksBuilder() { + return getOpticalLinksFieldBuilder().addBuilder(context.ContextOuterClass.OpticalLink.getDefaultInstance()); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public context.ContextOuterClass.OpticalLink.Builder addOpticalLinksBuilder(int index) { + return getOpticalLinksFieldBuilder().addBuilder(index, context.ContextOuterClass.OpticalLink.getDefaultInstance()); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public java.util.List<context.ContextOuterClass.OpticalLink.Builder> getOpticalLinksBuilderList() { + return getOpticalLinksFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksFieldBuilder() { + if (opticalLinksBuilder_ == null) { + opticalLinksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder>(opticalLinks_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); + opticalLinks_ = null; + } + return opticalLinksBuilder_; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); @@ -23209,44 +24132,56 @@ public final class ContextOuterClass { com.google.protobuf.ByteString getNameBytes(); /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The enum numeric value on the wire for linkType. + */ + int getLinkTypeValue(); + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The linkType. + */ + context.ContextOuterClass.LinkTypeEnum getLinkType(); + + /** + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList(); /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ context.ContextOuterClass.EndPointId getLinkEndpointIds(int index); /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ int getLinkEndpointIdsCount(); /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList(); /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index); /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return Whether the attributes field is set. */ boolean hasAttributes(); /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return The attributes. */ context.ContextOuterClass.LinkAttributes getAttributes(); /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ context.ContextOuterClass.LinkAttributesOrBuilder getAttributesOrBuilder(); } @@ -23266,6 +24201,7 @@ public final class ContextOuterClass { private Link() { name_ = ""; + linkType_ = 0; linkEndpointIds_ = java.util.Collections.emptyList(); } @@ -23352,13 +24288,36 @@ public final class ContextOuterClass { } } - public static final int LINK_ENDPOINT_IDS_FIELD_NUMBER = 3; + public static final int LINK_TYPE_FIELD_NUMBER = 3; + + private int linkType_ = 0; + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The enum numeric value on the wire for linkType. + */ + @java.lang.Override + public int getLinkTypeValue() { + return linkType_; + } + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The linkType. + */ + @java.lang.Override + public context.ContextOuterClass.LinkTypeEnum getLinkType() { + context.ContextOuterClass.LinkTypeEnum result = context.ContextOuterClass.LinkTypeEnum.forNumber(linkType_); + return result == null ? context.ContextOuterClass.LinkTypeEnum.UNRECOGNIZED : result; + } + + public static final int LINK_ENDPOINT_IDS_FIELD_NUMBER = 4; @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.EndPointId> linkEndpointIds_; /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override public java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList() { @@ -23366,7 +24325,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override public java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList() { @@ -23374,7 +24333,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override public int getLinkEndpointIdsCount() { @@ -23382,7 +24341,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override public context.ContextOuterClass.EndPointId getLinkEndpointIds(int index) { @@ -23390,19 +24349,19 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override public context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index) { return linkEndpointIds_.get(index); } - public static final int ATTRIBUTES_FIELD_NUMBER = 4; + public static final int ATTRIBUTES_FIELD_NUMBER = 5; private context.ContextOuterClass.LinkAttributes attributes_; /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return Whether the attributes field is set. */ @java.lang.Override @@ -23411,7 +24370,7 @@ public final class ContextOuterClass { } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return The attributes. */ @java.lang.Override @@ -23420,7 +24379,7 @@ public final class ContextOuterClass { } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ @java.lang.Override public context.ContextOuterClass.LinkAttributesOrBuilder getAttributesOrBuilder() { @@ -23448,11 +24407,14 @@ public final class ContextOuterClass { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } + if (linkType_ != context.ContextOuterClass.LinkTypeEnum.LINKTYPE_UNKNOWN.getNumber()) { + output.writeEnum(3, linkType_); + } for (int i = 0; i < linkEndpointIds_.size(); i++) { - output.writeMessage(3, linkEndpointIds_.get(i)); + output.writeMessage(4, linkEndpointIds_.get(i)); } if (attributes_ != null) { - output.writeMessage(4, getAttributes()); + output.writeMessage(5, getAttributes()); } getUnknownFields().writeTo(output); } @@ -23469,11 +24431,14 @@ public final class ContextOuterClass { if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } + if (linkType_ != context.ContextOuterClass.LinkTypeEnum.LINKTYPE_UNKNOWN.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, linkType_); + } for (int i = 0; i < linkEndpointIds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, linkEndpointIds_.get(i)); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, linkEndpointIds_.get(i)); } if (attributes_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getAttributes()); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getAttributes()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -23497,6 +24462,8 @@ public final class ContextOuterClass { } if (!getName().equals(other.getName())) return false; + if (linkType_ != other.linkType_) + return false; if (!getLinkEndpointIdsList().equals(other.getLinkEndpointIdsList())) return false; if (hasAttributes() != other.hasAttributes()) @@ -23523,6 +24490,8 @@ public final class ContextOuterClass { } hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + LINK_TYPE_FIELD_NUMBER; + hash = (53 * hash) + linkType_; if (getLinkEndpointIdsCount() > 0) { hash = (37 * hash) + LINK_ENDPOINT_IDS_FIELD_NUMBER; hash = (53 * hash) + getLinkEndpointIdsList().hashCode(); @@ -23641,13 +24610,14 @@ public final class ContextOuterClass { linkIdBuilder_ = null; } name_ = ""; + linkType_ = 0; if (linkEndpointIdsBuilder_ == null) { linkEndpointIds_ = java.util.Collections.emptyList(); } else { linkEndpointIds_ = null; linkEndpointIdsBuilder_.clear(); } - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); attributes_ = null; if (attributesBuilder_ != null) { attributesBuilder_.dispose(); @@ -23688,9 +24658,9 @@ public final class ContextOuterClass { private void buildPartialRepeatedFields(context.ContextOuterClass.Link result) { if (linkEndpointIdsBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0)) { + if (((bitField0_ & 0x00000008) != 0)) { linkEndpointIds_ = java.util.Collections.unmodifiableList(linkEndpointIds_); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); } result.linkEndpointIds_ = linkEndpointIds_; } else { @@ -23706,7 +24676,10 @@ public final class ContextOuterClass { if (((from_bitField0_ & 0x00000002) != 0)) { result.name_ = name_; } - if (((from_bitField0_ & 0x00000008) != 0)) { + if (((from_bitField0_ & 0x00000004) != 0)) { + result.linkType_ = linkType_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { result.attributes_ = attributesBuilder_ == null ? attributes_ : attributesBuilder_.build(); } } @@ -23732,11 +24705,14 @@ public final class ContextOuterClass { bitField0_ |= 0x00000002; onChanged(); } + if (other.linkType_ != 0) { + setLinkTypeValue(other.getLinkTypeValue()); + } if (linkEndpointIdsBuilder_ == null) { if (!other.linkEndpointIds_.isEmpty()) { if (linkEndpointIds_.isEmpty()) { linkEndpointIds_ = other.linkEndpointIds_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensureLinkEndpointIdsIsMutable(); linkEndpointIds_.addAll(other.linkEndpointIds_); @@ -23749,7 +24725,7 @@ public final class ContextOuterClass { linkEndpointIdsBuilder_.dispose(); linkEndpointIdsBuilder_ = null; linkEndpointIds_ = other.linkEndpointIds_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); linkEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinkEndpointIdsFieldBuilder() : null; } else { linkEndpointIdsBuilder_.addAllMessages(other.linkEndpointIds_); @@ -23796,7 +24772,14 @@ public final class ContextOuterClass { break; } // case 18 - case 26: + case 24: + { + linkType_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 34: { context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); if (linkEndpointIdsBuilder_ == null) { @@ -23807,14 +24790,14 @@ public final class ContextOuterClass { } break; } - // case 26 - case 34: + // case 34 + case 42: { input.readMessage(getAttributesFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; break; } - // case 34 + // case 42 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -24031,19 +25014,78 @@ public final class ContextOuterClass { return this; } + private int linkType_ = 0; + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The enum numeric value on the wire for linkType. + */ + @java.lang.Override + public int getLinkTypeValue() { + return linkType_; + } + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @param value The enum numeric value on the wire for linkType to set. + * @return This builder for chaining. + */ + public Builder setLinkTypeValue(int value) { + linkType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The linkType. + */ + @java.lang.Override + public context.ContextOuterClass.LinkTypeEnum getLinkType() { + context.ContextOuterClass.LinkTypeEnum result = context.ContextOuterClass.LinkTypeEnum.forNumber(linkType_); + return result == null ? context.ContextOuterClass.LinkTypeEnum.UNRECOGNIZED : result; + } + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @param value The linkType to set. + * @return This builder for chaining. + */ + public Builder setLinkType(context.ContextOuterClass.LinkTypeEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + linkType_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return This builder for chaining. + */ + public Builder clearLinkType() { + bitField0_ = (bitField0_ & ~0x00000004); + linkType_ = 0; + onChanged(); + return this; + } + private java.util.List<context.ContextOuterClass.EndPointId> linkEndpointIds_ = java.util.Collections.emptyList(); private void ensureLinkEndpointIdsIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { + if (!((bitField0_ & 0x00000008) != 0)) { linkEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(linkEndpointIds_); - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000008; } } private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> linkEndpointIdsBuilder_; /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList() { if (linkEndpointIdsBuilder_ == null) { @@ -24054,7 +25096,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public int getLinkEndpointIdsCount() { if (linkEndpointIdsBuilder_ == null) { @@ -24065,7 +25107,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public context.ContextOuterClass.EndPointId getLinkEndpointIds(int index) { if (linkEndpointIdsBuilder_ == null) { @@ -24076,7 +25118,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder setLinkEndpointIds(int index, context.ContextOuterClass.EndPointId value) { if (linkEndpointIdsBuilder_ == null) { @@ -24093,7 +25135,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder setLinkEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { if (linkEndpointIdsBuilder_ == null) { @@ -24107,7 +25149,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder addLinkEndpointIds(context.ContextOuterClass.EndPointId value) { if (linkEndpointIdsBuilder_ == null) { @@ -24124,7 +25166,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder addLinkEndpointIds(int index, context.ContextOuterClass.EndPointId value) { if (linkEndpointIdsBuilder_ == null) { @@ -24141,7 +25183,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder addLinkEndpointIds(context.ContextOuterClass.EndPointId.Builder builderForValue) { if (linkEndpointIdsBuilder_ == null) { @@ -24155,7 +25197,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder addLinkEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { if (linkEndpointIdsBuilder_ == null) { @@ -24169,7 +25211,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder addAllLinkEndpointIds(java.lang.Iterable<? extends context.ContextOuterClass.EndPointId> values) { if (linkEndpointIdsBuilder_ == null) { @@ -24183,12 +25225,12 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder clearLinkEndpointIds() { if (linkEndpointIdsBuilder_ == null) { linkEndpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { linkEndpointIdsBuilder_.clear(); @@ -24197,7 +25239,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder removeLinkEndpointIds(int index) { if (linkEndpointIdsBuilder_ == null) { @@ -24211,14 +25253,14 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public context.ContextOuterClass.EndPointId.Builder getLinkEndpointIdsBuilder(int index) { return getLinkEndpointIdsFieldBuilder().getBuilder(index); } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index) { if (linkEndpointIdsBuilder_ == null) { @@ -24229,7 +25271,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList() { if (linkEndpointIdsBuilder_ != null) { @@ -24240,21 +25282,21 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public context.ContextOuterClass.EndPointId.Builder addLinkEndpointIdsBuilder() { return getLinkEndpointIdsFieldBuilder().addBuilder(context.ContextOuterClass.EndPointId.getDefaultInstance()); } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public context.ContextOuterClass.EndPointId.Builder addLinkEndpointIdsBuilder(int index) { return getLinkEndpointIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPointId.getDefaultInstance()); } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public java.util.List<context.ContextOuterClass.EndPointId.Builder> getLinkEndpointIdsBuilderList() { return getLinkEndpointIdsFieldBuilder().getBuilderList(); @@ -24262,7 +25304,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsFieldBuilder() { if (linkEndpointIdsBuilder_ == null) { - linkEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(linkEndpointIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + linkEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(linkEndpointIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); linkEndpointIds_ = null; } return linkEndpointIdsBuilder_; @@ -24273,15 +25315,15 @@ public final class ContextOuterClass { private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkAttributes, context.ContextOuterClass.LinkAttributes.Builder, context.ContextOuterClass.LinkAttributesOrBuilder> attributesBuilder_; /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return Whether the attributes field is set. */ public boolean hasAttributes() { - return ((bitField0_ & 0x00000008) != 0); + return ((bitField0_ & 0x00000010) != 0); } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return The attributes. */ public context.ContextOuterClass.LinkAttributes getAttributes() { @@ -24293,7 +25335,7 @@ public final class ContextOuterClass { } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public Builder setAttributes(context.ContextOuterClass.LinkAttributes value) { if (attributesBuilder_ == null) { @@ -24304,13 +25346,13 @@ public final class ContextOuterClass { } else { attributesBuilder_.setMessage(value); } - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; onChanged(); return this; } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public Builder setAttributes(context.ContextOuterClass.LinkAttributes.Builder builderForValue) { if (attributesBuilder_ == null) { @@ -24318,17 +25360,17 @@ public final class ContextOuterClass { } else { attributesBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; onChanged(); return this; } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public Builder mergeAttributes(context.ContextOuterClass.LinkAttributes value) { if (attributesBuilder_ == null) { - if (((bitField0_ & 0x00000008) != 0) && attributes_ != null && attributes_ != context.ContextOuterClass.LinkAttributes.getDefaultInstance()) { + if (((bitField0_ & 0x00000010) != 0) && attributes_ != null && attributes_ != context.ContextOuterClass.LinkAttributes.getDefaultInstance()) { getAttributesBuilder().mergeFrom(value); } else { attributes_ = value; @@ -24336,16 +25378,16 @@ public final class ContextOuterClass { } else { attributesBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; onChanged(); return this; } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public Builder clearAttributes() { - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000010); attributes_ = null; if (attributesBuilder_ != null) { attributesBuilder_.dispose(); @@ -24356,16 +25398,16 @@ public final class ContextOuterClass { } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public context.ContextOuterClass.LinkAttributes.Builder getAttributesBuilder() { - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000010; onChanged(); return getAttributesFieldBuilder().getBuilder(); } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public context.ContextOuterClass.LinkAttributesOrBuilder getAttributesOrBuilder() { if (attributesBuilder_ != null) { @@ -24376,7 +25418,7 @@ public final class ContextOuterClass { } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkAttributes, context.ContextOuterClass.LinkAttributes.Builder, context.ContextOuterClass.LinkAttributesOrBuilder> getAttributesFieldBuilder() { if (attributesBuilder_ == null) { @@ -51855,6 +52897,39 @@ public final class ContextOuterClass { * <code>.context.Location endpoint_location = 5;</code> */ context.ContextOuterClass.LocationOrBuilder getEndpointLocationOrBuilder(); + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + int getCapabilitiesCount(); + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + boolean containsCapabilities(java.lang.String key); + + /** + * Use {@link #getCapabilitiesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilities(); + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilitiesMap(); + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + /* nullable */ + com.google.protobuf.Any getCapabilitiesOrDefault(java.lang.String key, /* nullable */ + com.google.protobuf.Any defaultValue); + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + com.google.protobuf.Any getCapabilitiesOrThrow(java.lang.String key); } /** @@ -51886,6 +52961,17 @@ public final class ContextOuterClass { return context.ContextOuterClass.internal_static_context_EndPoint_descriptor; } + @SuppressWarnings({ "rawtypes" }) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch(number) { + case 6: + return internalGetCapabilities(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return context.ContextOuterClass.internal_static_context_EndPoint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPoint.class, context.ContextOuterClass.EndPoint.Builder.class); @@ -52089,6 +53175,84 @@ public final class ContextOuterClass { return endpointLocation_ == null ? context.ContextOuterClass.Location.getDefaultInstance() : endpointLocation_; } + public static final int CAPABILITIES_FIELD_NUMBER = 6; + + private static final class CapabilitiesDefaultEntryHolder { + + static final com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.Any> defaultEntry = com.google.protobuf.MapEntry.<java.lang.String, com.google.protobuf.Any>newDefaultInstance(context.ContextOuterClass.internal_static_context_EndPoint_CapabilitiesEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.MESSAGE, com.google.protobuf.Any.getDefaultInstance()); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.Any> capabilities_; + + private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.Any> internalGetCapabilities() { + if (capabilities_ == null) { + return com.google.protobuf.MapField.emptyMapField(CapabilitiesDefaultEntryHolder.defaultEntry); + } + return capabilities_; + } + + public int getCapabilitiesCount() { + return internalGetCapabilities().getMap().size(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public boolean containsCapabilities(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetCapabilities().getMap().containsKey(key); + } + + /** + * Use {@link #getCapabilitiesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilities() { + return getCapabilitiesMap(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilitiesMap() { + return internalGetCapabilities().getMap(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public /* nullable */ + com.google.protobuf.Any getCapabilitiesOrDefault(java.lang.String key, /* nullable */ + com.google.protobuf.Any defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, com.google.protobuf.Any> map = internalGetCapabilities().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public com.google.protobuf.Any getCapabilitiesOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, com.google.protobuf.Any> map = internalGetCapabilities().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -52124,6 +53288,7 @@ public final class ContextOuterClass { if (endpointLocation_ != null) { output.writeMessage(5, getEndpointLocation()); } + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(output, internalGetCapabilities(), CapabilitiesDefaultEntryHolder.defaultEntry, 6); getUnknownFields().writeTo(output); } @@ -52157,6 +53322,10 @@ public final class ContextOuterClass { if (endpointLocation_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getEndpointLocation()); } + for (java.util.Map.Entry<java.lang.String, com.google.protobuf.Any> entry : internalGetCapabilities().getMap().entrySet()) { + com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.Any> capabilities__ = CapabilitiesDefaultEntryHolder.defaultEntry.newBuilderForType().setKey(entry.getKey()).setValue(entry.getValue()).build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, capabilities__); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -52189,6 +53358,8 @@ public final class ContextOuterClass { if (!getEndpointLocation().equals(other.getEndpointLocation())) return false; } + if (!internalGetCapabilities().equals(other.internalGetCapabilities())) + return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; @@ -52217,6 +53388,10 @@ public final class ContextOuterClass { hash = (37 * hash) + ENDPOINT_LOCATION_FIELD_NUMBER; hash = (53 * hash) + getEndpointLocation().hashCode(); } + if (!internalGetCapabilities().getMap().isEmpty()) { + hash = (37 * hash) + CAPABILITIES_FIELD_NUMBER; + hash = (53 * hash) + internalGetCapabilities().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -52304,6 +53479,26 @@ public final class ContextOuterClass { return context.ContextOuterClass.internal_static_context_EndPoint_descriptor; } + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch(number) { + case 6: + return internalGetCapabilities(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + switch(number) { + case 6: + return internalGetMutableCapabilities(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return context.ContextOuterClass.internal_static_context_EndPoint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPoint.class, context.ContextOuterClass.EndPoint.Builder.class); @@ -52335,6 +53530,7 @@ public final class ContextOuterClass { endpointLocationBuilder_.dispose(); endpointLocationBuilder_ = null; } + internalGetMutableCapabilities().clear(); return this; } @@ -52390,6 +53586,10 @@ public final class ContextOuterClass { if (((from_bitField0_ & 0x00000010) != 0)) { result.endpointLocation_ = endpointLocationBuilder_ == null ? endpointLocation_ : endpointLocationBuilder_.build(); } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.capabilities_ = internalGetCapabilities(); + result.capabilities_.makeImmutable(); + } } @java.lang.Override @@ -52431,6 +53631,8 @@ public final class ContextOuterClass { if (other.hasEndpointLocation()) { mergeEndpointLocation(other.getEndpointLocation()); } + internalGetMutableCapabilities().mergeFrom(other.internalGetCapabilities()); + bitField0_ |= 0x00000020; this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -52503,6 +53705,14 @@ public final class ContextOuterClass { break; } // case 42 + case 50: + { + com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.Any> capabilities__ = input.readMessage(CapabilitiesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableCapabilities().getMutableMap().put(capabilities__.getKey(), capabilities__.getValue()); + bitField0_ |= 0x00000020; + break; + } + // case 50 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -53058,6 +54268,138 @@ public final class ContextOuterClass { return endpointLocationBuilder_; } + private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.Any> capabilities_; + + private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.Any> internalGetCapabilities() { + if (capabilities_ == null) { + return com.google.protobuf.MapField.emptyMapField(CapabilitiesDefaultEntryHolder.defaultEntry); + } + return capabilities_; + } + + private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.Any> internalGetMutableCapabilities() { + if (capabilities_ == null) { + capabilities_ = com.google.protobuf.MapField.newMapField(CapabilitiesDefaultEntryHolder.defaultEntry); + } + if (!capabilities_.isMutable()) { + capabilities_ = capabilities_.copy(); + } + bitField0_ |= 0x00000020; + onChanged(); + return capabilities_; + } + + public int getCapabilitiesCount() { + return internalGetCapabilities().getMap().size(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public boolean containsCapabilities(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetCapabilities().getMap().containsKey(key); + } + + /** + * Use {@link #getCapabilitiesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilities() { + return getCapabilitiesMap(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilitiesMap() { + return internalGetCapabilities().getMap(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public /* nullable */ + com.google.protobuf.Any getCapabilitiesOrDefault(java.lang.String key, /* nullable */ + com.google.protobuf.Any defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, com.google.protobuf.Any> map = internalGetCapabilities().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public com.google.protobuf.Any getCapabilitiesOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, com.google.protobuf.Any> map = internalGetCapabilities().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearCapabilities() { + bitField0_ = (bitField0_ & ~0x00000020); + internalGetMutableCapabilities().getMutableMap().clear(); + return this; + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + public Builder removeCapabilities(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableCapabilities().getMutableMap().remove(key); + return this; + } + + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map<java.lang.String, com.google.protobuf.Any> getMutableCapabilities() { + bitField0_ |= 0x00000020; + return internalGetMutableCapabilities().getMutableMap(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + public Builder putCapabilities(java.lang.String key, com.google.protobuf.Any value) { + if (key == null) { + throw new NullPointerException("map key"); + } + if (value == null) { + throw new NullPointerException("map value"); + } + internalGetMutableCapabilities().getMutableMap().put(key, value); + bitField0_ |= 0x00000020; + return this; + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + public Builder putAllCapabilities(java.util.Map<java.lang.String, com.google.protobuf.Any> values) { + internalGetMutableCapabilities().getMutableMap().putAll(values); + bitField0_ |= 0x00000020; + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); @@ -58566,10 +59908,10 @@ public final class ContextOuterClass { com.google.protobuf.MessageOrBuilder { /** - * <code>float start_timestamp = 1;</code> + * <code>double start_timestamp = 1;</code> * @return The startTimestamp. */ - float getStartTimestamp(); + double getStartTimestamp(); /** * <code>float duration_days = 2;</code> @@ -58611,14 +59953,14 @@ public final class ContextOuterClass { public static final int START_TIMESTAMP_FIELD_NUMBER = 1; - private float startTimestamp_ = 0F; + private double startTimestamp_ = 0D; /** - * <code>float start_timestamp = 1;</code> + * <code>double start_timestamp = 1;</code> * @return The startTimestamp. */ @java.lang.Override - public float getStartTimestamp() { + public double getStartTimestamp() { return startTimestamp_; } @@ -58650,8 +59992,8 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (java.lang.Float.floatToRawIntBits(startTimestamp_) != 0) { - output.writeFloat(1, startTimestamp_); + if (java.lang.Double.doubleToRawLongBits(startTimestamp_) != 0) { + output.writeDouble(1, startTimestamp_); } if (java.lang.Float.floatToRawIntBits(durationDays_) != 0) { output.writeFloat(2, durationDays_); @@ -58665,8 +60007,8 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (java.lang.Float.floatToRawIntBits(startTimestamp_) != 0) { - size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, startTimestamp_); + if (java.lang.Double.doubleToRawLongBits(startTimestamp_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(1, startTimestamp_); } if (java.lang.Float.floatToRawIntBits(durationDays_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(2, durationDays_); @@ -58685,7 +60027,7 @@ public final class ContextOuterClass { return super.equals(obj); } context.ContextOuterClass.Constraint_Schedule other = (context.ContextOuterClass.Constraint_Schedule) obj; - if (java.lang.Float.floatToIntBits(getStartTimestamp()) != java.lang.Float.floatToIntBits(other.getStartTimestamp())) + if (java.lang.Double.doubleToLongBits(getStartTimestamp()) != java.lang.Double.doubleToLongBits(other.getStartTimestamp())) return false; if (java.lang.Float.floatToIntBits(getDurationDays()) != java.lang.Float.floatToIntBits(other.getDurationDays())) return false; @@ -58702,7 +60044,7 @@ public final class ContextOuterClass { int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + START_TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + java.lang.Float.floatToIntBits(getStartTimestamp()); + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(java.lang.Double.doubleToLongBits(getStartTimestamp())); hash = (37 * hash) + DURATION_DAYS_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits(getDurationDays()); hash = (29 * hash) + getUnknownFields().hashCode(); @@ -58809,7 +60151,7 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - startTimestamp_ = 0F; + startTimestamp_ = 0D; durationDays_ = 0F; return this; } @@ -58866,7 +60208,7 @@ public final class ContextOuterClass { public Builder mergeFrom(context.ContextOuterClass.Constraint_Schedule other) { if (other == context.ContextOuterClass.Constraint_Schedule.getDefaultInstance()) return this; - if (other.getStartTimestamp() != 0F) { + if (other.getStartTimestamp() != 0D) { setStartTimestamp(other.getStartTimestamp()); } if (other.getDurationDays() != 0F) { @@ -58895,13 +60237,13 @@ public final class ContextOuterClass { case 0: done = true; break; - case 13: + case 9: { - startTimestamp_ = input.readFloat(); + startTimestamp_ = input.readDouble(); bitField0_ |= 0x00000001; break; } - // case 13 + // case 9 case 21: { durationDays_ = input.readFloat(); @@ -58932,23 +60274,23 @@ public final class ContextOuterClass { private int bitField0_; - private float startTimestamp_; + private double startTimestamp_; /** - * <code>float start_timestamp = 1;</code> + * <code>double start_timestamp = 1;</code> * @return The startTimestamp. */ @java.lang.Override - public float getStartTimestamp() { + public double getStartTimestamp() { return startTimestamp_; } /** - * <code>float start_timestamp = 1;</code> + * <code>double start_timestamp = 1;</code> * @param value The startTimestamp to set. * @return This builder for chaining. */ - public Builder setStartTimestamp(float value) { + public Builder setStartTimestamp(double value) { startTimestamp_ = value; bitField0_ |= 0x00000001; onChanged(); @@ -58956,12 +60298,12 @@ public final class ContextOuterClass { } /** - * <code>float start_timestamp = 1;</code> + * <code>double start_timestamp = 1;</code> * @return This builder for chaining. */ public Builder clearStartTimestamp() { bitField0_ = (bitField0_ & ~0x00000001); - startTimestamp_ = 0F; + startTimestamp_ = 0D; onChanged(); return this; } @@ -59588,6 +60930,42 @@ public final class ContextOuterClass { */ context.ContextOuterClass.GPS_PositionOrBuilder getGpsPositionOrBuilder(); + /** + * <code>string interface = 3;</code> + * @return Whether the interface field is set. + */ + boolean hasInterface(); + + /** + * <code>string interface = 3;</code> + * @return The interface. + */ + java.lang.String getInterface(); + + /** + * <code>string interface = 3;</code> + * @return The bytes for interface. + */ + com.google.protobuf.ByteString getInterfaceBytes(); + + /** + * <code>string circuit_pack = 4;</code> + * @return Whether the circuitPack field is set. + */ + boolean hasCircuitPack(); + + /** + * <code>string circuit_pack = 4;</code> + * @return The circuitPack. + */ + java.lang.String getCircuitPack(); + + /** + * <code>string circuit_pack = 4;</code> + * @return The bytes for circuitPack. + */ + com.google.protobuf.ByteString getCircuitPackBytes(); + context.ContextOuterClass.Location.LocationCase getLocationCase(); } @@ -59629,7 +61007,7 @@ public final class ContextOuterClass { public enum LocationCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { - REGION(1), GPS_POSITION(2), LOCATION_NOT_SET(0); + REGION(1), GPS_POSITION(2), INTERFACE(3), CIRCUIT_PACK(4), LOCATION_NOT_SET(0); private final int value; @@ -59653,6 +61031,10 @@ public final class ContextOuterClass { return REGION; case 2: return GPS_POSITION; + case 3: + return INTERFACE; + case 4: + return CIRCUIT_PACK; case 0: return LOCATION_NOT_SET; default: @@ -59754,6 +61136,108 @@ public final class ContextOuterClass { return context.ContextOuterClass.GPS_Position.getDefaultInstance(); } + public static final int INTERFACE_FIELD_NUMBER = 3; + + /** + * <code>string interface = 3;</code> + * @return Whether the interface field is set. + */ + public boolean hasInterface() { + return locationCase_ == 3; + } + + /** + * <code>string interface = 3;</code> + * @return The interface. + */ + public java.lang.String getInterface() { + java.lang.Object ref = ""; + if (locationCase_ == 3) { + ref = location_; + } + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (locationCase_ == 3) { + location_ = s; + } + return s; + } + } + + /** + * <code>string interface = 3;</code> + * @return The bytes for interface. + */ + public com.google.protobuf.ByteString getInterfaceBytes() { + java.lang.Object ref = ""; + if (locationCase_ == 3) { + ref = location_; + } + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + if (locationCase_ == 3) { + location_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CIRCUIT_PACK_FIELD_NUMBER = 4; + + /** + * <code>string circuit_pack = 4;</code> + * @return Whether the circuitPack field is set. + */ + public boolean hasCircuitPack() { + return locationCase_ == 4; + } + + /** + * <code>string circuit_pack = 4;</code> + * @return The circuitPack. + */ + public java.lang.String getCircuitPack() { + java.lang.Object ref = ""; + if (locationCase_ == 4) { + ref = location_; + } + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (locationCase_ == 4) { + location_ = s; + } + return s; + } + } + + /** + * <code>string circuit_pack = 4;</code> + * @return The bytes for circuitPack. + */ + public com.google.protobuf.ByteString getCircuitPackBytes() { + java.lang.Object ref = ""; + if (locationCase_ == 4) { + ref = location_; + } + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + if (locationCase_ == 4) { + location_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -59775,6 +61259,12 @@ public final class ContextOuterClass { if (locationCase_ == 2) { output.writeMessage(2, (context.ContextOuterClass.GPS_Position) location_); } + if (locationCase_ == 3) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, location_); + } + if (locationCase_ == 4) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, location_); + } getUnknownFields().writeTo(output); } @@ -59790,6 +61280,12 @@ public final class ContextOuterClass { if (locationCase_ == 2) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, (context.ContextOuterClass.GPS_Position) location_); } + if (locationCase_ == 3) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, location_); + } + if (locationCase_ == 4) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, location_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -59815,6 +61311,14 @@ public final class ContextOuterClass { if (!getGpsPosition().equals(other.getGpsPosition())) return false; break; + case 3: + if (!getInterface().equals(other.getInterface())) + return false; + break; + case 4: + if (!getCircuitPack().equals(other.getCircuitPack())) + return false; + break; case 0: default: } @@ -59839,6 +61343,14 @@ public final class ContextOuterClass { hash = (37 * hash) + GPS_POSITION_FIELD_NUMBER; hash = (53 * hash) + getGpsPosition().hashCode(); break; + case 3: + hash = (37 * hash) + INTERFACE_FIELD_NUMBER; + hash = (53 * hash) + getInterface().hashCode(); + break; + case 4: + hash = (37 * hash) + CIRCUIT_PACK_FIELD_NUMBER; + hash = (53 * hash) + getCircuitPack().hashCode(); + break; case 0: default: } @@ -60022,6 +61534,20 @@ public final class ContextOuterClass { mergeGpsPosition(other.getGpsPosition()); break; } + case INTERFACE: + { + locationCase_ = 3; + location_ = other.location_; + onChanged(); + break; + } + case CIRCUIT_PACK: + { + locationCase_ = 4; + location_ = other.location_; + onChanged(); + break; + } case LOCATION_NOT_SET: { break; @@ -60065,6 +61591,22 @@ public final class ContextOuterClass { break; } // case 18 + case 26: + { + java.lang.String s = input.readStringRequireUtf8(); + locationCase_ = 3; + location_ = s; + break; + } + // case 26 + case 34: + { + java.lang.String s = input.readStringRequireUtf8(); + locationCase_ = 4; + location_ = s; + break; + } + // case 34 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -60340,6 +61882,198 @@ public final class ContextOuterClass { return gpsPositionBuilder_; } + /** + * <code>string interface = 3;</code> + * @return Whether the interface field is set. + */ + @java.lang.Override + public boolean hasInterface() { + return locationCase_ == 3; + } + + /** + * <code>string interface = 3;</code> + * @return The interface. + */ + @java.lang.Override + public java.lang.String getInterface() { + java.lang.Object ref = ""; + if (locationCase_ == 3) { + ref = location_; + } + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (locationCase_ == 3) { + location_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * <code>string interface = 3;</code> + * @return The bytes for interface. + */ + @java.lang.Override + public com.google.protobuf.ByteString getInterfaceBytes() { + java.lang.Object ref = ""; + if (locationCase_ == 3) { + ref = location_; + } + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + if (locationCase_ == 3) { + location_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * <code>string interface = 3;</code> + * @param value The interface to set. + * @return This builder for chaining. + */ + public Builder setInterface(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + locationCase_ = 3; + location_ = value; + onChanged(); + return this; + } + + /** + * <code>string interface = 3;</code> + * @return This builder for chaining. + */ + public Builder clearInterface() { + if (locationCase_ == 3) { + locationCase_ = 0; + location_ = null; + onChanged(); + } + return this; + } + + /** + * <code>string interface = 3;</code> + * @param value The bytes for interface to set. + * @return This builder for chaining. + */ + public Builder setInterfaceBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + locationCase_ = 3; + location_ = value; + onChanged(); + return this; + } + + /** + * <code>string circuit_pack = 4;</code> + * @return Whether the circuitPack field is set. + */ + @java.lang.Override + public boolean hasCircuitPack() { + return locationCase_ == 4; + } + + /** + * <code>string circuit_pack = 4;</code> + * @return The circuitPack. + */ + @java.lang.Override + public java.lang.String getCircuitPack() { + java.lang.Object ref = ""; + if (locationCase_ == 4) { + ref = location_; + } + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (locationCase_ == 4) { + location_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * <code>string circuit_pack = 4;</code> + * @return The bytes for circuitPack. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCircuitPackBytes() { + java.lang.Object ref = ""; + if (locationCase_ == 4) { + ref = location_; + } + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + if (locationCase_ == 4) { + location_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * <code>string circuit_pack = 4;</code> + * @param value The circuitPack to set. + * @return This builder for chaining. + */ + public Builder setCircuitPack(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + locationCase_ = 4; + location_ = value; + onChanged(); + return this; + } + + /** + * <code>string circuit_pack = 4;</code> + * @return This builder for chaining. + */ + public Builder clearCircuitPack() { + if (locationCase_ == 4) { + locationCase_ = 0; + location_ = null; + onChanged(); + } + return this; + } + + /** + * <code>string circuit_pack = 4;</code> + * @param value The bytes for circuitPack to set. + * @return This builder for chaining. + */ + public Builder setCircuitPackBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + locationCase_ = 4; + location_ = value; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); @@ -65361,606 +67095,676 @@ public final class ContextOuterClass { } } - public interface ConstraintOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Constraint) + public interface QoSProfileIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.QoSProfileId) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The enum numeric value on the wire for action. - */ - int getActionValue(); - - /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The action. - */ - context.ContextOuterClass.ConstraintActionEnum getAction(); - - /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return Whether the custom field is set. - */ - boolean hasCustom(); - - /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return The custom. - */ - context.ContextOuterClass.Constraint_Custom getCustom(); - - /** - * <code>.context.Constraint_Custom custom = 2;</code> - */ - context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder(); - - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return Whether the schedule field is set. - */ - boolean hasSchedule(); - - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return The schedule. - */ - context.ContextOuterClass.Constraint_Schedule getSchedule(); - - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - */ - context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder(); - - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return Whether the endpointLocation field is set. - */ - boolean hasEndpointLocation(); - - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return The endpointLocation. - */ - context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation(); - - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder(); - - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return Whether the endpointPriority field is set. - */ - boolean hasEndpointPriority(); - - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return The endpointPriority. - */ - context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority(); - - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - */ - context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder(); - - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return Whether the slaCapacity field is set. - */ - boolean hasSlaCapacity(); - - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return The slaCapacity. - */ - context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity(); - - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - */ - context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder(); - - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return Whether the slaLatency field is set. - */ - boolean hasSlaLatency(); - - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return The slaLatency. - */ - context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency(); - - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - */ - context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder(); - - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return Whether the slaAvailability field is set. - */ - boolean hasSlaAvailability(); - - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return The slaAvailability. - */ - context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability(); - - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder(); - - /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return Whether the slaIsolation field is set. - */ - boolean hasSlaIsolation(); - - /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return The slaIsolation. - */ - context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation(); - - /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - */ - context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder(); - - /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return Whether the exclusions field is set. + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. */ - boolean hasExclusions(); + boolean hasQosProfileId(); /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return The exclusions. + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return The qosProfileId. */ - context.ContextOuterClass.Constraint_Exclusions getExclusions(); + context.ContextOuterClass.Uuid getQosProfileId(); /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>.context.Uuid qos_profile_id = 1;</code> */ - context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder(); - - context.ContextOuterClass.Constraint.ConstraintCase getConstraintCase(); + context.ContextOuterClass.UuidOrBuilder getQosProfileIdOrBuilder(); } /** - * Protobuf type {@code context.Constraint} + * Protobuf type {@code context.QoSProfileId} */ - public static final class Constraint extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Constraint) - ConstraintOrBuilder { + public static final class QoSProfileId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.QoSProfileId) + QoSProfileIdOrBuilder { private static final long serialVersionUID = 0L; - // Use Constraint.newBuilder() to construct. - private Constraint(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use QoSProfileId.newBuilder() to construct. + private QoSProfileId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private Constraint() { - action_ = 0; + private QoSProfileId() { } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new Constraint(); + return new QoSProfileId(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + return context.ContextOuterClass.internal_static_context_QoSProfileId_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Constraint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint.class, context.ContextOuterClass.Constraint.Builder.class); - } - - private int constraintCase_ = 0; - - @SuppressWarnings("serial") - private java.lang.Object constraint_; - - public enum ConstraintCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { - - CUSTOM(2), - SCHEDULE(3), - ENDPOINT_LOCATION(4), - ENDPOINT_PRIORITY(5), - SLA_CAPACITY(6), - SLA_LATENCY(7), - SLA_AVAILABILITY(8), - SLA_ISOLATION(9), - EXCLUSIONS(10), - CONSTRAINT_NOT_SET(0); - - private final int value; - - private ConstraintCase(int value) { - this.value = value; - } - - /** - * @param value The number of the enum to look for. - * @return The enum associated with the given number. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static ConstraintCase valueOf(int value) { - return forNumber(value); - } - - public static ConstraintCase forNumber(int value) { - switch(value) { - case 2: - return CUSTOM; - case 3: - return SCHEDULE; - case 4: - return ENDPOINT_LOCATION; - case 5: - return ENDPOINT_PRIORITY; - case 6: - return SLA_CAPACITY; - case 7: - return SLA_LATENCY; - case 8: - return SLA_AVAILABILITY; - case 9: - return SLA_ISOLATION; - case 10: - return EXCLUSIONS; - case 0: - return CONSTRAINT_NOT_SET; - default: - return null; - } - } - - public int getNumber() { - return this.value; - } - } - - public ConstraintCase getConstraintCase() { - return ConstraintCase.forNumber(constraintCase_); + return context.ContextOuterClass.internal_static_context_QoSProfileId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.QoSProfileId.class, context.ContextOuterClass.QoSProfileId.Builder.class); } - public static final int ACTION_FIELD_NUMBER = 1; + public static final int QOS_PROFILE_ID_FIELD_NUMBER = 1; - private int action_ = 0; + private context.ContextOuterClass.Uuid qosProfileId_; /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The enum numeric value on the wire for action. + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. */ @java.lang.Override - public int getActionValue() { - return action_; + public boolean hasQosProfileId() { + return qosProfileId_ != null; } /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The action. + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return The qosProfileId. */ @java.lang.Override - public context.ContextOuterClass.ConstraintActionEnum getAction() { - context.ContextOuterClass.ConstraintActionEnum result = context.ContextOuterClass.ConstraintActionEnum.forNumber(action_); - return result == null ? context.ContextOuterClass.ConstraintActionEnum.UNRECOGNIZED : result; + public context.ContextOuterClass.Uuid getQosProfileId() { + return qosProfileId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : qosProfileId_; } - public static final int CUSTOM_FIELD_NUMBER = 2; - /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return Whether the custom field is set. + * <code>.context.Uuid qos_profile_id = 1;</code> */ @java.lang.Override - public boolean hasCustom() { - return constraintCase_ == 2; + public context.ContextOuterClass.UuidOrBuilder getQosProfileIdOrBuilder() { + return qosProfileId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : qosProfileId_; } - /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return The custom. - */ + private byte memoizedIsInitialized = -1; + @java.lang.Override - public context.ContextOuterClass.Constraint_Custom getCustom() { - if (constraintCase_ == 2) { - return (context.ContextOuterClass.Constraint_Custom) constraint_; - } - return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; } - /** - * <code>.context.Constraint_Custom custom = 2;</code> - */ @java.lang.Override - public context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder() { - if (constraintCase_ == 2) { - return (context.ContextOuterClass.Constraint_Custom) constraint_; + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (qosProfileId_ != null) { + output.writeMessage(1, getQosProfileId()); } - return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + getUnknownFields().writeTo(output); } - public static final int SCHEDULE_FIELD_NUMBER = 3; - - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return Whether the schedule field is set. - */ @java.lang.Override - public boolean hasSchedule() { - return constraintCase_ == 3; + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (qosProfileId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getQosProfileId()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; } - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return The schedule. - */ @java.lang.Override - public context.ContextOuterClass.Constraint_Schedule getSchedule() { - if (constraintCase_ == 3) { - return (context.ContextOuterClass.Constraint_Schedule) constraint_; + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; } - return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + if (!(obj instanceof context.ContextOuterClass.QoSProfileId)) { + return super.equals(obj); + } + context.ContextOuterClass.QoSProfileId other = (context.ContextOuterClass.QoSProfileId) obj; + if (hasQosProfileId() != other.hasQosProfileId()) + return false; + if (hasQosProfileId()) { + if (!getQosProfileId().equals(other.getQosProfileId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; } - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - */ @java.lang.Override - public context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder() { - if (constraintCase_ == 3) { - return (context.ContextOuterClass.Constraint_Schedule) constraint_; + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; } - return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasQosProfileId()) { + hash = (37 * hash) + QOS_PROFILE_ID_FIELD_NUMBER; + hash = (53 * hash) + getQosProfileId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; } - public static final int ENDPOINT_LOCATION_FIELD_NUMBER = 4; - - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return Whether the endpointLocation field is set. - */ - @java.lang.Override - public boolean hasEndpointLocation() { - return constraintCase_ == 4; + public static context.ContextOuterClass.QoSProfileId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return The endpointLocation. - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation() { - if (constraintCase_ == 4) { - return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; - } - return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder() { - if (constraintCase_ == 4) { - return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; - } - return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - public static final int ENDPOINT_PRIORITY_FIELD_NUMBER = 5; - - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return Whether the endpointPriority field is set. - */ - @java.lang.Override - public boolean hasEndpointPriority() { - return constraintCase_ == 5; + public static context.ContextOuterClass.QoSProfileId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return The endpointPriority. - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority() { - if (constraintCase_ == 5) { - return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; - } - return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder() { - if (constraintCase_ == 5) { - return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; - } - return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - public static final int SLA_CAPACITY_FIELD_NUMBER = 6; + public static context.ContextOuterClass.QoSProfileId parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return Whether the slaCapacity field is set. - */ - @java.lang.Override - public boolean hasSlaCapacity() { - return constraintCase_ == 6; + public static context.ContextOuterClass.QoSProfileId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return The slaCapacity. - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity() { - if (constraintCase_ == 6) { - return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder() { - if (constraintCase_ == 6) { - return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static final int SLA_LATENCY_FIELD_NUMBER = 7; + public static context.ContextOuterClass.QoSProfileId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return Whether the slaLatency field is set. - */ - @java.lang.Override - public boolean hasSlaLatency() { - return constraintCase_ == 7; + public static context.ContextOuterClass.QoSProfileId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return The slaLatency. - */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency() { - if (constraintCase_ == 7) { - return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + public Builder newBuilderForType() { + return newBuilder(); } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder() { - if (constraintCase_ == 7) { - return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); } - public static final int SLA_AVAILABILITY_FIELD_NUMBER = 8; + public static Builder newBuilder(context.ContextOuterClass.QoSProfileId prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return Whether the slaAvailability field is set. - */ @java.lang.Override - public boolean hasSlaAvailability() { - return constraintCase_ == 8; + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return The slaAvailability. - */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability() { - if (constraintCase_ == 8) { - return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; } /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * Protobuf type {@code context.QoSProfileId} */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder() { - if (constraintCase_ == 8) { - return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.QoSProfileId) + context.ContextOuterClass.QoSProfileIdOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_QoSProfileId_descriptor; } - return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); - } - public static final int SLA_ISOLATION_FIELD_NUMBER = 9; + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_QoSProfileId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.QoSProfileId.class, context.ContextOuterClass.QoSProfileId.Builder.class); + } - /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return Whether the slaIsolation field is set. - */ - @java.lang.Override - public boolean hasSlaIsolation() { - return constraintCase_ == 9; - } + // Construct using context.ContextOuterClass.QoSProfileId.newBuilder() + private Builder() { + } - /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return The slaIsolation. + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + qosProfileId_ = null; + if (qosProfileIdBuilder_ != null) { + qosProfileIdBuilder_.dispose(); + qosProfileIdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_QoSProfileId_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.QoSProfileId getDefaultInstanceForType() { + return context.ContextOuterClass.QoSProfileId.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.QoSProfileId build() { + context.ContextOuterClass.QoSProfileId result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.QoSProfileId buildPartial() { + context.ContextOuterClass.QoSProfileId result = new context.ContextOuterClass.QoSProfileId(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.QoSProfileId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.qosProfileId_ = qosProfileIdBuilder_ == null ? qosProfileId_ : qosProfileIdBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.QoSProfileId) { + return mergeFrom((context.ContextOuterClass.QoSProfileId) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.QoSProfileId other) { + if (other == context.ContextOuterClass.QoSProfileId.getDefaultInstance()) + return this; + if (other.hasQosProfileId()) { + mergeQosProfileId(other.getQosProfileId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getQosProfileIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Uuid qosProfileId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> qosProfileIdBuilder_; + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. + */ + public boolean hasQosProfileId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return The qosProfileId. + */ + public context.ContextOuterClass.Uuid getQosProfileId() { + if (qosProfileIdBuilder_ == null) { + return qosProfileId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : qosProfileId_; + } else { + return qosProfileIdBuilder_.getMessage(); + } + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public Builder setQosProfileId(context.ContextOuterClass.Uuid value) { + if (qosProfileIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + qosProfileId_ = value; + } else { + qosProfileIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public Builder setQosProfileId(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (qosProfileIdBuilder_ == null) { + qosProfileId_ = builderForValue.build(); + } else { + qosProfileIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public Builder mergeQosProfileId(context.ContextOuterClass.Uuid value) { + if (qosProfileIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && qosProfileId_ != null && qosProfileId_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getQosProfileIdBuilder().mergeFrom(value); + } else { + qosProfileId_ = value; + } + } else { + qosProfileIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public Builder clearQosProfileId() { + bitField0_ = (bitField0_ & ~0x00000001); + qosProfileId_ = null; + if (qosProfileIdBuilder_ != null) { + qosProfileIdBuilder_.dispose(); + qosProfileIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public context.ContextOuterClass.Uuid.Builder getQosProfileIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getQosProfileIdFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public context.ContextOuterClass.UuidOrBuilder getQosProfileIdOrBuilder() { + if (qosProfileIdBuilder_ != null) { + return qosProfileIdBuilder_.getMessageOrBuilder(); + } else { + return qosProfileId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : qosProfileId_; + } + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getQosProfileIdFieldBuilder() { + if (qosProfileIdBuilder_ == null) { + qosProfileIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getQosProfileId(), getParentForChildren(), isClean()); + qosProfileId_ = null; + } + return qosProfileIdBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.QoSProfileId) + } + + // @@protoc_insertion_point(class_scope:context.QoSProfileId) + private static final context.ContextOuterClass.QoSProfileId DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.QoSProfileId(); + } + + public static context.ContextOuterClass.QoSProfileId getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<QoSProfileId> PARSER = new com.google.protobuf.AbstractParser<QoSProfileId>() { + + @java.lang.Override + public QoSProfileId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser<QoSProfileId> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<QoSProfileId> getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.QoSProfileId getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface Constraint_QoSProfileOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Constraint_QoSProfile) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. + */ + boolean hasQosProfileId(); + + /** + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return The qosProfileId. + */ + context.ContextOuterClass.QoSProfileId getQosProfileId(); + + /** + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + */ + context.ContextOuterClass.QoSProfileIdOrBuilder getQosProfileIdOrBuilder(); + + /** + * <code>string qos_profile_name = 2;</code> + * @return The qosProfileName. + */ + java.lang.String getQosProfileName(); + + /** + * <code>string qos_profile_name = 2;</code> + * @return The bytes for qosProfileName. */ + com.google.protobuf.ByteString getQosProfileNameBytes(); + } + + /** + * Protobuf type {@code context.Constraint_QoSProfile} + */ + public static final class Constraint_QoSProfile extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Constraint_QoSProfile) + Constraint_QoSProfileOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Constraint_QoSProfile.newBuilder() to construct. + private Constraint_QoSProfile(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + + private Constraint_QoSProfile() { + qosProfileName_ = ""; + } + @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation() { - if (constraintCase_ == 9) { - return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Constraint_QoSProfile(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Constraint_QoSProfile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Constraint_QoSProfile_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint_QoSProfile.class, context.ContextOuterClass.Constraint_QoSProfile.Builder.class); } + public static final int QOS_PROFILE_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.QoSProfileId qosProfileId_; + /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder() { - if (constraintCase_ == 9) { - return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + public boolean hasQosProfileId() { + return qosProfileId_ != null; } - public static final int EXCLUSIONS_FIELD_NUMBER = 10; + /** + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return The qosProfileId. + */ + @java.lang.Override + public context.ContextOuterClass.QoSProfileId getQosProfileId() { + return qosProfileId_ == null ? context.ContextOuterClass.QoSProfileId.getDefaultInstance() : qosProfileId_; + } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return Whether the exclusions field is set. + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ @java.lang.Override - public boolean hasExclusions() { - return constraintCase_ == 10; + public context.ContextOuterClass.QoSProfileIdOrBuilder getQosProfileIdOrBuilder() { + return qosProfileId_ == null ? context.ContextOuterClass.QoSProfileId.getDefaultInstance() : qosProfileId_; } + public static final int QOS_PROFILE_NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object qosProfileName_ = ""; + /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return The exclusions. + * <code>string qos_profile_name = 2;</code> + * @return The qosProfileName. */ @java.lang.Override - public context.ContextOuterClass.Constraint_Exclusions getExclusions() { - if (constraintCase_ == 10) { - return (context.ContextOuterClass.Constraint_Exclusions) constraint_; + public java.lang.String getQosProfileName() { + java.lang.Object ref = qosProfileName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + qosProfileName_ = s; + return s; } - return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>string qos_profile_name = 2;</code> + * @return The bytes for qosProfileName. */ @java.lang.Override - public context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder() { - if (constraintCase_ == 10) { - return (context.ContextOuterClass.Constraint_Exclusions) constraint_; + public com.google.protobuf.ByteString getQosProfileNameBytes() { + java.lang.Object ref = qosProfileName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + qosProfileName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } private byte memoizedIsInitialized = -1; @@ -65978,35 +67782,11 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (action_ != context.ContextOuterClass.ConstraintActionEnum.CONSTRAINTACTION_UNDEFINED.getNumber()) { - output.writeEnum(1, action_); - } - if (constraintCase_ == 2) { - output.writeMessage(2, (context.ContextOuterClass.Constraint_Custom) constraint_); - } - if (constraintCase_ == 3) { - output.writeMessage(3, (context.ContextOuterClass.Constraint_Schedule) constraint_); - } - if (constraintCase_ == 4) { - output.writeMessage(4, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_); - } - if (constraintCase_ == 5) { - output.writeMessage(5, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_); - } - if (constraintCase_ == 6) { - output.writeMessage(6, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_); - } - if (constraintCase_ == 7) { - output.writeMessage(7, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_); + if (qosProfileId_ != null) { + output.writeMessage(1, getQosProfileId()); } - if (constraintCase_ == 8) { - output.writeMessage(8, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_); - } - if (constraintCase_ == 9) { - output.writeMessage(9, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_); - } - if (constraintCase_ == 10) { - output.writeMessage(10, (context.ContextOuterClass.Constraint_Exclusions) constraint_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(qosProfileName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, qosProfileName_); } getUnknownFields().writeTo(output); } @@ -66017,35 +67797,11 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (action_ != context.ContextOuterClass.ConstraintActionEnum.CONSTRAINTACTION_UNDEFINED.getNumber()) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, action_); - } - if (constraintCase_ == 2) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, (context.ContextOuterClass.Constraint_Custom) constraint_); - } - if (constraintCase_ == 3) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, (context.ContextOuterClass.Constraint_Schedule) constraint_); - } - if (constraintCase_ == 4) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_); - } - if (constraintCase_ == 5) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_); - } - if (constraintCase_ == 6) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_); - } - if (constraintCase_ == 7) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_); - } - if (constraintCase_ == 8) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_); - } - if (constraintCase_ == 9) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_); + if (qosProfileId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getQosProfileId()); } - if (constraintCase_ == 10) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, (context.ContextOuterClass.Constraint_Exclusions) constraint_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(qosProfileName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, qosProfileName_); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -66057,54 +67813,18 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.Constraint)) { + if (!(obj instanceof context.ContextOuterClass.Constraint_QoSProfile)) { return super.equals(obj); } - context.ContextOuterClass.Constraint other = (context.ContextOuterClass.Constraint) obj; - if (action_ != other.action_) - return false; - if (!getConstraintCase().equals(other.getConstraintCase())) + context.ContextOuterClass.Constraint_QoSProfile other = (context.ContextOuterClass.Constraint_QoSProfile) obj; + if (hasQosProfileId() != other.hasQosProfileId()) return false; - switch(constraintCase_) { - case 2: - if (!getCustom().equals(other.getCustom())) - return false; - break; - case 3: - if (!getSchedule().equals(other.getSchedule())) - return false; - break; - case 4: - if (!getEndpointLocation().equals(other.getEndpointLocation())) - return false; - break; - case 5: - if (!getEndpointPriority().equals(other.getEndpointPriority())) - return false; - break; - case 6: - if (!getSlaCapacity().equals(other.getSlaCapacity())) - return false; - break; - case 7: - if (!getSlaLatency().equals(other.getSlaLatency())) - return false; - break; - case 8: - if (!getSlaAvailability().equals(other.getSlaAvailability())) - return false; - break; - case 9: - if (!getSlaIsolation().equals(other.getSlaIsolation())) - return false; - break; - case 10: - if (!getExclusions().equals(other.getExclusions())) - return false; - break; - case 0: - default: + if (hasQosProfileId()) { + if (!getQosProfileId().equals(other.getQosProfileId())) + return false; } + if (!getQosProfileName().equals(other.getQosProfileName())) + return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; @@ -66117,98 +67837,62 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ACTION_FIELD_NUMBER; - hash = (53 * hash) + action_; - switch(constraintCase_) { - case 2: - hash = (37 * hash) + CUSTOM_FIELD_NUMBER; - hash = (53 * hash) + getCustom().hashCode(); - break; - case 3: - hash = (37 * hash) + SCHEDULE_FIELD_NUMBER; - hash = (53 * hash) + getSchedule().hashCode(); - break; - case 4: - hash = (37 * hash) + ENDPOINT_LOCATION_FIELD_NUMBER; - hash = (53 * hash) + getEndpointLocation().hashCode(); - break; - case 5: - hash = (37 * hash) + ENDPOINT_PRIORITY_FIELD_NUMBER; - hash = (53 * hash) + getEndpointPriority().hashCode(); - break; - case 6: - hash = (37 * hash) + SLA_CAPACITY_FIELD_NUMBER; - hash = (53 * hash) + getSlaCapacity().hashCode(); - break; - case 7: - hash = (37 * hash) + SLA_LATENCY_FIELD_NUMBER; - hash = (53 * hash) + getSlaLatency().hashCode(); - break; - case 8: - hash = (37 * hash) + SLA_AVAILABILITY_FIELD_NUMBER; - hash = (53 * hash) + getSlaAvailability().hashCode(); - break; - case 9: - hash = (37 * hash) + SLA_ISOLATION_FIELD_NUMBER; - hash = (53 * hash) + getSlaIsolation().hashCode(); - break; - case 10: - hash = (37 * hash) + EXCLUSIONS_FIELD_NUMBER; - hash = (53 * hash) + getExclusions().hashCode(); - break; - case 0: - default: + if (hasQosProfileId()) { + hash = (37 * hash) + QOS_PROFILE_ID_FIELD_NUMBER; + hash = (53 * hash) + getQosProfileId().hashCode(); } + hash = (37 * hash) + QOS_PROFILE_NAME_FIELD_NUMBER; + hash = (53 * hash) + getQosProfileName().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.Constraint parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Constraint parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Constraint parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Constraint parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Constraint parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.Constraint parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.Constraint parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.Constraint parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -66221,7 +67905,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.Constraint prototype) { + public static Builder newBuilder(context.ContextOuterClass.Constraint_QoSProfile prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -66237,21 +67921,21 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.Constraint} + * Protobuf type {@code context.Constraint_QoSProfile} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Constraint) - context.ContextOuterClass.ConstraintOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Constraint_QoSProfile) + context.ContextOuterClass.Constraint_QoSProfileOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + return context.ContextOuterClass.internal_static_context_Constraint_QoSProfile_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Constraint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint.class, context.ContextOuterClass.Constraint.Builder.class); + return context.ContextOuterClass.internal_static_context_Constraint_QoSProfile_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint_QoSProfile.class, context.ContextOuterClass.Constraint_QoSProfile.Builder.class); } - // Construct using context.ContextOuterClass.Constraint.newBuilder() + // Construct using context.ContextOuterClass.Constraint_QoSProfile.newBuilder() private Builder() { } @@ -66263,52 +67947,28 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - action_ = 0; - if (customBuilder_ != null) { - customBuilder_.clear(); - } - if (scheduleBuilder_ != null) { - scheduleBuilder_.clear(); - } - if (endpointLocationBuilder_ != null) { - endpointLocationBuilder_.clear(); - } - if (endpointPriorityBuilder_ != null) { - endpointPriorityBuilder_.clear(); - } - if (slaCapacityBuilder_ != null) { - slaCapacityBuilder_.clear(); - } - if (slaLatencyBuilder_ != null) { - slaLatencyBuilder_.clear(); + qosProfileId_ = null; + if (qosProfileIdBuilder_ != null) { + qosProfileIdBuilder_.dispose(); + qosProfileIdBuilder_ = null; } - if (slaAvailabilityBuilder_ != null) { - slaAvailabilityBuilder_.clear(); - } - if (slaIsolationBuilder_ != null) { - slaIsolationBuilder_.clear(); - } - if (exclusionsBuilder_ != null) { - exclusionsBuilder_.clear(); - } - constraintCase_ = 0; - constraint_ = null; + qosProfileName_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + return context.ContextOuterClass.internal_static_context_Constraint_QoSProfile_descriptor; } @java.lang.Override - public context.ContextOuterClass.Constraint getDefaultInstanceForType() { - return context.ContextOuterClass.Constraint.getDefaultInstance(); + public context.ContextOuterClass.Constraint_QoSProfile getDefaultInstanceForType() { + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.Constraint build() { - context.ContextOuterClass.Constraint result = buildPartial(); + public context.ContextOuterClass.Constraint_QoSProfile build() { + context.ContextOuterClass.Constraint_QoSProfile result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -66316,121 +67976,45 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.Constraint buildPartial() { - context.ContextOuterClass.Constraint result = new context.ContextOuterClass.Constraint(this); + public context.ContextOuterClass.Constraint_QoSProfile buildPartial() { + context.ContextOuterClass.Constraint_QoSProfile result = new context.ContextOuterClass.Constraint_QoSProfile(this); if (bitField0_ != 0) { buildPartial0(result); } - buildPartialOneofs(result); onBuilt(); return result; } - private void buildPartial0(context.ContextOuterClass.Constraint result) { + private void buildPartial0(context.ContextOuterClass.Constraint_QoSProfile result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { - result.action_ = action_; - } - } - - private void buildPartialOneofs(context.ContextOuterClass.Constraint result) { - result.constraintCase_ = constraintCase_; - result.constraint_ = this.constraint_; - if (constraintCase_ == 2 && customBuilder_ != null) { - result.constraint_ = customBuilder_.build(); - } - if (constraintCase_ == 3 && scheduleBuilder_ != null) { - result.constraint_ = scheduleBuilder_.build(); - } - if (constraintCase_ == 4 && endpointLocationBuilder_ != null) { - result.constraint_ = endpointLocationBuilder_.build(); - } - if (constraintCase_ == 5 && endpointPriorityBuilder_ != null) { - result.constraint_ = endpointPriorityBuilder_.build(); - } - if (constraintCase_ == 6 && slaCapacityBuilder_ != null) { - result.constraint_ = slaCapacityBuilder_.build(); - } - if (constraintCase_ == 7 && slaLatencyBuilder_ != null) { - result.constraint_ = slaLatencyBuilder_.build(); - } - if (constraintCase_ == 8 && slaAvailabilityBuilder_ != null) { - result.constraint_ = slaAvailabilityBuilder_.build(); - } - if (constraintCase_ == 9 && slaIsolationBuilder_ != null) { - result.constraint_ = slaIsolationBuilder_.build(); - } - if (constraintCase_ == 10 && exclusionsBuilder_ != null) { - result.constraint_ = exclusionsBuilder_.build(); + result.qosProfileId_ = qosProfileIdBuilder_ == null ? qosProfileId_ : qosProfileIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.qosProfileName_ = qosProfileName_; } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.Constraint) { - return mergeFrom((context.ContextOuterClass.Constraint) other); + if (other instanceof context.ContextOuterClass.Constraint_QoSProfile) { + return mergeFrom((context.ContextOuterClass.Constraint_QoSProfile) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.Constraint other) { - if (other == context.ContextOuterClass.Constraint.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.Constraint_QoSProfile other) { + if (other == context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance()) return this; - if (other.action_ != 0) { - setActionValue(other.getActionValue()); + if (other.hasQosProfileId()) { + mergeQosProfileId(other.getQosProfileId()); } - switch(other.getConstraintCase()) { - case CUSTOM: - { - mergeCustom(other.getCustom()); - break; - } - case SCHEDULE: - { - mergeSchedule(other.getSchedule()); - break; - } - case ENDPOINT_LOCATION: - { - mergeEndpointLocation(other.getEndpointLocation()); - break; - } - case ENDPOINT_PRIORITY: - { - mergeEndpointPriority(other.getEndpointPriority()); - break; - } - case SLA_CAPACITY: - { - mergeSlaCapacity(other.getSlaCapacity()); - break; - } - case SLA_LATENCY: - { - mergeSlaLatency(other.getSlaLatency()); - break; - } - case SLA_AVAILABILITY: - { - mergeSlaAvailability(other.getSlaAvailability()); - break; - } - case SLA_ISOLATION: - { - mergeSlaIsolation(other.getSlaIsolation()); - break; - } - case EXCLUSIONS: - { - mergeExclusions(other.getExclusions()); - break; - } - case CONSTRAINT_NOT_SET: - { - break; - } + if (!other.getQosProfileName().isEmpty()) { + qosProfileName_ = other.qosProfileName_; + bitField0_ |= 0x00000002; + onChanged(); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); @@ -66455,76 +68039,20 @@ public final class ContextOuterClass { case 0: done = true; break; - case 8: + case 10: { - action_ = input.readEnum(); + input.readMessage(getQosProfileIdFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000001; break; } - // case 8 + // case 10 case 18: { - input.readMessage(getCustomFieldBuilder().getBuilder(), extensionRegistry); - constraintCase_ = 2; + qosProfileName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; break; } // case 18 - case 26: - { - input.readMessage(getScheduleFieldBuilder().getBuilder(), extensionRegistry); - constraintCase_ = 3; - break; - } - // case 26 - case 34: - { - input.readMessage(getEndpointLocationFieldBuilder().getBuilder(), extensionRegistry); - constraintCase_ = 4; - break; - } - // case 34 - case 42: - { - input.readMessage(getEndpointPriorityFieldBuilder().getBuilder(), extensionRegistry); - constraintCase_ = 5; - break; - } - // case 42 - case 50: - { - input.readMessage(getSlaCapacityFieldBuilder().getBuilder(), extensionRegistry); - constraintCase_ = 6; - break; - } - // case 50 - case 58: - { - input.readMessage(getSlaLatencyFieldBuilder().getBuilder(), extensionRegistry); - constraintCase_ = 7; - break; - } - // case 58 - case 66: - { - input.readMessage(getSlaAvailabilityFieldBuilder().getBuilder(), extensionRegistry); - constraintCase_ = 8; - break; - } - // case 66 - case 74: - { - input.readMessage(getSlaIsolationFieldBuilder().getBuilder(), extensionRegistry); - constraintCase_ = 9; - break; - } - // case 74 - case 82: - { - input.readMessage(getExclusionsFieldBuilder().getBuilder(), extensionRegistry); - constraintCase_ = 10; - break; - } - // case 82 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -66546,1349 +68074,3788 @@ public final class ContextOuterClass { return this; } - private int constraintCase_ = 0; + private int bitField0_; - private java.lang.Object constraint_; + private context.ContextOuterClass.QoSProfileId qosProfileId_; - public ConstraintCase getConstraintCase() { - return ConstraintCase.forNumber(constraintCase_); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.QoSProfileId, context.ContextOuterClass.QoSProfileId.Builder, context.ContextOuterClass.QoSProfileIdOrBuilder> qosProfileIdBuilder_; + + /** + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. + */ + public boolean hasQosProfileId() { + return ((bitField0_ & 0x00000001) != 0); } - public Builder clearConstraint() { - constraintCase_ = 0; - constraint_ = null; + /** + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return The qosProfileId. + */ + public context.ContextOuterClass.QoSProfileId getQosProfileId() { + if (qosProfileIdBuilder_ == null) { + return qosProfileId_ == null ? context.ContextOuterClass.QoSProfileId.getDefaultInstance() : qosProfileId_; + } else { + return qosProfileIdBuilder_.getMessage(); + } + } + + /** + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + */ + public Builder setQosProfileId(context.ContextOuterClass.QoSProfileId value) { + if (qosProfileIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + qosProfileId_ = value; + } else { + qosProfileIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; onChanged(); return this; } - private int bitField0_; + /** + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + */ + public Builder setQosProfileId(context.ContextOuterClass.QoSProfileId.Builder builderForValue) { + if (qosProfileIdBuilder_ == null) { + qosProfileId_ = builderForValue.build(); + } else { + qosProfileIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } - private int action_ = 0; + /** + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + */ + public Builder mergeQosProfileId(context.ContextOuterClass.QoSProfileId value) { + if (qosProfileIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && qosProfileId_ != null && qosProfileId_ != context.ContextOuterClass.QoSProfileId.getDefaultInstance()) { + getQosProfileIdBuilder().mergeFrom(value); + } else { + qosProfileId_ = value; + } + } else { + qosProfileIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The enum numeric value on the wire for action. + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ - @java.lang.Override - public int getActionValue() { - return action_; + public Builder clearQosProfileId() { + bitField0_ = (bitField0_ & ~0x00000001); + qosProfileId_ = null; + if (qosProfileIdBuilder_ != null) { + qosProfileIdBuilder_.dispose(); + qosProfileIdBuilder_ = null; + } + onChanged(); + return this; } /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @param value The enum numeric value on the wire for action to set. - * @return This builder for chaining. + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ - public Builder setActionValue(int value) { - action_ = value; + public context.ContextOuterClass.QoSProfileId.Builder getQosProfileIdBuilder() { bitField0_ |= 0x00000001; onChanged(); - return this; + return getQosProfileIdFieldBuilder().getBuilder(); } /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The action. + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ - @java.lang.Override - public context.ContextOuterClass.ConstraintActionEnum getAction() { - context.ContextOuterClass.ConstraintActionEnum result = context.ContextOuterClass.ConstraintActionEnum.forNumber(action_); - return result == null ? context.ContextOuterClass.ConstraintActionEnum.UNRECOGNIZED : result; + public context.ContextOuterClass.QoSProfileIdOrBuilder getQosProfileIdOrBuilder() { + if (qosProfileIdBuilder_ != null) { + return qosProfileIdBuilder_.getMessageOrBuilder(); + } else { + return qosProfileId_ == null ? context.ContextOuterClass.QoSProfileId.getDefaultInstance() : qosProfileId_; + } } /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @param value The action to set. + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.QoSProfileId, context.ContextOuterClass.QoSProfileId.Builder, context.ContextOuterClass.QoSProfileIdOrBuilder> getQosProfileIdFieldBuilder() { + if (qosProfileIdBuilder_ == null) { + qosProfileIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.QoSProfileId, context.ContextOuterClass.QoSProfileId.Builder, context.ContextOuterClass.QoSProfileIdOrBuilder>(getQosProfileId(), getParentForChildren(), isClean()); + qosProfileId_ = null; + } + return qosProfileIdBuilder_; + } + + private java.lang.Object qosProfileName_ = ""; + + /** + * <code>string qos_profile_name = 2;</code> + * @return The qosProfileName. + */ + public java.lang.String getQosProfileName() { + java.lang.Object ref = qosProfileName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + qosProfileName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * <code>string qos_profile_name = 2;</code> + * @return The bytes for qosProfileName. + */ + public com.google.protobuf.ByteString getQosProfileNameBytes() { + java.lang.Object ref = qosProfileName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + qosProfileName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * <code>string qos_profile_name = 2;</code> + * @param value The qosProfileName to set. * @return This builder for chaining. */ - public Builder setAction(context.ContextOuterClass.ConstraintActionEnum value) { + public Builder setQosProfileName(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - bitField0_ |= 0x00000001; - action_ = value.getNumber(); + qosProfileName_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>.context.ConstraintActionEnum action = 1;</code> + * <code>string qos_profile_name = 2;</code> * @return This builder for chaining. */ - public Builder clearAction() { - bitField0_ = (bitField0_ & ~0x00000001); - action_ = 0; + public Builder clearQosProfileName() { + qosProfileName_ = getDefaultInstance().getQosProfileName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder> customBuilder_; - /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return Whether the custom field is set. + * <code>string qos_profile_name = 2;</code> + * @param value The bytes for qosProfileName to set. + * @return This builder for chaining. */ + public Builder setQosProfileNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + qosProfileName_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + @java.lang.Override - public boolean hasCustom() { - return constraintCase_ == 2; + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); } - /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return The custom. - */ @java.lang.Override - public context.ContextOuterClass.Constraint_Custom getCustom() { - if (customBuilder_ == null) { - if (constraintCase_ == 2) { - return (context.ContextOuterClass.Constraint_Custom) constraint_; + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Constraint_QoSProfile) + } + + // @@protoc_insertion_point(class_scope:context.Constraint_QoSProfile) + private static final context.ContextOuterClass.Constraint_QoSProfile DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Constraint_QoSProfile(); + } + + public static context.ContextOuterClass.Constraint_QoSProfile getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<Constraint_QoSProfile> PARSER = new com.google.protobuf.AbstractParser<Constraint_QoSProfile>() { + + @java.lang.Override + public Constraint_QoSProfile parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser<Constraint_QoSProfile> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<Constraint_QoSProfile> getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Constraint_QoSProfile getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface ConstraintOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Constraint) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The enum numeric value on the wire for action. + */ + int getActionValue(); + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The action. + */ + context.ContextOuterClass.ConstraintActionEnum getAction(); + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return Whether the custom field is set. + */ + boolean hasCustom(); + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return The custom. + */ + context.ContextOuterClass.Constraint_Custom getCustom(); + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder(); + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return Whether the schedule field is set. + */ + boolean hasSchedule(); + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return The schedule. + */ + context.ContextOuterClass.Constraint_Schedule getSchedule(); + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder(); + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return Whether the endpointLocation field is set. + */ + boolean hasEndpointLocation(); + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return The endpointLocation. + */ + context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation(); + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder(); + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return Whether the endpointPriority field is set. + */ + boolean hasEndpointPriority(); + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return The endpointPriority. + */ + context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority(); + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder(); + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return Whether the slaCapacity field is set. + */ + boolean hasSlaCapacity(); + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return The slaCapacity. + */ + context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity(); + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder(); + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return Whether the slaLatency field is set. + */ + boolean hasSlaLatency(); + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return The slaLatency. + */ + context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency(); + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder(); + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return Whether the slaAvailability field is set. + */ + boolean hasSlaAvailability(); + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return The slaAvailability. + */ + context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability(); + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder(); + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return Whether the slaIsolation field is set. + */ + boolean hasSlaIsolation(); + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return The slaIsolation. + */ + context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation(); + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder(); + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return Whether the exclusions field is set. + */ + boolean hasExclusions(); + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return The exclusions. + */ + context.ContextOuterClass.Constraint_Exclusions getExclusions(); + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + */ + context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder(); + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return Whether the qosProfile field is set. + */ + boolean hasQosProfile(); + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return The qosProfile. + */ + context.ContextOuterClass.Constraint_QoSProfile getQosProfile(); + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + */ + context.ContextOuterClass.Constraint_QoSProfileOrBuilder getQosProfileOrBuilder(); + + context.ContextOuterClass.Constraint.ConstraintCase getConstraintCase(); + } + + /** + * Protobuf type {@code context.Constraint} + */ + public static final class Constraint extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Constraint) + ConstraintOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Constraint.newBuilder() to construct. + private Constraint(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + + private Constraint() { + action_ = 0; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Constraint(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Constraint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint.class, context.ContextOuterClass.Constraint.Builder.class); + } + + private int constraintCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object constraint_; + + public enum ConstraintCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { + + CUSTOM(2), + SCHEDULE(3), + ENDPOINT_LOCATION(4), + ENDPOINT_PRIORITY(5), + SLA_CAPACITY(6), + SLA_LATENCY(7), + SLA_AVAILABILITY(8), + SLA_ISOLATION(9), + EXCLUSIONS(10), + QOS_PROFILE(11), + CONSTRAINT_NOT_SET(0); + + private final int value; + + private ConstraintCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ConstraintCase valueOf(int value) { + return forNumber(value); + } + + public static ConstraintCase forNumber(int value) { + switch(value) { + case 2: + return CUSTOM; + case 3: + return SCHEDULE; + case 4: + return ENDPOINT_LOCATION; + case 5: + return ENDPOINT_PRIORITY; + case 6: + return SLA_CAPACITY; + case 7: + return SLA_LATENCY; + case 8: + return SLA_AVAILABILITY; + case 9: + return SLA_ISOLATION; + case 10: + return EXCLUSIONS; + case 11: + return QOS_PROFILE; + case 0: + return CONSTRAINT_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + } + + public ConstraintCase getConstraintCase() { + return ConstraintCase.forNumber(constraintCase_); + } + + public static final int ACTION_FIELD_NUMBER = 1; + + private int action_ = 0; + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The enum numeric value on the wire for action. + */ + @java.lang.Override + public int getActionValue() { + return action_; + } + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The action. + */ + @java.lang.Override + public context.ContextOuterClass.ConstraintActionEnum getAction() { + context.ContextOuterClass.ConstraintActionEnum result = context.ContextOuterClass.ConstraintActionEnum.forNumber(action_); + return result == null ? context.ContextOuterClass.ConstraintActionEnum.UNRECOGNIZED : result; + } + + public static final int CUSTOM_FIELD_NUMBER = 2; + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return Whether the custom field is set. + */ + @java.lang.Override + public boolean hasCustom() { + return constraintCase_ == 2; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return The custom. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_Custom getCustom() { + if (constraintCase_ == 2) { + return (context.ContextOuterClass.Constraint_Custom) constraint_; + } + return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder() { + if (constraintCase_ == 2) { + return (context.ContextOuterClass.Constraint_Custom) constraint_; + } + return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } + + public static final int SCHEDULE_FIELD_NUMBER = 3; + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return Whether the schedule field is set. + */ + @java.lang.Override + public boolean hasSchedule() { + return constraintCase_ == 3; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return The schedule. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_Schedule getSchedule() { + if (constraintCase_ == 3) { + return (context.ContextOuterClass.Constraint_Schedule) constraint_; + } + return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder() { + if (constraintCase_ == 3) { + return (context.ContextOuterClass.Constraint_Schedule) constraint_; + } + return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } + + public static final int ENDPOINT_LOCATION_FIELD_NUMBER = 4; + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return Whether the endpointLocation field is set. + */ + @java.lang.Override + public boolean hasEndpointLocation() { + return constraintCase_ == 4; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return The endpointLocation. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation() { + if (constraintCase_ == 4) { + return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder() { + if (constraintCase_ == 4) { + return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } + + public static final int ENDPOINT_PRIORITY_FIELD_NUMBER = 5; + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return Whether the endpointPriority field is set. + */ + @java.lang.Override + public boolean hasEndpointPriority() { + return constraintCase_ == 5; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return The endpointPriority. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority() { + if (constraintCase_ == 5) { + return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder() { + if (constraintCase_ == 5) { + return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } + + public static final int SLA_CAPACITY_FIELD_NUMBER = 6; + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return Whether the slaCapacity field is set. + */ + @java.lang.Override + public boolean hasSlaCapacity() { + return constraintCase_ == 6; + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return The slaCapacity. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity() { + if (constraintCase_ == 6) { + return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder() { + if (constraintCase_ == 6) { + return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + } + + public static final int SLA_LATENCY_FIELD_NUMBER = 7; + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return Whether the slaLatency field is set. + */ + @java.lang.Override + public boolean hasSlaLatency() { + return constraintCase_ == 7; + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return The slaLatency. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency() { + if (constraintCase_ == 7) { + return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder() { + if (constraintCase_ == 7) { + return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + } + + public static final int SLA_AVAILABILITY_FIELD_NUMBER = 8; + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return Whether the slaAvailability field is set. + */ + @java.lang.Override + public boolean hasSlaAvailability() { + return constraintCase_ == 8; + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return The slaAvailability. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability() { + if (constraintCase_ == 8) { + return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder() { + if (constraintCase_ == 8) { + return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + } + + public static final int SLA_ISOLATION_FIELD_NUMBER = 9; + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return Whether the slaIsolation field is set. + */ + @java.lang.Override + public boolean hasSlaIsolation() { + return constraintCase_ == 9; + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return The slaIsolation. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation() { + if (constraintCase_ == 9) { + return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder() { + if (constraintCase_ == 9) { + return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + } + + public static final int EXCLUSIONS_FIELD_NUMBER = 10; + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return Whether the exclusions field is set. + */ + @java.lang.Override + public boolean hasExclusions() { + return constraintCase_ == 10; + } + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return The exclusions. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_Exclusions getExclusions() { + if (constraintCase_ == 10) { + return (context.ContextOuterClass.Constraint_Exclusions) constraint_; + } + return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder() { + if (constraintCase_ == 10) { + return (context.ContextOuterClass.Constraint_Exclusions) constraint_; + } + return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); + } + + public static final int QOS_PROFILE_FIELD_NUMBER = 11; + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return Whether the qosProfile field is set. + */ + @java.lang.Override + public boolean hasQosProfile() { + return constraintCase_ == 11; + } + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return The qosProfile. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_QoSProfile getQosProfile() { + if (constraintCase_ == 11) { + return (context.ContextOuterClass.Constraint_QoSProfile) constraint_; + } + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_QoSProfileOrBuilder getQosProfileOrBuilder() { + if (constraintCase_ == 11) { + return (context.ContextOuterClass.Constraint_QoSProfile) constraint_; + } + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (action_ != context.ContextOuterClass.ConstraintActionEnum.CONSTRAINTACTION_UNDEFINED.getNumber()) { + output.writeEnum(1, action_); + } + if (constraintCase_ == 2) { + output.writeMessage(2, (context.ContextOuterClass.Constraint_Custom) constraint_); + } + if (constraintCase_ == 3) { + output.writeMessage(3, (context.ContextOuterClass.Constraint_Schedule) constraint_); + } + if (constraintCase_ == 4) { + output.writeMessage(4, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_); + } + if (constraintCase_ == 5) { + output.writeMessage(5, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_); + } + if (constraintCase_ == 6) { + output.writeMessage(6, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_); + } + if (constraintCase_ == 7) { + output.writeMessage(7, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_); + } + if (constraintCase_ == 8) { + output.writeMessage(8, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_); + } + if (constraintCase_ == 9) { + output.writeMessage(9, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_); + } + if (constraintCase_ == 10) { + output.writeMessage(10, (context.ContextOuterClass.Constraint_Exclusions) constraint_); + } + if (constraintCase_ == 11) { + output.writeMessage(11, (context.ContextOuterClass.Constraint_QoSProfile) constraint_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (action_ != context.ContextOuterClass.ConstraintActionEnum.CONSTRAINTACTION_UNDEFINED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, action_); + } + if (constraintCase_ == 2) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, (context.ContextOuterClass.Constraint_Custom) constraint_); + } + if (constraintCase_ == 3) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, (context.ContextOuterClass.Constraint_Schedule) constraint_); + } + if (constraintCase_ == 4) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_); + } + if (constraintCase_ == 5) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_); + } + if (constraintCase_ == 6) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_); + } + if (constraintCase_ == 7) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_); + } + if (constraintCase_ == 8) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_); + } + if (constraintCase_ == 9) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_); + } + if (constraintCase_ == 10) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, (context.ContextOuterClass.Constraint_Exclusions) constraint_); + } + if (constraintCase_ == 11) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, (context.ContextOuterClass.Constraint_QoSProfile) constraint_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Constraint)) { + return super.equals(obj); + } + context.ContextOuterClass.Constraint other = (context.ContextOuterClass.Constraint) obj; + if (action_ != other.action_) + return false; + if (!getConstraintCase().equals(other.getConstraintCase())) + return false; + switch(constraintCase_) { + case 2: + if (!getCustom().equals(other.getCustom())) + return false; + break; + case 3: + if (!getSchedule().equals(other.getSchedule())) + return false; + break; + case 4: + if (!getEndpointLocation().equals(other.getEndpointLocation())) + return false; + break; + case 5: + if (!getEndpointPriority().equals(other.getEndpointPriority())) + return false; + break; + case 6: + if (!getSlaCapacity().equals(other.getSlaCapacity())) + return false; + break; + case 7: + if (!getSlaLatency().equals(other.getSlaLatency())) + return false; + break; + case 8: + if (!getSlaAvailability().equals(other.getSlaAvailability())) + return false; + break; + case 9: + if (!getSlaIsolation().equals(other.getSlaIsolation())) + return false; + break; + case 10: + if (!getExclusions().equals(other.getExclusions())) + return false; + break; + case 11: + if (!getQosProfile().equals(other.getQosProfile())) + return false; + break; + case 0: + default: + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ACTION_FIELD_NUMBER; + hash = (53 * hash) + action_; + switch(constraintCase_) { + case 2: + hash = (37 * hash) + CUSTOM_FIELD_NUMBER; + hash = (53 * hash) + getCustom().hashCode(); + break; + case 3: + hash = (37 * hash) + SCHEDULE_FIELD_NUMBER; + hash = (53 * hash) + getSchedule().hashCode(); + break; + case 4: + hash = (37 * hash) + ENDPOINT_LOCATION_FIELD_NUMBER; + hash = (53 * hash) + getEndpointLocation().hashCode(); + break; + case 5: + hash = (37 * hash) + ENDPOINT_PRIORITY_FIELD_NUMBER; + hash = (53 * hash) + getEndpointPriority().hashCode(); + break; + case 6: + hash = (37 * hash) + SLA_CAPACITY_FIELD_NUMBER; + hash = (53 * hash) + getSlaCapacity().hashCode(); + break; + case 7: + hash = (37 * hash) + SLA_LATENCY_FIELD_NUMBER; + hash = (53 * hash) + getSlaLatency().hashCode(); + break; + case 8: + hash = (37 * hash) + SLA_AVAILABILITY_FIELD_NUMBER; + hash = (53 * hash) + getSlaAvailability().hashCode(); + break; + case 9: + hash = (37 * hash) + SLA_ISOLATION_FIELD_NUMBER; + hash = (53 * hash) + getSlaIsolation().hashCode(); + break; + case 10: + hash = (37 * hash) + EXCLUSIONS_FIELD_NUMBER; + hash = (53 * hash) + getExclusions().hashCode(); + break; + case 11: + hash = (37 * hash) + QOS_PROFILE_FIELD_NUMBER; + hash = (53 * hash) + getQosProfile().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.Constraint parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Constraint parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Constraint parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Constraint parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Constraint parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Constraint parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Constraint parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Constraint parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.Constraint prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.Constraint} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Constraint) + context.ContextOuterClass.ConstraintOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Constraint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint.class, context.ContextOuterClass.Constraint.Builder.class); + } + + // Construct using context.ContextOuterClass.Constraint.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + action_ = 0; + if (customBuilder_ != null) { + customBuilder_.clear(); + } + if (scheduleBuilder_ != null) { + scheduleBuilder_.clear(); + } + if (endpointLocationBuilder_ != null) { + endpointLocationBuilder_.clear(); + } + if (endpointPriorityBuilder_ != null) { + endpointPriorityBuilder_.clear(); + } + if (slaCapacityBuilder_ != null) { + slaCapacityBuilder_.clear(); + } + if (slaLatencyBuilder_ != null) { + slaLatencyBuilder_.clear(); + } + if (slaAvailabilityBuilder_ != null) { + slaAvailabilityBuilder_.clear(); + } + if (slaIsolationBuilder_ != null) { + slaIsolationBuilder_.clear(); + } + if (exclusionsBuilder_ != null) { + exclusionsBuilder_.clear(); + } + if (qosProfileBuilder_ != null) { + qosProfileBuilder_.clear(); + } + constraintCase_ = 0; + constraint_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.Constraint getDefaultInstanceForType() { + return context.ContextOuterClass.Constraint.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.Constraint build() { + context.ContextOuterClass.Constraint result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.Constraint buildPartial() { + context.ContextOuterClass.Constraint result = new context.ContextOuterClass.Constraint(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.Constraint result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.action_ = action_; + } + } + + private void buildPartialOneofs(context.ContextOuterClass.Constraint result) { + result.constraintCase_ = constraintCase_; + result.constraint_ = this.constraint_; + if (constraintCase_ == 2 && customBuilder_ != null) { + result.constraint_ = customBuilder_.build(); + } + if (constraintCase_ == 3 && scheduleBuilder_ != null) { + result.constraint_ = scheduleBuilder_.build(); + } + if (constraintCase_ == 4 && endpointLocationBuilder_ != null) { + result.constraint_ = endpointLocationBuilder_.build(); + } + if (constraintCase_ == 5 && endpointPriorityBuilder_ != null) { + result.constraint_ = endpointPriorityBuilder_.build(); + } + if (constraintCase_ == 6 && slaCapacityBuilder_ != null) { + result.constraint_ = slaCapacityBuilder_.build(); + } + if (constraintCase_ == 7 && slaLatencyBuilder_ != null) { + result.constraint_ = slaLatencyBuilder_.build(); + } + if (constraintCase_ == 8 && slaAvailabilityBuilder_ != null) { + result.constraint_ = slaAvailabilityBuilder_.build(); + } + if (constraintCase_ == 9 && slaIsolationBuilder_ != null) { + result.constraint_ = slaIsolationBuilder_.build(); + } + if (constraintCase_ == 10 && exclusionsBuilder_ != null) { + result.constraint_ = exclusionsBuilder_.build(); + } + if (constraintCase_ == 11 && qosProfileBuilder_ != null) { + result.constraint_ = qosProfileBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Constraint) { + return mergeFrom((context.ContextOuterClass.Constraint) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.Constraint other) { + if (other == context.ContextOuterClass.Constraint.getDefaultInstance()) + return this; + if (other.action_ != 0) { + setActionValue(other.getActionValue()); + } + switch(other.getConstraintCase()) { + case CUSTOM: + { + mergeCustom(other.getCustom()); + break; + } + case SCHEDULE: + { + mergeSchedule(other.getSchedule()); + break; + } + case ENDPOINT_LOCATION: + { + mergeEndpointLocation(other.getEndpointLocation()); + break; + } + case ENDPOINT_PRIORITY: + { + mergeEndpointPriority(other.getEndpointPriority()); + break; + } + case SLA_CAPACITY: + { + mergeSlaCapacity(other.getSlaCapacity()); + break; + } + case SLA_LATENCY: + { + mergeSlaLatency(other.getSlaLatency()); + break; + } + case SLA_AVAILABILITY: + { + mergeSlaAvailability(other.getSlaAvailability()); + break; + } + case SLA_ISOLATION: + { + mergeSlaIsolation(other.getSlaIsolation()); + break; + } + case EXCLUSIONS: + { + mergeExclusions(other.getExclusions()); + break; + } + case QOS_PROFILE: + { + mergeQosProfile(other.getQosProfile()); + break; + } + case CONSTRAINT_NOT_SET: + { + break; + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + action_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 18: + { + input.readMessage(getCustomFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 2; + break; + } + // case 18 + case 26: + { + input.readMessage(getScheduleFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 3; + break; + } + // case 26 + case 34: + { + input.readMessage(getEndpointLocationFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 4; + break; + } + // case 34 + case 42: + { + input.readMessage(getEndpointPriorityFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 5; + break; + } + // case 42 + case 50: + { + input.readMessage(getSlaCapacityFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 6; + break; + } + // case 50 + case 58: + { + input.readMessage(getSlaLatencyFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 7; + break; + } + // case 58 + case 66: + { + input.readMessage(getSlaAvailabilityFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 8; + break; + } + // case 66 + case 74: + { + input.readMessage(getSlaIsolationFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 9; + break; + } + // case 74 + case 82: + { + input.readMessage(getExclusionsFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 10; + break; + } + // case 82 + case 90: + { + input.readMessage(getQosProfileFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 11; + break; + } + // case 90 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int constraintCase_ = 0; + + private java.lang.Object constraint_; + + public ConstraintCase getConstraintCase() { + return ConstraintCase.forNumber(constraintCase_); + } + + public Builder clearConstraint() { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private int action_ = 0; + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The enum numeric value on the wire for action. + */ + @java.lang.Override + public int getActionValue() { + return action_; + } + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @param value The enum numeric value on the wire for action to set. + * @return This builder for chaining. + */ + public Builder setActionValue(int value) { + action_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The action. + */ + @java.lang.Override + public context.ContextOuterClass.ConstraintActionEnum getAction() { + context.ContextOuterClass.ConstraintActionEnum result = context.ContextOuterClass.ConstraintActionEnum.forNumber(action_); + return result == null ? context.ContextOuterClass.ConstraintActionEnum.UNRECOGNIZED : result; + } + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @param value The action to set. + * @return This builder for chaining. + */ + public Builder setAction(context.ContextOuterClass.ConstraintActionEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + action_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return This builder for chaining. + */ + public Builder clearAction() { + bitField0_ = (bitField0_ & ~0x00000001); + action_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder> customBuilder_; + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return Whether the custom field is set. + */ + @java.lang.Override + public boolean hasCustom() { + return constraintCase_ == 2; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return The custom. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_Custom getCustom() { + if (customBuilder_ == null) { + if (constraintCase_ == 2) { + return (context.ContextOuterClass.Constraint_Custom) constraint_; + } + return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } else { + if (constraintCase_ == 2) { + return customBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + public Builder setCustom(context.ContextOuterClass.Constraint_Custom value) { + if (customBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + customBuilder_.setMessage(value); + } + constraintCase_ = 2; + return this; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + public Builder setCustom(context.ContextOuterClass.Constraint_Custom.Builder builderForValue) { + if (customBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + customBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 2; + return this; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + public Builder mergeCustom(context.ContextOuterClass.Constraint_Custom value) { + if (customBuilder_ == null) { + if (constraintCase_ == 2 && constraint_ != context.ContextOuterClass.Constraint_Custom.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_Custom.newBuilder((context.ContextOuterClass.Constraint_Custom) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 2) { + customBuilder_.mergeFrom(value); + } else { + customBuilder_.setMessage(value); + } + } + constraintCase_ = 2; + return this; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + public Builder clearCustom() { + if (customBuilder_ == null) { + if (constraintCase_ == 2) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 2) { + constraintCase_ = 0; + constraint_ = null; + } + customBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + public context.ContextOuterClass.Constraint_Custom.Builder getCustomBuilder() { + return getCustomFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder() { + if ((constraintCase_ == 2) && (customBuilder_ != null)) { + return customBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 2) { + return (context.ContextOuterClass.Constraint_Custom) constraint_; + } + return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder> getCustomFieldBuilder() { + if (customBuilder_ == null) { + if (!(constraintCase_ == 2)) { + constraint_ = context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } + customBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder>((context.ContextOuterClass.Constraint_Custom) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 2; + onChanged(); + return customBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder> scheduleBuilder_; + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return Whether the schedule field is set. + */ + @java.lang.Override + public boolean hasSchedule() { + return constraintCase_ == 3; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return The schedule. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_Schedule getSchedule() { + if (scheduleBuilder_ == null) { + if (constraintCase_ == 3) { + return (context.ContextOuterClass.Constraint_Schedule) constraint_; + } + return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } else { + if (constraintCase_ == 3) { + return scheduleBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + public Builder setSchedule(context.ContextOuterClass.Constraint_Schedule value) { + if (scheduleBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + scheduleBuilder_.setMessage(value); + } + constraintCase_ = 3; + return this; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + public Builder setSchedule(context.ContextOuterClass.Constraint_Schedule.Builder builderForValue) { + if (scheduleBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + scheduleBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 3; + return this; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + public Builder mergeSchedule(context.ContextOuterClass.Constraint_Schedule value) { + if (scheduleBuilder_ == null) { + if (constraintCase_ == 3 && constraint_ != context.ContextOuterClass.Constraint_Schedule.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_Schedule.newBuilder((context.ContextOuterClass.Constraint_Schedule) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 3) { + scheduleBuilder_.mergeFrom(value); + } else { + scheduleBuilder_.setMessage(value); + } + } + constraintCase_ = 3; + return this; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + public Builder clearSchedule() { + if (scheduleBuilder_ == null) { + if (constraintCase_ == 3) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 3) { + constraintCase_ = 0; + constraint_ = null; + } + scheduleBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + public context.ContextOuterClass.Constraint_Schedule.Builder getScheduleBuilder() { + return getScheduleFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder() { + if ((constraintCase_ == 3) && (scheduleBuilder_ != null)) { + return scheduleBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 3) { + return (context.ContextOuterClass.Constraint_Schedule) constraint_; + } + return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder> getScheduleFieldBuilder() { + if (scheduleBuilder_ == null) { + if (!(constraintCase_ == 3)) { + constraint_ = context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } + scheduleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder>((context.ContextOuterClass.Constraint_Schedule) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 3; + onChanged(); + return scheduleBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder> endpointLocationBuilder_; + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return Whether the endpointLocation field is set. + */ + @java.lang.Override + public boolean hasEndpointLocation() { + return constraintCase_ == 4; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return The endpointLocation. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation() { + if (endpointLocationBuilder_ == null) { + if (constraintCase_ == 4) { + return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } else { + if (constraintCase_ == 4) { + return endpointLocationBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + public Builder setEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation value) { + if (endpointLocationBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + endpointLocationBuilder_.setMessage(value); + } + constraintCase_ = 4; + return this; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + public Builder setEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation.Builder builderForValue) { + if (endpointLocationBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + endpointLocationBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 4; + return this; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + public Builder mergeEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation value) { + if (endpointLocationBuilder_ == null) { + if (constraintCase_ == 4 && constraint_ != context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_EndPointLocation.newBuilder((context.ContextOuterClass.Constraint_EndPointLocation) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 4) { + endpointLocationBuilder_.mergeFrom(value); + } else { + endpointLocationBuilder_.setMessage(value); + } + } + constraintCase_ = 4; + return this; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + public Builder clearEndpointLocation() { + if (endpointLocationBuilder_ == null) { + if (constraintCase_ == 4) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 4) { + constraintCase_ = 0; + constraint_ = null; + } + endpointLocationBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + public context.ContextOuterClass.Constraint_EndPointLocation.Builder getEndpointLocationBuilder() { + return getEndpointLocationFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder() { + if ((constraintCase_ == 4) && (endpointLocationBuilder_ != null)) { + return endpointLocationBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 4) { + return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder> getEndpointLocationFieldBuilder() { + if (endpointLocationBuilder_ == null) { + if (!(constraintCase_ == 4)) { + constraint_ = context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } + endpointLocationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder>((context.ContextOuterClass.Constraint_EndPointLocation) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 4; + onChanged(); + return endpointLocationBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder> endpointPriorityBuilder_; + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return Whether the endpointPriority field is set. + */ + @java.lang.Override + public boolean hasEndpointPriority() { + return constraintCase_ == 5; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return The endpointPriority. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority() { + if (endpointPriorityBuilder_ == null) { + if (constraintCase_ == 5) { + return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } else { + if (constraintCase_ == 5) { + return endpointPriorityBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + public Builder setEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority value) { + if (endpointPriorityBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + endpointPriorityBuilder_.setMessage(value); + } + constraintCase_ = 5; + return this; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + public Builder setEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority.Builder builderForValue) { + if (endpointPriorityBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + endpointPriorityBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 5; + return this; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + public Builder mergeEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority value) { + if (endpointPriorityBuilder_ == null) { + if (constraintCase_ == 5 && constraint_ != context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_EndPointPriority.newBuilder((context.ContextOuterClass.Constraint_EndPointPriority) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 5) { + endpointPriorityBuilder_.mergeFrom(value); + } else { + endpointPriorityBuilder_.setMessage(value); + } + } + constraintCase_ = 5; + return this; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + public Builder clearEndpointPriority() { + if (endpointPriorityBuilder_ == null) { + if (constraintCase_ == 5) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 5) { + constraintCase_ = 0; + constraint_ = null; + } + endpointPriorityBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + public context.ContextOuterClass.Constraint_EndPointPriority.Builder getEndpointPriorityBuilder() { + return getEndpointPriorityFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder() { + if ((constraintCase_ == 5) && (endpointPriorityBuilder_ != null)) { + return endpointPriorityBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 5) { + return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder> getEndpointPriorityFieldBuilder() { + if (endpointPriorityBuilder_ == null) { + if (!(constraintCase_ == 5)) { + constraint_ = context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } + endpointPriorityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder>((context.ContextOuterClass.Constraint_EndPointPriority) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 5; + onChanged(); + return endpointPriorityBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder> slaCapacityBuilder_; + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return Whether the slaCapacity field is set. + */ + @java.lang.Override + public boolean hasSlaCapacity() { + return constraintCase_ == 6; + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return The slaCapacity. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity() { + if (slaCapacityBuilder_ == null) { + if (constraintCase_ == 6) { + return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; } - return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); } else { - if (constraintCase_ == 2) { - return customBuilder_.getMessage(); + if (constraintCase_ == 6) { + return slaCapacityBuilder_.getMessage(); } - return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); } } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> */ - public Builder setCustom(context.ContextOuterClass.Constraint_Custom value) { - if (customBuilder_ == null) { + public Builder setSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity value) { + if (slaCapacityBuilder_ == null) { if (value == null) { throw new NullPointerException(); } constraint_ = value; onChanged(); } else { - customBuilder_.setMessage(value); + slaCapacityBuilder_.setMessage(value); } - constraintCase_ = 2; + constraintCase_ = 6; return this; } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> */ - public Builder setCustom(context.ContextOuterClass.Constraint_Custom.Builder builderForValue) { - if (customBuilder_ == null) { + public Builder setSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity.Builder builderForValue) { + if (slaCapacityBuilder_ == null) { constraint_ = builderForValue.build(); onChanged(); } else { - customBuilder_.setMessage(builderForValue.build()); + slaCapacityBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 2; + constraintCase_ = 6; return this; } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> */ - public Builder mergeCustom(context.ContextOuterClass.Constraint_Custom value) { - if (customBuilder_ == null) { - if (constraintCase_ == 2 && constraint_ != context.ContextOuterClass.Constraint_Custom.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_Custom.newBuilder((context.ContextOuterClass.Constraint_Custom) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity value) { + if (slaCapacityBuilder_ == null) { + if (constraintCase_ == 6 && constraint_ != context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Capacity.newBuilder((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_).mergeFrom(value).buildPartial(); } else { constraint_ = value; } onChanged(); } else { - if (constraintCase_ == 2) { - customBuilder_.mergeFrom(value); + if (constraintCase_ == 6) { + slaCapacityBuilder_.mergeFrom(value); } else { - customBuilder_.setMessage(value); + slaCapacityBuilder_.setMessage(value); } } - constraintCase_ = 2; + constraintCase_ = 6; return this; } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> */ - public Builder clearCustom() { - if (customBuilder_ == null) { - if (constraintCase_ == 2) { + public Builder clearSlaCapacity() { + if (slaCapacityBuilder_ == null) { + if (constraintCase_ == 6) { constraintCase_ = 0; constraint_ = null; onChanged(); } } else { - if (constraintCase_ == 2) { + if (constraintCase_ == 6) { constraintCase_ = 0; constraint_ = null; } - customBuilder_.clear(); + slaCapacityBuilder_.clear(); } return this; } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> */ - public context.ContextOuterClass.Constraint_Custom.Builder getCustomBuilder() { - return getCustomFieldBuilder().getBuilder(); + public context.ContextOuterClass.Constraint_SLA_Capacity.Builder getSlaCapacityBuilder() { + return getSlaCapacityFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> */ @java.lang.Override - public context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder() { - if ((constraintCase_ == 2) && (customBuilder_ != null)) { - return customBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder() { + if ((constraintCase_ == 6) && (slaCapacityBuilder_ != null)) { + return slaCapacityBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 2) { - return (context.ContextOuterClass.Constraint_Custom) constraint_; + if (constraintCase_ == 6) { + return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; } - return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); } } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder> getCustomFieldBuilder() { - if (customBuilder_ == null) { - if (!(constraintCase_ == 2)) { - constraint_ = context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder> getSlaCapacityFieldBuilder() { + if (slaCapacityBuilder_ == null) { + if (!(constraintCase_ == 6)) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); } - customBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder>((context.ContextOuterClass.Constraint_Custom) constraint_, getParentForChildren(), isClean()); + slaCapacityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder>((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_, getParentForChildren(), isClean()); constraint_ = null; } - constraintCase_ = 2; + constraintCase_ = 6; onChanged(); - return customBuilder_; + return slaCapacityBuilder_; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder> scheduleBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder> slaLatencyBuilder_; /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return Whether the schedule field is set. + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return Whether the slaLatency field is set. */ @java.lang.Override - public boolean hasSchedule() { - return constraintCase_ == 3; + public boolean hasSlaLatency() { + return constraintCase_ == 7; } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return The schedule. + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return The slaLatency. */ @java.lang.Override - public context.ContextOuterClass.Constraint_Schedule getSchedule() { - if (scheduleBuilder_ == null) { - if (constraintCase_ == 3) { - return (context.ContextOuterClass.Constraint_Schedule) constraint_; + public context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency() { + if (slaLatencyBuilder_ == null) { + if (constraintCase_ == 7) { + return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; } - return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); } else { - if (constraintCase_ == 3) { - return scheduleBuilder_.getMessage(); + if (constraintCase_ == 7) { + return slaLatencyBuilder_.getMessage(); } - return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); } } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> */ - public Builder setSchedule(context.ContextOuterClass.Constraint_Schedule value) { - if (scheduleBuilder_ == null) { + public Builder setSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency value) { + if (slaLatencyBuilder_ == null) { if (value == null) { throw new NullPointerException(); } constraint_ = value; onChanged(); } else { - scheduleBuilder_.setMessage(value); + slaLatencyBuilder_.setMessage(value); } - constraintCase_ = 3; + constraintCase_ = 7; return this; } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> */ - public Builder setSchedule(context.ContextOuterClass.Constraint_Schedule.Builder builderForValue) { - if (scheduleBuilder_ == null) { + public Builder setSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency.Builder builderForValue) { + if (slaLatencyBuilder_ == null) { constraint_ = builderForValue.build(); onChanged(); } else { - scheduleBuilder_.setMessage(builderForValue.build()); + slaLatencyBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 3; + constraintCase_ = 7; return this; } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> */ - public Builder mergeSchedule(context.ContextOuterClass.Constraint_Schedule value) { - if (scheduleBuilder_ == null) { - if (constraintCase_ == 3 && constraint_ != context.ContextOuterClass.Constraint_Schedule.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_Schedule.newBuilder((context.ContextOuterClass.Constraint_Schedule) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency value) { + if (slaLatencyBuilder_ == null) { + if (constraintCase_ == 7 && constraint_ != context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Latency.newBuilder((context.ContextOuterClass.Constraint_SLA_Latency) constraint_).mergeFrom(value).buildPartial(); } else { constraint_ = value; } onChanged(); } else { - if (constraintCase_ == 3) { - scheduleBuilder_.mergeFrom(value); + if (constraintCase_ == 7) { + slaLatencyBuilder_.mergeFrom(value); } else { - scheduleBuilder_.setMessage(value); + slaLatencyBuilder_.setMessage(value); } } - constraintCase_ = 3; + constraintCase_ = 7; return this; } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> */ - public Builder clearSchedule() { - if (scheduleBuilder_ == null) { - if (constraintCase_ == 3) { + public Builder clearSlaLatency() { + if (slaLatencyBuilder_ == null) { + if (constraintCase_ == 7) { constraintCase_ = 0; constraint_ = null; onChanged(); } } else { - if (constraintCase_ == 3) { + if (constraintCase_ == 7) { constraintCase_ = 0; constraint_ = null; } - scheduleBuilder_.clear(); + slaLatencyBuilder_.clear(); } return this; } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> */ - public context.ContextOuterClass.Constraint_Schedule.Builder getScheduleBuilder() { - return getScheduleFieldBuilder().getBuilder(); + public context.ContextOuterClass.Constraint_SLA_Latency.Builder getSlaLatencyBuilder() { + return getSlaLatencyFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> */ @java.lang.Override - public context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder() { - if ((constraintCase_ == 3) && (scheduleBuilder_ != null)) { - return scheduleBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder() { + if ((constraintCase_ == 7) && (slaLatencyBuilder_ != null)) { + return slaLatencyBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 3) { - return (context.ContextOuterClass.Constraint_Schedule) constraint_; + if (constraintCase_ == 7) { + return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; } - return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); } } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder> getScheduleFieldBuilder() { - if (scheduleBuilder_ == null) { - if (!(constraintCase_ == 3)) { - constraint_ = context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder> getSlaLatencyFieldBuilder() { + if (slaLatencyBuilder_ == null) { + if (!(constraintCase_ == 7)) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); } - scheduleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder>((context.ContextOuterClass.Constraint_Schedule) constraint_, getParentForChildren(), isClean()); + slaLatencyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder>((context.ContextOuterClass.Constraint_SLA_Latency) constraint_, getParentForChildren(), isClean()); constraint_ = null; } - constraintCase_ = 3; + constraintCase_ = 7; onChanged(); - return scheduleBuilder_; + return slaLatencyBuilder_; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder> endpointLocationBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder> slaAvailabilityBuilder_; /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return Whether the endpointLocation field is set. + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return Whether the slaAvailability field is set. */ @java.lang.Override - public boolean hasEndpointLocation() { - return constraintCase_ == 4; + public boolean hasSlaAvailability() { + return constraintCase_ == 8; } /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return The endpointLocation. + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return The slaAvailability. */ @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation() { - if (endpointLocationBuilder_ == null) { - if (constraintCase_ == 4) { - return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; + public context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability() { + if (slaAvailabilityBuilder_ == null) { + if (constraintCase_ == 8) { + return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; } - return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); } else { - if (constraintCase_ == 4) { - return endpointLocationBuilder_.getMessage(); + if (constraintCase_ == 8) { + return slaAvailabilityBuilder_.getMessage(); } - return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); } } /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> */ - public Builder setEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation value) { - if (endpointLocationBuilder_ == null) { + public Builder setSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability value) { + if (slaAvailabilityBuilder_ == null) { if (value == null) { throw new NullPointerException(); } constraint_ = value; onChanged(); } else { - endpointLocationBuilder_.setMessage(value); + slaAvailabilityBuilder_.setMessage(value); } - constraintCase_ = 4; + constraintCase_ = 8; return this; } /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> */ - public Builder setEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation.Builder builderForValue) { - if (endpointLocationBuilder_ == null) { + public Builder setSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability.Builder builderForValue) { + if (slaAvailabilityBuilder_ == null) { constraint_ = builderForValue.build(); onChanged(); } else { - endpointLocationBuilder_.setMessage(builderForValue.build()); + slaAvailabilityBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 4; + constraintCase_ = 8; return this; } /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> */ - public Builder mergeEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation value) { - if (endpointLocationBuilder_ == null) { - if (constraintCase_ == 4 && constraint_ != context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_EndPointLocation.newBuilder((context.ContextOuterClass.Constraint_EndPointLocation) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability value) { + if (slaAvailabilityBuilder_ == null) { + if (constraintCase_ == 8 && constraint_ != context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Availability.newBuilder((context.ContextOuterClass.Constraint_SLA_Availability) constraint_).mergeFrom(value).buildPartial(); } else { constraint_ = value; } onChanged(); } else { - if (constraintCase_ == 4) { - endpointLocationBuilder_.mergeFrom(value); + if (constraintCase_ == 8) { + slaAvailabilityBuilder_.mergeFrom(value); } else { - endpointLocationBuilder_.setMessage(value); + slaAvailabilityBuilder_.setMessage(value); } } - constraintCase_ = 4; + constraintCase_ = 8; return this; } /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> */ - public Builder clearEndpointLocation() { - if (endpointLocationBuilder_ == null) { - if (constraintCase_ == 4) { + public Builder clearSlaAvailability() { + if (slaAvailabilityBuilder_ == null) { + if (constraintCase_ == 8) { constraintCase_ = 0; constraint_ = null; onChanged(); } } else { - if (constraintCase_ == 4) { + if (constraintCase_ == 8) { constraintCase_ = 0; constraint_ = null; } - endpointLocationBuilder_.clear(); + slaAvailabilityBuilder_.clear(); } return this; } /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> */ - public context.ContextOuterClass.Constraint_EndPointLocation.Builder getEndpointLocationBuilder() { - return getEndpointLocationFieldBuilder().getBuilder(); + public context.ContextOuterClass.Constraint_SLA_Availability.Builder getSlaAvailabilityBuilder() { + return getSlaAvailabilityFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> */ @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder() { - if ((constraintCase_ == 4) && (endpointLocationBuilder_ != null)) { - return endpointLocationBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder() { + if ((constraintCase_ == 8) && (slaAvailabilityBuilder_ != null)) { + return slaAvailabilityBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 4) { - return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; + if (constraintCase_ == 8) { + return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; } - return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); } } /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder> getEndpointLocationFieldBuilder() { - if (endpointLocationBuilder_ == null) { - if (!(constraintCase_ == 4)) { - constraint_ = context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder> getSlaAvailabilityFieldBuilder() { + if (slaAvailabilityBuilder_ == null) { + if (!(constraintCase_ == 8)) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); } - endpointLocationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder>((context.ContextOuterClass.Constraint_EndPointLocation) constraint_, getParentForChildren(), isClean()); + slaAvailabilityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder>((context.ContextOuterClass.Constraint_SLA_Availability) constraint_, getParentForChildren(), isClean()); constraint_ = null; } - constraintCase_ = 4; + constraintCase_ = 8; onChanged(); - return endpointLocationBuilder_; + return slaAvailabilityBuilder_; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder> endpointPriorityBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder> slaIsolationBuilder_; /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return Whether the endpointPriority field is set. + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return Whether the slaIsolation field is set. */ @java.lang.Override - public boolean hasEndpointPriority() { - return constraintCase_ == 5; + public boolean hasSlaIsolation() { + return constraintCase_ == 9; } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return The endpointPriority. + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return The slaIsolation. */ @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority() { - if (endpointPriorityBuilder_ == null) { - if (constraintCase_ == 5) { - return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + public context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation() { + if (slaIsolationBuilder_ == null) { + if (constraintCase_ == 9) { + return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; } - return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); } else { - if (constraintCase_ == 5) { - return endpointPriorityBuilder_.getMessage(); + if (constraintCase_ == 9) { + return slaIsolationBuilder_.getMessage(); } - return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); } } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> */ - public Builder setEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority value) { - if (endpointPriorityBuilder_ == null) { + public Builder setSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level value) { + if (slaIsolationBuilder_ == null) { if (value == null) { throw new NullPointerException(); } constraint_ = value; onChanged(); } else { - endpointPriorityBuilder_.setMessage(value); + slaIsolationBuilder_.setMessage(value); } - constraintCase_ = 5; + constraintCase_ = 9; return this; } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> */ - public Builder setEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority.Builder builderForValue) { - if (endpointPriorityBuilder_ == null) { + public Builder setSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder builderForValue) { + if (slaIsolationBuilder_ == null) { constraint_ = builderForValue.build(); onChanged(); } else { - endpointPriorityBuilder_.setMessage(builderForValue.build()); + slaIsolationBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 5; + constraintCase_ = 9; return this; } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> */ - public Builder mergeEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority value) { - if (endpointPriorityBuilder_ == null) { - if (constraintCase_ == 5 && constraint_ != context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_EndPointPriority.newBuilder((context.ContextOuterClass.Constraint_EndPointPriority) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level value) { + if (slaIsolationBuilder_ == null) { + if (constraintCase_ == 9 && constraint_ != context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_).mergeFrom(value).buildPartial(); } else { constraint_ = value; } onChanged(); } else { - if (constraintCase_ == 5) { - endpointPriorityBuilder_.mergeFrom(value); + if (constraintCase_ == 9) { + slaIsolationBuilder_.mergeFrom(value); } else { - endpointPriorityBuilder_.setMessage(value); + slaIsolationBuilder_.setMessage(value); } } - constraintCase_ = 5; + constraintCase_ = 9; return this; } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> */ - public Builder clearEndpointPriority() { - if (endpointPriorityBuilder_ == null) { - if (constraintCase_ == 5) { + public Builder clearSlaIsolation() { + if (slaIsolationBuilder_ == null) { + if (constraintCase_ == 9) { constraintCase_ = 0; constraint_ = null; onChanged(); } } else { - if (constraintCase_ == 5) { + if (constraintCase_ == 9) { constraintCase_ = 0; constraint_ = null; } - endpointPriorityBuilder_.clear(); + slaIsolationBuilder_.clear(); } return this; } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> */ - public context.ContextOuterClass.Constraint_EndPointPriority.Builder getEndpointPriorityBuilder() { - return getEndpointPriorityFieldBuilder().getBuilder(); + public context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder getSlaIsolationBuilder() { + return getSlaIsolationFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> */ @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder() { - if ((constraintCase_ == 5) && (endpointPriorityBuilder_ != null)) { - return endpointPriorityBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder() { + if ((constraintCase_ == 9) && (slaIsolationBuilder_ != null)) { + return slaIsolationBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 5) { - return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + if (constraintCase_ == 9) { + return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; } - return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); } } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder> getEndpointPriorityFieldBuilder() { - if (endpointPriorityBuilder_ == null) { - if (!(constraintCase_ == 5)) { - constraint_ = context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder> getSlaIsolationFieldBuilder() { + if (slaIsolationBuilder_ == null) { + if (!(constraintCase_ == 9)) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); } - endpointPriorityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder>((context.ContextOuterClass.Constraint_EndPointPriority) constraint_, getParentForChildren(), isClean()); + slaIsolationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder>((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_, getParentForChildren(), isClean()); constraint_ = null; } - constraintCase_ = 5; + constraintCase_ = 9; onChanged(); - return endpointPriorityBuilder_; + return slaIsolationBuilder_; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder> slaCapacityBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder> exclusionsBuilder_; /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return Whether the slaCapacity field is set. + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return Whether the exclusions field is set. */ @java.lang.Override - public boolean hasSlaCapacity() { - return constraintCase_ == 6; + public boolean hasExclusions() { + return constraintCase_ == 10; } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return The slaCapacity. + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return The exclusions. */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity() { - if (slaCapacityBuilder_ == null) { - if (constraintCase_ == 6) { - return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; + public context.ContextOuterClass.Constraint_Exclusions getExclusions() { + if (exclusionsBuilder_ == null) { + if (constraintCase_ == 10) { + return (context.ContextOuterClass.Constraint_Exclusions) constraint_; } - return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } else { - if (constraintCase_ == 6) { - return slaCapacityBuilder_.getMessage(); + if (constraintCase_ == 10) { + return exclusionsBuilder_.getMessage(); } - return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - public Builder setSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity value) { - if (slaCapacityBuilder_ == null) { + public Builder setExclusions(context.ContextOuterClass.Constraint_Exclusions value) { + if (exclusionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } constraint_ = value; onChanged(); } else { - slaCapacityBuilder_.setMessage(value); + exclusionsBuilder_.setMessage(value); } - constraintCase_ = 6; + constraintCase_ = 10; return this; } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - public Builder setSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity.Builder builderForValue) { - if (slaCapacityBuilder_ == null) { + public Builder setExclusions(context.ContextOuterClass.Constraint_Exclusions.Builder builderForValue) { + if (exclusionsBuilder_ == null) { constraint_ = builderForValue.build(); onChanged(); } else { - slaCapacityBuilder_.setMessage(builderForValue.build()); + exclusionsBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 6; + constraintCase_ = 10; return this; } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - public Builder mergeSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity value) { - if (slaCapacityBuilder_ == null) { - if (constraintCase_ == 6 && constraint_ != context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Capacity.newBuilder((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeExclusions(context.ContextOuterClass.Constraint_Exclusions value) { + if (exclusionsBuilder_ == null) { + if (constraintCase_ == 10 && constraint_ != context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_Exclusions.newBuilder((context.ContextOuterClass.Constraint_Exclusions) constraint_).mergeFrom(value).buildPartial(); } else { constraint_ = value; } onChanged(); } else { - if (constraintCase_ == 6) { - slaCapacityBuilder_.mergeFrom(value); + if (constraintCase_ == 10) { + exclusionsBuilder_.mergeFrom(value); } else { - slaCapacityBuilder_.setMessage(value); + exclusionsBuilder_.setMessage(value); } } - constraintCase_ = 6; + constraintCase_ = 10; return this; } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - public Builder clearSlaCapacity() { - if (slaCapacityBuilder_ == null) { - if (constraintCase_ == 6) { + public Builder clearExclusions() { + if (exclusionsBuilder_ == null) { + if (constraintCase_ == 10) { constraintCase_ = 0; constraint_ = null; onChanged(); } } else { - if (constraintCase_ == 6) { + if (constraintCase_ == 10) { constraintCase_ = 0; constraint_ = null; } - slaCapacityBuilder_.clear(); + exclusionsBuilder_.clear(); } return this; } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - public context.ContextOuterClass.Constraint_SLA_Capacity.Builder getSlaCapacityBuilder() { - return getSlaCapacityFieldBuilder().getBuilder(); + public context.ContextOuterClass.Constraint_Exclusions.Builder getExclusionsBuilder() { + return getExclusionsFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder() { - if ((constraintCase_ == 6) && (slaCapacityBuilder_ != null)) { - return slaCapacityBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder() { + if ((constraintCase_ == 10) && (exclusionsBuilder_ != null)) { + return exclusionsBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 6) { - return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; + if (constraintCase_ == 10) { + return (context.ContextOuterClass.Constraint_Exclusions) constraint_; } - return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder> getSlaCapacityFieldBuilder() { - if (slaCapacityBuilder_ == null) { - if (!(constraintCase_ == 6)) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder> getExclusionsFieldBuilder() { + if (exclusionsBuilder_ == null) { + if (!(constraintCase_ == 10)) { + constraint_ = context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } - slaCapacityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder>((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_, getParentForChildren(), isClean()); + exclusionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder>((context.ContextOuterClass.Constraint_Exclusions) constraint_, getParentForChildren(), isClean()); constraint_ = null; } - constraintCase_ = 6; + constraintCase_ = 10; onChanged(); - return slaCapacityBuilder_; + return exclusionsBuilder_; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder> slaLatencyBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_QoSProfile, context.ContextOuterClass.Constraint_QoSProfile.Builder, context.ContextOuterClass.Constraint_QoSProfileOrBuilder> qosProfileBuilder_; /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return Whether the slaLatency field is set. + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return Whether the qosProfile field is set. */ @java.lang.Override - public boolean hasSlaLatency() { - return constraintCase_ == 7; + public boolean hasQosProfile() { + return constraintCase_ == 11; } /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return The slaLatency. + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return The qosProfile. */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency() { - if (slaLatencyBuilder_ == null) { - if (constraintCase_ == 7) { - return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; + public context.ContextOuterClass.Constraint_QoSProfile getQosProfile() { + if (qosProfileBuilder_ == null) { + if (constraintCase_ == 11) { + return (context.ContextOuterClass.Constraint_QoSProfile) constraint_; } - return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); } else { - if (constraintCase_ == 7) { - return slaLatencyBuilder_.getMessage(); + if (constraintCase_ == 11) { + return qosProfileBuilder_.getMessage(); } - return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); } } /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - public Builder setSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency value) { - if (slaLatencyBuilder_ == null) { + public Builder setQosProfile(context.ContextOuterClass.Constraint_QoSProfile value) { + if (qosProfileBuilder_ == null) { if (value == null) { throw new NullPointerException(); } constraint_ = value; onChanged(); } else { - slaLatencyBuilder_.setMessage(value); + qosProfileBuilder_.setMessage(value); } - constraintCase_ = 7; + constraintCase_ = 11; return this; } /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - public Builder setSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency.Builder builderForValue) { - if (slaLatencyBuilder_ == null) { + public Builder setQosProfile(context.ContextOuterClass.Constraint_QoSProfile.Builder builderForValue) { + if (qosProfileBuilder_ == null) { constraint_ = builderForValue.build(); onChanged(); } else { - slaLatencyBuilder_.setMessage(builderForValue.build()); + qosProfileBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 7; + constraintCase_ = 11; return this; } /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - public Builder mergeSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency value) { - if (slaLatencyBuilder_ == null) { - if (constraintCase_ == 7 && constraint_ != context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Latency.newBuilder((context.ContextOuterClass.Constraint_SLA_Latency) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeQosProfile(context.ContextOuterClass.Constraint_QoSProfile value) { + if (qosProfileBuilder_ == null) { + if (constraintCase_ == 11 && constraint_ != context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_QoSProfile.newBuilder((context.ContextOuterClass.Constraint_QoSProfile) constraint_).mergeFrom(value).buildPartial(); } else { constraint_ = value; } onChanged(); } else { - if (constraintCase_ == 7) { - slaLatencyBuilder_.mergeFrom(value); + if (constraintCase_ == 11) { + qosProfileBuilder_.mergeFrom(value); } else { - slaLatencyBuilder_.setMessage(value); + qosProfileBuilder_.setMessage(value); } } - constraintCase_ = 7; + constraintCase_ = 11; return this; } /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - public Builder clearSlaLatency() { - if (slaLatencyBuilder_ == null) { - if (constraintCase_ == 7) { + public Builder clearQosProfile() { + if (qosProfileBuilder_ == null) { + if (constraintCase_ == 11) { constraintCase_ = 0; constraint_ = null; onChanged(); } } else { - if (constraintCase_ == 7) { + if (constraintCase_ == 11) { constraintCase_ = 0; constraint_ = null; } - slaLatencyBuilder_.clear(); + qosProfileBuilder_.clear(); } return this; } /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - public context.ContextOuterClass.Constraint_SLA_Latency.Builder getSlaLatencyBuilder() { - return getSlaLatencyFieldBuilder().getBuilder(); + public context.ContextOuterClass.Constraint_QoSProfile.Builder getQosProfileBuilder() { + return getQosProfileFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder() { - if ((constraintCase_ == 7) && (slaLatencyBuilder_ != null)) { - return slaLatencyBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.Constraint_QoSProfileOrBuilder getQosProfileOrBuilder() { + if ((constraintCase_ == 11) && (qosProfileBuilder_ != null)) { + return qosProfileBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 7) { - return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; + if (constraintCase_ == 11) { + return (context.ContextOuterClass.Constraint_QoSProfile) constraint_; } - return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); } } /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder> getSlaLatencyFieldBuilder() { - if (slaLatencyBuilder_ == null) { - if (!(constraintCase_ == 7)) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_QoSProfile, context.ContextOuterClass.Constraint_QoSProfile.Builder, context.ContextOuterClass.Constraint_QoSProfileOrBuilder> getQosProfileFieldBuilder() { + if (qosProfileBuilder_ == null) { + if (!(constraintCase_ == 11)) { + constraint_ = context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); } - slaLatencyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder>((context.ContextOuterClass.Constraint_SLA_Latency) constraint_, getParentForChildren(), isClean()); + qosProfileBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_QoSProfile, context.ContextOuterClass.Constraint_QoSProfile.Builder, context.ContextOuterClass.Constraint_QoSProfileOrBuilder>((context.ContextOuterClass.Constraint_QoSProfile) constraint_, getParentForChildren(), isClean()); constraint_ = null; } - constraintCase_ = 7; - onChanged(); - return slaLatencyBuilder_; + constraintCase_ = 11; + onChanged(); + return qosProfileBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Constraint) + } + + // @@protoc_insertion_point(class_scope:context.Constraint) + private static final context.ContextOuterClass.Constraint DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Constraint(); + } + + public static context.ContextOuterClass.Constraint getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<Constraint> PARSER = new com.google.protobuf.AbstractParser<Constraint>() { + + @java.lang.Override + public Constraint parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser<Constraint> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<Constraint> getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Constraint getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface TeraFlowControllerOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TeraFlowController) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>.context.ContextId context_id = 1;</code> + * @return Whether the contextId field is set. + */ + boolean hasContextId(); + + /** + * <code>.context.ContextId context_id = 1;</code> + * @return The contextId. + */ + context.ContextOuterClass.ContextId getContextId(); + + /** + * <code>.context.ContextId context_id = 1;</code> + */ + context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + + /** + * <code>string ip_address = 2;</code> + * @return The ipAddress. + */ + java.lang.String getIpAddress(); + + /** + * <code>string ip_address = 2;</code> + * @return The bytes for ipAddress. + */ + com.google.protobuf.ByteString getIpAddressBytes(); + + /** + * <code>uint32 port = 3;</code> + * @return The port. + */ + int getPort(); + } + + /** + * <pre> + * ----- Miscellaneous ------------------------------------------------------------------------------------------------- + * </pre> + * + * Protobuf type {@code context.TeraFlowController} + */ + public static final class TeraFlowController extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TeraFlowController) + TeraFlowControllerOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use TeraFlowController.newBuilder() to construct. + private TeraFlowController(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + + private TeraFlowController() { + ipAddress_ = ""; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TeraFlowController(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TeraFlowController_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TeraFlowController.class, context.ContextOuterClass.TeraFlowController.Builder.class); + } + + public static final int CONTEXT_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.ContextId contextId_; + + /** + * <code>.context.ContextId context_id = 1;</code> + * @return Whether the contextId field is set. + */ + @java.lang.Override + public boolean hasContextId() { + return contextId_ != null; + } + + /** + * <code>.context.ContextId context_id = 1;</code> + * @return The contextId. + */ + @java.lang.Override + public context.ContextOuterClass.ContextId getContextId() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + /** + * <code>.context.ContextId context_id = 1;</code> + */ + @java.lang.Override + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + public static final int IP_ADDRESS_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object ipAddress_ = ""; + + /** + * <code>string ip_address = 2;</code> + * @return The ipAddress. + */ + @java.lang.Override + public java.lang.String getIpAddress() { + java.lang.Object ref = ipAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ipAddress_ = s; + return s; + } + } + + /** + * <code>string ip_address = 2;</code> + * @return The bytes for ipAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString getIpAddressBytes() { + java.lang.Object ref = ipAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + ipAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PORT_FIELD_NUMBER = 3; + + private int port_ = 0; + + /** + * <code>uint32 port = 3;</code> + * @return The port. + */ + @java.lang.Override + public int getPort() { + return port_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (contextId_ != null) { + output.writeMessage(1, getContextId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ipAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ipAddress_); + } + if (port_ != 0) { + output.writeUInt32(3, port_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (contextId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ipAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, ipAddress_); + } + if (port_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(3, port_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.TeraFlowController)) { + return super.equals(obj); + } + context.ContextOuterClass.TeraFlowController other = (context.ContextOuterClass.TeraFlowController) obj; + if (hasContextId() != other.hasContextId()) + return false; + if (hasContextId()) { + if (!getContextId().equals(other.getContextId())) + return false; + } + if (!getIpAddress().equals(other.getIpAddress())) + return false; + if (getPort() != other.getPort()) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasContextId()) { + hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; + hash = (53 * hash) + getContextId().hashCode(); + } + hash = (37 * hash) + IP_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getIpAddress().hashCode(); + hash = (37 * hash) + PORT_FIELD_NUMBER; + hash = (53 * hash) + getPort(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TeraFlowController parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TeraFlowController parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.TeraFlowController prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * <pre> + * ----- Miscellaneous ------------------------------------------------------------------------------------------------- + * </pre> + * + * Protobuf type {@code context.TeraFlowController} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.TeraFlowController) + context.ContextOuterClass.TeraFlowControllerOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TeraFlowController_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TeraFlowController.class, context.ContextOuterClass.TeraFlowController.Builder.class); + } + + // Construct using context.ContextOuterClass.TeraFlowController.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; + } + ipAddress_ = ""; + port_ = 0; + return this; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder> slaAvailabilityBuilder_; + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; + } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return Whether the slaAvailability field is set. - */ @java.lang.Override - public boolean hasSlaAvailability() { - return constraintCase_ == 8; + public context.ContextOuterClass.TeraFlowController getDefaultInstanceForType() { + return context.ContextOuterClass.TeraFlowController.getDefaultInstance(); } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return The slaAvailability. - */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability() { - if (slaAvailabilityBuilder_ == null) { - if (constraintCase_ == 8) { - return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); - } else { - if (constraintCase_ == 8) { - return slaAvailabilityBuilder_.getMessage(); - } - return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + public context.ContextOuterClass.TeraFlowController build() { + context.ContextOuterClass.TeraFlowController result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); } + return result; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - public Builder setSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability value) { - if (slaAvailabilityBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - constraint_ = value; - onChanged(); - } else { - slaAvailabilityBuilder_.setMessage(value); + @java.lang.Override + public context.ContextOuterClass.TeraFlowController buildPartial() { + context.ContextOuterClass.TeraFlowController result = new context.ContextOuterClass.TeraFlowController(this); + if (bitField0_ != 0) { + buildPartial0(result); } - constraintCase_ = 8; - return this; + onBuilt(); + return result; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - public Builder setSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability.Builder builderForValue) { - if (slaAvailabilityBuilder_ == null) { - constraint_ = builderForValue.build(); - onChanged(); - } else { - slaAvailabilityBuilder_.setMessage(builderForValue.build()); + private void buildPartial0(context.ContextOuterClass.TeraFlowController result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ipAddress_ = ipAddress_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.port_ = port_; } - constraintCase_ = 8; - return this; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - public Builder mergeSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability value) { - if (slaAvailabilityBuilder_ == null) { - if (constraintCase_ == 8 && constraint_ != context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Availability.newBuilder((context.ContextOuterClass.Constraint_SLA_Availability) constraint_).mergeFrom(value).buildPartial(); - } else { - constraint_ = value; - } - onChanged(); + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.TeraFlowController) { + return mergeFrom((context.ContextOuterClass.TeraFlowController) other); } else { - if (constraintCase_ == 8) { - slaAvailabilityBuilder_.mergeFrom(value); - } else { - slaAvailabilityBuilder_.setMessage(value); - } + super.mergeFrom(other); + return this; } - constraintCase_ = 8; - return this; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - public Builder clearSlaAvailability() { - if (slaAvailabilityBuilder_ == null) { - if (constraintCase_ == 8) { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - } - } else { - if (constraintCase_ == 8) { - constraintCase_ = 0; - constraint_ = null; - } - slaAvailabilityBuilder_.clear(); + public Builder mergeFrom(context.ContextOuterClass.TeraFlowController other) { + if (other == context.ContextOuterClass.TeraFlowController.getDefaultInstance()) + return this; + if (other.hasContextId()) { + mergeContextId(other.getContextId()); + } + if (!other.getIpAddress().isEmpty()) { + ipAddress_ = other.ipAddress_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getPort() != 0) { + setPort(other.getPort()); } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); return this; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - public context.ContextOuterClass.Constraint_SLA_Availability.Builder getSlaAvailabilityBuilder() { - return getSlaAvailabilityFieldBuilder().getBuilder(); + @java.lang.Override + public final boolean isInitialized() { + return true; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder() { - if ((constraintCase_ == 8) && (slaAvailabilityBuilder_ != null)) { - return slaAvailabilityBuilder_.getMessageOrBuilder(); - } else { - if (constraintCase_ == 8) { - return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); } - } - - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder> getSlaAvailabilityFieldBuilder() { - if (slaAvailabilityBuilder_ == null) { - if (!(constraintCase_ == 8)) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + ipAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 24: + { + port_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) } - slaAvailabilityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder>((context.ContextOuterClass.Constraint_SLA_Availability) constraint_, getParentForChildren(), isClean()); - constraint_ = null; + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); } - constraintCase_ = 8; - onChanged(); - return slaAvailabilityBuilder_; + // finally + return this; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder> slaIsolationBuilder_; + private int bitField0_; + + private context.ContextOuterClass.ContextId contextId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return Whether the slaIsolation field is set. + * <code>.context.ContextId context_id = 1;</code> + * @return Whether the contextId field is set. */ - @java.lang.Override - public boolean hasSlaIsolation() { - return constraintCase_ == 9; + public boolean hasContextId() { + return ((bitField0_ & 0x00000001) != 0); } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return The slaIsolation. + * <code>.context.ContextId context_id = 1;</code> + * @return The contextId. */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation() { - if (slaIsolationBuilder_ == null) { - if (constraintCase_ == 9) { - return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + public context.ContextOuterClass.ContextId getContextId() { + if (contextIdBuilder_ == null) { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } else { - if (constraintCase_ == 9) { - return slaIsolationBuilder_.getMessage(); - } - return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + return contextIdBuilder_.getMessage(); } } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - public Builder setSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level value) { - if (slaIsolationBuilder_ == null) { + public Builder setContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - constraint_ = value; - onChanged(); + contextId_ = value; } else { - slaIsolationBuilder_.setMessage(value); + contextIdBuilder_.setMessage(value); } - constraintCase_ = 9; + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - public Builder setSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder builderForValue) { - if (slaIsolationBuilder_ == null) { - constraint_ = builderForValue.build(); - onChanged(); + public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { + if (contextIdBuilder_ == null) { + contextId_ = builderForValue.build(); } else { - slaIsolationBuilder_.setMessage(builderForValue.build()); + contextIdBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 9; + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - public Builder mergeSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level value) { - if (slaIsolationBuilder_ == null) { - if (constraintCase_ == 9 && constraint_ != context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); } else { - constraint_ = value; + contextId_ = value; } - onChanged(); } else { - if (constraintCase_ == 9) { - slaIsolationBuilder_.mergeFrom(value); - } else { - slaIsolationBuilder_.setMessage(value); - } + contextIdBuilder_.mergeFrom(value); } - constraintCase_ = 9; + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - public Builder clearSlaIsolation() { - if (slaIsolationBuilder_ == null) { - if (constraintCase_ == 9) { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - } - } else { - if (constraintCase_ == 9) { - constraintCase_ = 0; - constraint_ = null; - } - slaIsolationBuilder_.clear(); + public Builder clearContextId() { + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; } + onChanged(); return this; } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - public context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder getSlaIsolationBuilder() { - return getSlaIsolationFieldBuilder().getBuilder(); + public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getContextIdFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder() { - if ((constraintCase_ == 9) && (slaIsolationBuilder_ != null)) { - return slaIsolationBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + if (contextIdBuilder_ != null) { + return contextIdBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 9) { - return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder> getSlaIsolationFieldBuilder() { - if (slaIsolationBuilder_ == null) { - if (!(constraintCase_ == 9)) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); - } - slaIsolationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder>((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_, getParentForChildren(), isClean()); - constraint_ = null; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> getContextIdFieldBuilder() { + if (contextIdBuilder_ == null) { + contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>(getContextId(), getParentForChildren(), isClean()); + contextId_ = null; } - constraintCase_ = 9; - onChanged(); - return slaIsolationBuilder_; + return contextIdBuilder_; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder> exclusionsBuilder_; - - /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return Whether the exclusions field is set. - */ - @java.lang.Override - public boolean hasExclusions() { - return constraintCase_ == 10; - } + private java.lang.Object ipAddress_ = ""; /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return The exclusions. + * <code>string ip_address = 2;</code> + * @return The ipAddress. */ - @java.lang.Override - public context.ContextOuterClass.Constraint_Exclusions getExclusions() { - if (exclusionsBuilder_ == null) { - if (constraintCase_ == 10) { - return (context.ContextOuterClass.Constraint_Exclusions) constraint_; - } - return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); + public java.lang.String getIpAddress() { + java.lang.Object ref = ipAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ipAddress_ = s; + return s; } else { - if (constraintCase_ == 10) { - return exclusionsBuilder_.getMessage(); - } - return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); + return (java.lang.String) ref; } } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>string ip_address = 2;</code> + * @return The bytes for ipAddress. */ - public Builder setExclusions(context.ContextOuterClass.Constraint_Exclusions value) { - if (exclusionsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - constraint_ = value; - onChanged(); + public com.google.protobuf.ByteString getIpAddressBytes() { + java.lang.Object ref = ipAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + ipAddress_ = b; + return b; } else { - exclusionsBuilder_.setMessage(value); + return (com.google.protobuf.ByteString) ref; } - constraintCase_ = 10; - return this; } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>string ip_address = 2;</code> + * @param value The ipAddress to set. + * @return This builder for chaining. */ - public Builder setExclusions(context.ContextOuterClass.Constraint_Exclusions.Builder builderForValue) { - if (exclusionsBuilder_ == null) { - constraint_ = builderForValue.build(); - onChanged(); - } else { - exclusionsBuilder_.setMessage(builderForValue.build()); + public Builder setIpAddress(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } - constraintCase_ = 10; + ipAddress_ = value; + bitField0_ |= 0x00000002; + onChanged(); return this; } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>string ip_address = 2;</code> + * @return This builder for chaining. */ - public Builder mergeExclusions(context.ContextOuterClass.Constraint_Exclusions value) { - if (exclusionsBuilder_ == null) { - if (constraintCase_ == 10 && constraint_ != context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_Exclusions.newBuilder((context.ContextOuterClass.Constraint_Exclusions) constraint_).mergeFrom(value).buildPartial(); - } else { - constraint_ = value; - } - onChanged(); - } else { - if (constraintCase_ == 10) { - exclusionsBuilder_.mergeFrom(value); - } else { - exclusionsBuilder_.setMessage(value); - } - } - constraintCase_ = 10; + public Builder clearIpAddress() { + ipAddress_ = getDefaultInstance().getIpAddress(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); return this; } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>string ip_address = 2;</code> + * @param value The bytes for ipAddress to set. + * @return This builder for chaining. */ - public Builder clearExclusions() { - if (exclusionsBuilder_ == null) { - if (constraintCase_ == 10) { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - } - } else { - if (constraintCase_ == 10) { - constraintCase_ = 0; - constraint_ = null; - } - exclusionsBuilder_.clear(); + public Builder setIpAddressBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ipAddress_ = value; + bitField0_ |= 0x00000002; + onChanged(); return this; } + private int port_; + /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>uint32 port = 3;</code> + * @return The port. */ - public context.ContextOuterClass.Constraint_Exclusions.Builder getExclusionsBuilder() { - return getExclusionsFieldBuilder().getBuilder(); + @java.lang.Override + public int getPort() { + return port_; } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder() { - if ((constraintCase_ == 10) && (exclusionsBuilder_ != null)) { - return exclusionsBuilder_.getMessageOrBuilder(); - } else { - if (constraintCase_ == 10) { - return (context.ContextOuterClass.Constraint_Exclusions) constraint_; - } - return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); - } + * <code>uint32 port = 3;</code> + * @param value The port to set. + * @return This builder for chaining. + */ + public Builder setPort(int value) { + port_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>uint32 port = 3;</code> + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder> getExclusionsFieldBuilder() { - if (exclusionsBuilder_ == null) { - if (!(constraintCase_ == 10)) { - constraint_ = context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); - } - exclusionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder>((context.ContextOuterClass.Constraint_Exclusions) constraint_, getParentForChildren(), isClean()); - constraint_ = null; - } - constraintCase_ = 10; + public Builder clearPort() { + bitField0_ = (bitField0_ & ~0x00000004); + port_ = 0; onChanged(); - return exclusionsBuilder_; + return this; } @java.lang.Override @@ -67900,24 +71867,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.Constraint) + // @@protoc_insertion_point(builder_scope:context.TeraFlowController) } - // @@protoc_insertion_point(class_scope:context.Constraint) - private static final context.ContextOuterClass.Constraint DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.TeraFlowController) + private static final context.ContextOuterClass.TeraFlowController DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.Constraint(); + DEFAULT_INSTANCE = new context.ContextOuterClass.TeraFlowController(); } - public static context.ContextOuterClass.Constraint getDefaultInstance() { + public static context.ContextOuterClass.TeraFlowController getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<Constraint> PARSER = new com.google.protobuf.AbstractParser<Constraint>() { + private static final com.google.protobuf.Parser<TeraFlowController> PARSER = new com.google.protobuf.AbstractParser<TeraFlowController>() { @java.lang.Override - public Constraint parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public TeraFlowController parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -67932,22 +71899,22 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<Constraint> parser() { + public static com.google.protobuf.Parser<TeraFlowController> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<Constraint> getParserForType() { + public com.google.protobuf.Parser<TeraFlowController> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.Constraint getDefaultInstanceForType() { + public context.ContextOuterClass.TeraFlowController getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface TeraFlowControllerOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TeraFlowController) + public interface AuthenticationResultOrBuilder extends // @@protoc_insertion_point(interface_extends:context.AuthenticationResult) com.google.protobuf.MessageOrBuilder { /** @@ -67968,58 +71935,41 @@ public final class ContextOuterClass { context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); /** - * <code>string ip_address = 2;</code> - * @return The ipAddress. - */ - java.lang.String getIpAddress(); - - /** - * <code>string ip_address = 2;</code> - * @return The bytes for ipAddress. - */ - com.google.protobuf.ByteString getIpAddressBytes(); - - /** - * <code>uint32 port = 3;</code> - * @return The port. + * <code>bool authenticated = 2;</code> + * @return The authenticated. */ - int getPort(); + boolean getAuthenticated(); } /** - * <pre> - * ----- Miscellaneous ------------------------------------------------------------------------------------------------- - * </pre> - * - * Protobuf type {@code context.TeraFlowController} + * Protobuf type {@code context.AuthenticationResult} */ - public static final class TeraFlowController extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TeraFlowController) - TeraFlowControllerOrBuilder { + public static final class AuthenticationResult extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.AuthenticationResult) + AuthenticationResultOrBuilder { private static final long serialVersionUID = 0L; - // Use TeraFlowController.newBuilder() to construct. - private TeraFlowController(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use AuthenticationResult.newBuilder() to construct. + private AuthenticationResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private TeraFlowController() { - ipAddress_ = ""; + private AuthenticationResult() { } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new TeraFlowController(); + return new AuthenticationResult(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; + return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TeraFlowController_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TeraFlowController.class, context.ContextOuterClass.TeraFlowController.Builder.class); + return context.ContextOuterClass.internal_static_context_AuthenticationResult_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.AuthenticationResult.class, context.ContextOuterClass.AuthenticationResult.Builder.class); } public static final int CONTEXT_ID_FIELD_NUMBER = 1; @@ -68052,55 +72002,17 @@ public final class ContextOuterClass { return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } - public static final int IP_ADDRESS_FIELD_NUMBER = 2; - - @SuppressWarnings("serial") - private volatile java.lang.Object ipAddress_ = ""; - - /** - * <code>string ip_address = 2;</code> - * @return The ipAddress. - */ - @java.lang.Override - public java.lang.String getIpAddress() { - java.lang.Object ref = ipAddress_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - ipAddress_ = s; - return s; - } - } - - /** - * <code>string ip_address = 2;</code> - * @return The bytes for ipAddress. - */ - @java.lang.Override - public com.google.protobuf.ByteString getIpAddressBytes() { - java.lang.Object ref = ipAddress_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - ipAddress_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - public static final int PORT_FIELD_NUMBER = 3; + public static final int AUTHENTICATED_FIELD_NUMBER = 2; - private int port_ = 0; + private boolean authenticated_ = false; /** - * <code>uint32 port = 3;</code> - * @return The port. + * <code>bool authenticated = 2;</code> + * @return The authenticated. */ @java.lang.Override - public int getPort() { - return port_; + public boolean getAuthenticated() { + return authenticated_; } private byte memoizedIsInitialized = -1; @@ -68121,11 +72033,8 @@ public final class ContextOuterClass { if (contextId_ != null) { output.writeMessage(1, getContextId()); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ipAddress_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ipAddress_); - } - if (port_ != 0) { - output.writeUInt32(3, port_); + if (authenticated_ != false) { + output.writeBool(2, authenticated_); } getUnknownFields().writeTo(output); } @@ -68139,11 +72048,8 @@ public final class ContextOuterClass { if (contextId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ipAddress_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, ipAddress_); - } - if (port_ != 0) { - size += com.google.protobuf.CodedOutputStream.computeUInt32Size(3, port_); + if (authenticated_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, authenticated_); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -68155,19 +72061,17 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.TeraFlowController)) { + if (!(obj instanceof context.ContextOuterClass.AuthenticationResult)) { return super.equals(obj); } - context.ContextOuterClass.TeraFlowController other = (context.ContextOuterClass.TeraFlowController) obj; + context.ContextOuterClass.AuthenticationResult other = (context.ContextOuterClass.AuthenticationResult) obj; if (hasContextId() != other.hasContextId()) return false; if (hasContextId()) { if (!getContextId().equals(other.getContextId())) return false; } - if (!getIpAddress().equals(other.getIpAddress())) - return false; - if (getPort() != other.getPort()) + if (getAuthenticated() != other.getAuthenticated()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; @@ -68185,60 +72089,58 @@ public final class ContextOuterClass { hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; hash = (53 * hash) + getContextId().hashCode(); } - hash = (37 * hash) + IP_ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getIpAddress().hashCode(); - hash = (37 * hash) + PORT_FIELD_NUMBER; - hash = (53 * hash) + getPort(); + hash = (37 * hash) + AUTHENTICATED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAuthenticated()); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.TeraFlowController parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.TeraFlowController parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.TeraFlowController parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.TeraFlowController parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.TeraFlowController parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.TeraFlowController parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.TeraFlowController parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.TeraFlowController parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -68251,7 +72153,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.TeraFlowController prototype) { + public static Builder newBuilder(context.ContextOuterClass.AuthenticationResult prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -68267,25 +72169,21 @@ public final class ContextOuterClass { } /** - * <pre> - * ----- Miscellaneous ------------------------------------------------------------------------------------------------- - * </pre> - * - * Protobuf type {@code context.TeraFlowController} + * Protobuf type {@code context.AuthenticationResult} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.TeraFlowController) - context.ContextOuterClass.TeraFlowControllerOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.AuthenticationResult) + context.ContextOuterClass.AuthenticationResultOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; + return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TeraFlowController_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TeraFlowController.class, context.ContextOuterClass.TeraFlowController.Builder.class); + return context.ContextOuterClass.internal_static_context_AuthenticationResult_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.AuthenticationResult.class, context.ContextOuterClass.AuthenticationResult.Builder.class); } - // Construct using context.ContextOuterClass.TeraFlowController.newBuilder() + // Construct using context.ContextOuterClass.AuthenticationResult.newBuilder() private Builder() { } @@ -68302,24 +72200,23 @@ public final class ContextOuterClass { contextIdBuilder_.dispose(); contextIdBuilder_ = null; } - ipAddress_ = ""; - port_ = 0; + authenticated_ = false; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; + return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; } @java.lang.Override - public context.ContextOuterClass.TeraFlowController getDefaultInstanceForType() { - return context.ContextOuterClass.TeraFlowController.getDefaultInstance(); + public context.ContextOuterClass.AuthenticationResult getDefaultInstanceForType() { + return context.ContextOuterClass.AuthenticationResult.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.TeraFlowController build() { - context.ContextOuterClass.TeraFlowController result = buildPartial(); + public context.ContextOuterClass.AuthenticationResult build() { + context.ContextOuterClass.AuthenticationResult result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -68327,8 +72224,8 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.TeraFlowController buildPartial() { - context.ContextOuterClass.TeraFlowController result = new context.ContextOuterClass.TeraFlowController(this); + public context.ContextOuterClass.AuthenticationResult buildPartial() { + context.ContextOuterClass.AuthenticationResult result = new context.ContextOuterClass.AuthenticationResult(this); if (bitField0_ != 0) { buildPartial0(result); } @@ -68336,42 +72233,34 @@ public final class ContextOuterClass { return result; } - private void buildPartial0(context.ContextOuterClass.TeraFlowController result) { + private void buildPartial0(context.ContextOuterClass.AuthenticationResult result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); } if (((from_bitField0_ & 0x00000002) != 0)) { - result.ipAddress_ = ipAddress_; - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.port_ = port_; + result.authenticated_ = authenticated_; } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.TeraFlowController) { - return mergeFrom((context.ContextOuterClass.TeraFlowController) other); + if (other instanceof context.ContextOuterClass.AuthenticationResult) { + return mergeFrom((context.ContextOuterClass.AuthenticationResult) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.TeraFlowController other) { - if (other == context.ContextOuterClass.TeraFlowController.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.AuthenticationResult other) { + if (other == context.ContextOuterClass.AuthenticationResult.getDefaultInstance()) return this; if (other.hasContextId()) { mergeContextId(other.getContextId()); } - if (!other.getIpAddress().isEmpty()) { - ipAddress_ = other.ipAddress_; - bitField0_ |= 0x00000002; - onChanged(); - } - if (other.getPort() != 0) { - setPort(other.getPort()); + if (other.getAuthenticated() != false) { + setAuthenticated(other.getAuthenticated()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); @@ -68403,20 +72292,13 @@ public final class ContextOuterClass { break; } // case 10 - case 18: + case 16: { - ipAddress_ = input.readStringRequireUtf8(); + authenticated_ = input.readBool(); bitField0_ |= 0x00000002; break; } - // case 18 - case 24: - { - port_ = input.readUInt32(); - bitField0_ |= 0x00000004; - break; - } - // case 24 + // case 16 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -68558,111 +72440,36 @@ public final class ContextOuterClass { return contextIdBuilder_; } - private java.lang.Object ipAddress_ = ""; - - /** - * <code>string ip_address = 2;</code> - * @return The ipAddress. - */ - public java.lang.String getIpAddress() { - java.lang.Object ref = ipAddress_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - ipAddress_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } + private boolean authenticated_; /** - * <code>string ip_address = 2;</code> - * @return The bytes for ipAddress. + * <code>bool authenticated = 2;</code> + * @return The authenticated. */ - public com.google.protobuf.ByteString getIpAddressBytes() { - java.lang.Object ref = ipAddress_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - ipAddress_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + @java.lang.Override + public boolean getAuthenticated() { + return authenticated_; } /** - * <code>string ip_address = 2;</code> - * @param value The ipAddress to set. + * <code>bool authenticated = 2;</code> + * @param value The authenticated to set. * @return This builder for chaining. */ - public Builder setIpAddress(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ipAddress_ = value; + public Builder setAuthenticated(boolean value) { + authenticated_ = value; bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>string ip_address = 2;</code> + * <code>bool authenticated = 2;</code> * @return This builder for chaining. */ - public Builder clearIpAddress() { - ipAddress_ = getDefaultInstance().getIpAddress(); + public Builder clearAuthenticated() { bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; - } - - /** - * <code>string ip_address = 2;</code> - * @param value The bytes for ipAddress to set. - * @return This builder for chaining. - */ - public Builder setIpAddressBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ipAddress_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; - } - - private int port_; - - /** - * <code>uint32 port = 3;</code> - * @return The port. - */ - @java.lang.Override - public int getPort() { - return port_; - } - - /** - * <code>uint32 port = 3;</code> - * @param value The port to set. - * @return This builder for chaining. - */ - public Builder setPort(int value) { - port_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; - } - - /** - * <code>uint32 port = 3;</code> - * @return This builder for chaining. - */ - public Builder clearPort() { - bitField0_ = (bitField0_ & ~0x00000004); - port_ = 0; + authenticated_ = false; onChanged(); return this; } @@ -68676,24 +72483,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.TeraFlowController) + // @@protoc_insertion_point(builder_scope:context.AuthenticationResult) } - // @@protoc_insertion_point(class_scope:context.TeraFlowController) - private static final context.ContextOuterClass.TeraFlowController DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.AuthenticationResult) + private static final context.ContextOuterClass.AuthenticationResult DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.TeraFlowController(); + DEFAULT_INSTANCE = new context.ContextOuterClass.AuthenticationResult(); } - public static context.ContextOuterClass.TeraFlowController getDefaultInstance() { + public static context.ContextOuterClass.AuthenticationResult getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<TeraFlowController> PARSER = new com.google.protobuf.AbstractParser<TeraFlowController>() { + private static final com.google.protobuf.Parser<AuthenticationResult> PARSER = new com.google.protobuf.AbstractParser<AuthenticationResult>() { @java.lang.Override - public TeraFlowController parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public AuthenticationResult parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -68708,120 +72515,109 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<TeraFlowController> parser() { + public static com.google.protobuf.Parser<AuthenticationResult> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<TeraFlowController> getParserForType() { + public com.google.protobuf.Parser<AuthenticationResult> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.TeraFlowController getDefaultInstanceForType() { + public context.ContextOuterClass.AuthenticationResult getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface AuthenticationResultOrBuilder extends // @@protoc_insertion_point(interface_extends:context.AuthenticationResult) + public interface OpticalConfigIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfigId) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.ContextId context_id = 1;</code> - * @return Whether the contextId field is set. - */ - boolean hasContextId(); - - /** - * <code>.context.ContextId context_id = 1;</code> - * @return The contextId. - */ - context.ContextOuterClass.ContextId getContextId(); - - /** - * <code>.context.ContextId context_id = 1;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @return The opticalconfigUuid. */ - context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + java.lang.String getOpticalconfigUuid(); /** - * <code>bool authenticated = 2;</code> - * @return The authenticated. + * <code>string opticalconfig_uuid = 1;</code> + * @return The bytes for opticalconfigUuid. */ - boolean getAuthenticated(); + com.google.protobuf.ByteString getOpticalconfigUuidBytes(); } /** - * Protobuf type {@code context.AuthenticationResult} + * <pre> + * ---------------- Experimental ------------------------ + * </pre> + * + * Protobuf type {@code context.OpticalConfigId} */ - public static final class AuthenticationResult extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.AuthenticationResult) - AuthenticationResultOrBuilder { + public static final class OpticalConfigId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfigId) + OpticalConfigIdOrBuilder { private static final long serialVersionUID = 0L; - // Use AuthenticationResult.newBuilder() to construct. - private AuthenticationResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalConfigId.newBuilder() to construct. + private OpticalConfigId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private AuthenticationResult() { + private OpticalConfigId() { + opticalconfigUuid_ = ""; } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new AuthenticationResult(); + return new OpticalConfigId(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_AuthenticationResult_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.AuthenticationResult.class, context.ContextOuterClass.AuthenticationResult.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigId.class, context.ContextOuterClass.OpticalConfigId.Builder.class); } - public static final int CONTEXT_ID_FIELD_NUMBER = 1; - - private context.ContextOuterClass.ContextId contextId_; - - /** - * <code>.context.ContextId context_id = 1;</code> - * @return Whether the contextId field is set. - */ - @java.lang.Override - public boolean hasContextId() { - return contextId_ != null; - } + public static final int OPTICALCONFIG_UUID_FIELD_NUMBER = 1; - /** - * <code>.context.ContextId context_id = 1;</code> - * @return The contextId. - */ - @java.lang.Override - public context.ContextOuterClass.ContextId getContextId() { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } + @SuppressWarnings("serial") + private volatile java.lang.Object opticalconfigUuid_ = ""; /** - * <code>.context.ContextId context_id = 1;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @return The opticalconfigUuid. */ @java.lang.Override - public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + public java.lang.String getOpticalconfigUuid() { + java.lang.Object ref = opticalconfigUuid_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + opticalconfigUuid_ = s; + return s; + } } - public static final int AUTHENTICATED_FIELD_NUMBER = 2; - - private boolean authenticated_ = false; - /** - * <code>bool authenticated = 2;</code> - * @return The authenticated. + * <code>string opticalconfig_uuid = 1;</code> + * @return The bytes for opticalconfigUuid. */ @java.lang.Override - public boolean getAuthenticated() { - return authenticated_; + public com.google.protobuf.ByteString getOpticalconfigUuidBytes() { + java.lang.Object ref = opticalconfigUuid_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + opticalconfigUuid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } private byte memoizedIsInitialized = -1; @@ -68839,11 +72635,8 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (contextId_ != null) { - output.writeMessage(1, getContextId()); - } - if (authenticated_ != false) { - output.writeBool(2, authenticated_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(opticalconfigUuid_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, opticalconfigUuid_); } getUnknownFields().writeTo(output); } @@ -68854,11 +72647,8 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (contextId_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); - } - if (authenticated_ != false) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, authenticated_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(opticalconfigUuid_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, opticalconfigUuid_); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -68870,17 +72660,11 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.AuthenticationResult)) { + if (!(obj instanceof context.ContextOuterClass.OpticalConfigId)) { return super.equals(obj); } - context.ContextOuterClass.AuthenticationResult other = (context.ContextOuterClass.AuthenticationResult) obj; - if (hasContextId() != other.hasContextId()) - return false; - if (hasContextId()) { - if (!getContextId().equals(other.getContextId())) - return false; - } - if (getAuthenticated() != other.getAuthenticated()) + context.ContextOuterClass.OpticalConfigId other = (context.ContextOuterClass.OpticalConfigId) obj; + if (!getOpticalconfigUuid().equals(other.getOpticalconfigUuid())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; @@ -68894,62 +72678,58 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (hasContextId()) { - hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; - hash = (53 * hash) + getContextId().hashCode(); - } - hash = (37 * hash) + AUTHENTICATED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAuthenticated()); + hash = (37 * hash) + OPTICALCONFIG_UUID_FIELD_NUMBER; + hash = (53 * hash) + getOpticalconfigUuid().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.AuthenticationResult parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.AuthenticationResult parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.AuthenticationResult parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -68962,7 +72742,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.AuthenticationResult prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalConfigId prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -68978,21 +72758,25 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.AuthenticationResult} + * <pre> + * ---------------- Experimental ------------------------ + * </pre> + * + * Protobuf type {@code context.OpticalConfigId} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.AuthenticationResult) - context.ContextOuterClass.AuthenticationResultOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfigId) + context.ContextOuterClass.OpticalConfigIdOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_AuthenticationResult_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.AuthenticationResult.class, context.ContextOuterClass.AuthenticationResult.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigId.class, context.ContextOuterClass.OpticalConfigId.Builder.class); } - // Construct using context.ContextOuterClass.AuthenticationResult.newBuilder() + // Construct using context.ContextOuterClass.OpticalConfigId.newBuilder() private Builder() { } @@ -69004,28 +72788,23 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - contextId_ = null; - if (contextIdBuilder_ != null) { - contextIdBuilder_.dispose(); - contextIdBuilder_ = null; - } - authenticated_ = false; + opticalconfigUuid_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; } @java.lang.Override - public context.ContextOuterClass.AuthenticationResult getDefaultInstanceForType() { - return context.ContextOuterClass.AuthenticationResult.getDefaultInstance(); + public context.ContextOuterClass.OpticalConfigId getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalConfigId.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.AuthenticationResult build() { - context.ContextOuterClass.AuthenticationResult result = buildPartial(); + public context.ContextOuterClass.OpticalConfigId build() { + context.ContextOuterClass.OpticalConfigId result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -69033,8 +72812,8 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.AuthenticationResult buildPartial() { - context.ContextOuterClass.AuthenticationResult result = new context.ContextOuterClass.AuthenticationResult(this); + public context.ContextOuterClass.OpticalConfigId buildPartial() { + context.ContextOuterClass.OpticalConfigId result = new context.ContextOuterClass.OpticalConfigId(this); if (bitField0_ != 0) { buildPartial0(result); } @@ -69042,34 +72821,30 @@ public final class ContextOuterClass { return result; } - private void buildPartial0(context.ContextOuterClass.AuthenticationResult result) { + private void buildPartial0(context.ContextOuterClass.OpticalConfigId result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { - result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.authenticated_ = authenticated_; + result.opticalconfigUuid_ = opticalconfigUuid_; } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.AuthenticationResult) { - return mergeFrom((context.ContextOuterClass.AuthenticationResult) other); + if (other instanceof context.ContextOuterClass.OpticalConfigId) { + return mergeFrom((context.ContextOuterClass.OpticalConfigId) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.AuthenticationResult other) { - if (other == context.ContextOuterClass.AuthenticationResult.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalConfigId other) { + if (other == context.ContextOuterClass.OpticalConfigId.getDefaultInstance()) return this; - if (other.hasContextId()) { - mergeContextId(other.getContextId()); - } - if (other.getAuthenticated() != false) { - setAuthenticated(other.getAuthenticated()); + if (!other.getOpticalconfigUuid().isEmpty()) { + opticalconfigUuid_ = other.opticalconfigUuid_; + bitField0_ |= 0x00000001; + onChanged(); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); @@ -69096,18 +72871,11 @@ public final class ContextOuterClass { break; case 10: { - input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + opticalconfigUuid_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } // case 10 - case 16: - { - authenticated_ = input.readBool(); - bitField0_ |= 0x00000002; - break; - } - // case 16 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -69131,154 +72899,77 @@ public final class ContextOuterClass { private int bitField0_; - private context.ContextOuterClass.ContextId contextId_; - - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; - - /** - * <code>.context.ContextId context_id = 1;</code> - * @return Whether the contextId field is set. - */ - public boolean hasContextId() { - return ((bitField0_ & 0x00000001) != 0); - } - - /** - * <code>.context.ContextId context_id = 1;</code> - * @return The contextId. - */ - public context.ContextOuterClass.ContextId getContextId() { - if (contextIdBuilder_ == null) { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } else { - return contextIdBuilder_.getMessage(); - } - } + private java.lang.Object opticalconfigUuid_ = ""; /** - * <code>.context.ContextId context_id = 1;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @return The opticalconfigUuid. */ - public Builder setContextId(context.ContextOuterClass.ContextId value) { - if (contextIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - contextId_ = value; + public java.lang.String getOpticalconfigUuid() { + java.lang.Object ref = opticalconfigUuid_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + opticalconfigUuid_ = s; + return s; } else { - contextIdBuilder_.setMessage(value); + return (java.lang.String) ref; } - bitField0_ |= 0x00000001; - onChanged(); - return this; } /** - * <code>.context.ContextId context_id = 1;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @return The bytes for opticalconfigUuid. */ - public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { - if (contextIdBuilder_ == null) { - contextId_ = builderForValue.build(); + public com.google.protobuf.ByteString getOpticalconfigUuidBytes() { + java.lang.Object ref = opticalconfigUuid_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + opticalconfigUuid_ = b; + return b; } else { - contextIdBuilder_.setMessage(builderForValue.build()); + return (com.google.protobuf.ByteString) ref; } - bitField0_ |= 0x00000001; - onChanged(); - return this; } /** - * <code>.context.ContextId context_id = 1;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @param value The opticalconfigUuid to set. + * @return This builder for chaining. */ - public Builder mergeContextId(context.ContextOuterClass.ContextId value) { - if (contextIdBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { - getContextIdBuilder().mergeFrom(value); - } else { - contextId_ = value; - } - } else { - contextIdBuilder_.mergeFrom(value); + public Builder setOpticalconfigUuid(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } + opticalconfigUuid_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** - * <code>.context.ContextId context_id = 1;</code> - */ - public Builder clearContextId() { - bitField0_ = (bitField0_ & ~0x00000001); - contextId_ = null; - if (contextIdBuilder_ != null) { - contextIdBuilder_.dispose(); - contextIdBuilder_ = null; - } - onChanged(); - return this; - } - - /** - * <code>.context.ContextId context_id = 1;</code> - */ - public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getContextIdFieldBuilder().getBuilder(); - } - - /** - * <code>.context.ContextId context_id = 1;</code> - */ - public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - if (contextIdBuilder_ != null) { - return contextIdBuilder_.getMessageOrBuilder(); - } else { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } - } - - /** - * <code>.context.ContextId context_id = 1;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> getContextIdFieldBuilder() { - if (contextIdBuilder_ == null) { - contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>(getContextId(), getParentForChildren(), isClean()); - contextId_ = null; - } - return contextIdBuilder_; - } - - private boolean authenticated_; - - /** - * <code>bool authenticated = 2;</code> - * @return The authenticated. - */ - @java.lang.Override - public boolean getAuthenticated() { - return authenticated_; - } - - /** - * <code>bool authenticated = 2;</code> - * @param value The authenticated to set. + * <code>string opticalconfig_uuid = 1;</code> * @return This builder for chaining. */ - public Builder setAuthenticated(boolean value) { - authenticated_ = value; - bitField0_ |= 0x00000002; + public Builder clearOpticalconfigUuid() { + opticalconfigUuid_ = getDefaultInstance().getOpticalconfigUuid(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** - * <code>bool authenticated = 2;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @param value The bytes for opticalconfigUuid to set. * @return This builder for chaining. */ - public Builder clearAuthenticated() { - bitField0_ = (bitField0_ & ~0x00000002); - authenticated_ = false; + public Builder setOpticalconfigUuidBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + opticalconfigUuid_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -69292,24 +72983,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.AuthenticationResult) + // @@protoc_insertion_point(builder_scope:context.OpticalConfigId) } - // @@protoc_insertion_point(class_scope:context.AuthenticationResult) - private static final context.ContextOuterClass.AuthenticationResult DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalConfigId) + private static final context.ContextOuterClass.OpticalConfigId DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.AuthenticationResult(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfigId(); } - public static context.ContextOuterClass.AuthenticationResult getDefaultInstance() { + public static context.ContextOuterClass.OpticalConfigId getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<AuthenticationResult> PARSER = new com.google.protobuf.AbstractParser<AuthenticationResult>() { + private static final com.google.protobuf.Parser<OpticalConfigId> PARSER = new com.google.protobuf.AbstractParser<OpticalConfigId>() { @java.lang.Override - public AuthenticationResult parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public OpticalConfigId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -69324,111 +73015,201 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<AuthenticationResult> parser() { + public static com.google.protobuf.Parser<OpticalConfigId> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<AuthenticationResult> getParserForType() { + public com.google.protobuf.Parser<OpticalConfigId> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.AuthenticationResult getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalConfigId getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalConfigIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfigId) + public interface OpticalConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfig) com.google.protobuf.MessageOrBuilder { /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The opticalconfigUuid. + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return Whether the opticalconfigId field is set. */ - java.lang.String getOpticalconfigUuid(); + boolean hasOpticalconfigId(); /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The bytes for opticalconfigUuid. + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return The opticalconfigId. */ - com.google.protobuf.ByteString getOpticalconfigUuidBytes(); + context.ContextOuterClass.OpticalConfigId getOpticalconfigId(); + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder(); + + /** + * <code>string config = 2;</code> + * @return The config. + */ + java.lang.String getConfig(); + + /** + * <code>string config = 2;</code> + * @return The bytes for config. + */ + com.google.protobuf.ByteString getConfigBytes(); + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return Whether the deviceId field is set. + */ + boolean hasDeviceId(); + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return The deviceId. + */ + context.ContextOuterClass.DeviceId getDeviceId(); + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder(); } /** - * <pre> - * ---------------- Experimental ------------------------ - * </pre> - * - * Protobuf type {@code context.OpticalConfigId} + * Protobuf type {@code context.OpticalConfig} */ - public static final class OpticalConfigId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfigId) - OpticalConfigIdOrBuilder { + public static final class OpticalConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfig) + OpticalConfigOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalConfigId.newBuilder() to construct. - private OpticalConfigId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalConfig.newBuilder() to construct. + private OpticalConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalConfigId() { - opticalconfigUuid_ = ""; + private OpticalConfig() { + config_ = ""; } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalConfigId(); + return new OpticalConfig(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfigId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigId.class, context.ContextOuterClass.OpticalConfigId.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfig.class, context.ContextOuterClass.OpticalConfig.Builder.class); } - public static final int OPTICALCONFIG_UUID_FIELD_NUMBER = 1; + public static final int OPTICALCONFIG_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return Whether the opticalconfigId field is set. + */ + @java.lang.Override + public boolean hasOpticalconfigId() { + return opticalconfigId_ != null; + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return The opticalconfigId. + */ + @java.lang.Override + public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + @java.lang.Override + public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + } + + public static final int CONFIG_FIELD_NUMBER = 2; @SuppressWarnings("serial") - private volatile java.lang.Object opticalconfigUuid_ = ""; + private volatile java.lang.Object config_ = ""; /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The opticalconfigUuid. + * <code>string config = 2;</code> + * @return The config. */ @java.lang.Override - public java.lang.String getOpticalconfigUuid() { - java.lang.Object ref = opticalconfigUuid_; + public java.lang.String getConfig() { + java.lang.Object ref = config_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - opticalconfigUuid_ = s; + config_ = s; return s; } } /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The bytes for opticalconfigUuid. + * <code>string config = 2;</code> + * @return The bytes for config. */ @java.lang.Override - public com.google.protobuf.ByteString getOpticalconfigUuidBytes() { - java.lang.Object ref = opticalconfigUuid_; + public com.google.protobuf.ByteString getConfigBytes() { + java.lang.Object ref = config_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - opticalconfigUuid_ = b; + config_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } + public static final int DEVICE_ID_FIELD_NUMBER = 3; + + private context.ContextOuterClass.DeviceId deviceId_; + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return Whether the deviceId field is set. + */ + @java.lang.Override + public boolean hasDeviceId() { + return deviceId_ != null; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return The deviceId. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceId getDeviceId() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -69444,8 +73225,14 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(opticalconfigUuid_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, opticalconfigUuid_); + if (opticalconfigId_ != null) { + output.writeMessage(1, getOpticalconfigId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(config_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, config_); + } + if (deviceId_ != null) { + output.writeMessage(3, getDeviceId()); } getUnknownFields().writeTo(output); } @@ -69456,8 +73243,14 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(opticalconfigUuid_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, opticalconfigUuid_); + if (opticalconfigId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOpticalconfigId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(config_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, config_); + } + if (deviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getDeviceId()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -69469,12 +73262,24 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalConfigId)) { + if (!(obj instanceof context.ContextOuterClass.OpticalConfig)) { return super.equals(obj); } - context.ContextOuterClass.OpticalConfigId other = (context.ContextOuterClass.OpticalConfigId) obj; - if (!getOpticalconfigUuid().equals(other.getOpticalconfigUuid())) + context.ContextOuterClass.OpticalConfig other = (context.ContextOuterClass.OpticalConfig) obj; + if (hasOpticalconfigId() != other.hasOpticalconfigId()) + return false; + if (hasOpticalconfigId()) { + if (!getOpticalconfigId().equals(other.getOpticalconfigId())) + return false; + } + if (!getConfig().equals(other.getConfig())) + return false; + if (hasDeviceId() != other.hasDeviceId()) return false; + if (hasDeviceId()) { + if (!getDeviceId().equals(other.getDeviceId())) + return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; @@ -69487,58 +73292,66 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + OPTICALCONFIG_UUID_FIELD_NUMBER; - hash = (53 * hash) + getOpticalconfigUuid().hashCode(); + if (hasOpticalconfigId()) { + hash = (37 * hash) + OPTICALCONFIG_ID_FIELD_NUMBER; + hash = (53 * hash) + getOpticalconfigId().hashCode(); + } + hash = (37 * hash) + CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getConfig().hashCode(); + if (hasDeviceId()) { + hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getDeviceId().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalConfigId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -69551,7 +73364,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalConfigId prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalConfig prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -69565,27 +73378,23 @@ public final class ContextOuterClass { Builder builder = new Builder(parent); return builder; } - - /** - * <pre> - * ---------------- Experimental ------------------------ - * </pre> - * - * Protobuf type {@code context.OpticalConfigId} + + /** + * Protobuf type {@code context.OpticalConfig} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfigId) - context.ContextOuterClass.OpticalConfigIdOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfig) + context.ContextOuterClass.OpticalConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfigId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigId.class, context.ContextOuterClass.OpticalConfigId.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfig.class, context.ContextOuterClass.OpticalConfig.Builder.class); } - // Construct using context.ContextOuterClass.OpticalConfigId.newBuilder() + // Construct using context.ContextOuterClass.OpticalConfig.newBuilder() private Builder() { } @@ -69597,23 +73406,33 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - opticalconfigUuid_ = ""; + opticalconfigId_ = null; + if (opticalconfigIdBuilder_ != null) { + opticalconfigIdBuilder_.dispose(); + opticalconfigIdBuilder_ = null; + } + config_ = ""; + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalConfigId getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalConfigId.getDefaultInstance(); + public context.ContextOuterClass.OpticalConfig getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalConfig.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalConfigId build() { - context.ContextOuterClass.OpticalConfigId result = buildPartial(); + public context.ContextOuterClass.OpticalConfig build() { + context.ContextOuterClass.OpticalConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -69621,8 +73440,8 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalConfigId buildPartial() { - context.ContextOuterClass.OpticalConfigId result = new context.ContextOuterClass.OpticalConfigId(this); + public context.ContextOuterClass.OpticalConfig buildPartial() { + context.ContextOuterClass.OpticalConfig result = new context.ContextOuterClass.OpticalConfig(this); if (bitField0_ != 0) { buildPartial0(result); } @@ -69630,31 +73449,43 @@ public final class ContextOuterClass { return result; } - private void buildPartial0(context.ContextOuterClass.OpticalConfigId result) { + private void buildPartial0(context.ContextOuterClass.OpticalConfig result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { - result.opticalconfigUuid_ = opticalconfigUuid_; + result.opticalconfigId_ = opticalconfigIdBuilder_ == null ? opticalconfigId_ : opticalconfigIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.config_ = config_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build(); } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalConfigId) { - return mergeFrom((context.ContextOuterClass.OpticalConfigId) other); + if (other instanceof context.ContextOuterClass.OpticalConfig) { + return mergeFrom((context.ContextOuterClass.OpticalConfig) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalConfigId other) { - if (other == context.ContextOuterClass.OpticalConfigId.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalConfig other) { + if (other == context.ContextOuterClass.OpticalConfig.getDefaultInstance()) return this; - if (!other.getOpticalconfigUuid().isEmpty()) { - opticalconfigUuid_ = other.opticalconfigUuid_; - bitField0_ |= 0x00000001; + if (other.hasOpticalconfigId()) { + mergeOpticalconfigId(other.getOpticalconfigId()); + } + if (!other.getConfig().isEmpty()) { + config_ = other.config_; + bitField0_ |= 0x00000002; onChanged(); } + if (other.hasDeviceId()) { + mergeDeviceId(other.getDeviceId()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -69680,11 +73511,25 @@ public final class ContextOuterClass { break; case 10: { - opticalconfigUuid_ = input.readStringRequireUtf8(); + input.readMessage(getOpticalconfigIdFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000001; break; } // case 10 + case 18: + { + config_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -69708,18 +73553,136 @@ public final class ContextOuterClass { private int bitField0_; - private java.lang.Object opticalconfigUuid_ = ""; + private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> opticalconfigIdBuilder_; /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The opticalconfigUuid. + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return Whether the opticalconfigId field is set. */ - public java.lang.String getOpticalconfigUuid() { - java.lang.Object ref = opticalconfigUuid_; + public boolean hasOpticalconfigId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return The opticalconfigId. + */ + public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { + if (opticalconfigIdBuilder_ == null) { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + } else { + return opticalconfigIdBuilder_.getMessage(); + } + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { + if (opticalconfigIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + opticalconfigId_ = value; + } else { + opticalconfigIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId.Builder builderForValue) { + if (opticalconfigIdBuilder_ == null) { + opticalconfigId_ = builderForValue.build(); + } else { + opticalconfigIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public Builder mergeOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { + if (opticalconfigIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && opticalconfigId_ != null && opticalconfigId_ != context.ContextOuterClass.OpticalConfigId.getDefaultInstance()) { + getOpticalconfigIdBuilder().mergeFrom(value); + } else { + opticalconfigId_ = value; + } + } else { + opticalconfigIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public Builder clearOpticalconfigId() { + bitField0_ = (bitField0_ & ~0x00000001); + opticalconfigId_ = null; + if (opticalconfigIdBuilder_ != null) { + opticalconfigIdBuilder_.dispose(); + opticalconfigIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public context.ContextOuterClass.OpticalConfigId.Builder getOpticalconfigIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getOpticalconfigIdFieldBuilder().getBuilder(); + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { + if (opticalconfigIdBuilder_ != null) { + return opticalconfigIdBuilder_.getMessageOrBuilder(); + } else { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + } + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> getOpticalconfigIdFieldBuilder() { + if (opticalconfigIdBuilder_ == null) { + opticalconfigIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder>(getOpticalconfigId(), getParentForChildren(), isClean()); + opticalconfigId_ = null; + } + return opticalconfigIdBuilder_; + } + + private java.lang.Object config_ = ""; + + /** + * <code>string config = 2;</code> + * @return The config. + */ + public java.lang.String getConfig() { + java.lang.Object ref = config_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - opticalconfigUuid_ = s; + config_ = s; return s; } else { return (java.lang.String) ref; @@ -69727,14 +73690,14 @@ public final class ContextOuterClass { } /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The bytes for opticalconfigUuid. + * <code>string config = 2;</code> + * @return The bytes for config. */ - public com.google.protobuf.ByteString getOpticalconfigUuidBytes() { - java.lang.Object ref = opticalconfigUuid_; + public com.google.protobuf.ByteString getConfigBytes() { + java.lang.Object ref = config_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - opticalconfigUuid_ = b; + config_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -69742,47 +73705,165 @@ public final class ContextOuterClass { } /** - * <code>string opticalconfig_uuid = 1;</code> - * @param value The opticalconfigUuid to set. + * <code>string config = 2;</code> + * @param value The config to set. * @return This builder for chaining. */ - public Builder setOpticalconfigUuid(java.lang.String value) { + public Builder setConfig(java.lang.String value) { if (value == null) { throw new NullPointerException(); } - opticalconfigUuid_ = value; - bitField0_ |= 0x00000001; + config_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>string opticalconfig_uuid = 1;</code> + * <code>string config = 2;</code> * @return This builder for chaining. */ - public Builder clearOpticalconfigUuid() { - opticalconfigUuid_ = getDefaultInstance().getOpticalconfigUuid(); - bitField0_ = (bitField0_ & ~0x00000001); + public Builder clearConfig() { + config_ = getDefaultInstance().getConfig(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } /** - * <code>string opticalconfig_uuid = 1;</code> - * @param value The bytes for opticalconfigUuid to set. + * <code>string config = 2;</code> + * @param value The bytes for config to set. * @return This builder for chaining. */ - public Builder setOpticalconfigUuidBytes(com.google.protobuf.ByteString value) { + public Builder setConfigBytes(com.google.protobuf.ByteString value) { if (value == null) { throw new NullPointerException(); } checkByteStringIsUtf8(value); - opticalconfigUuid_ = value; - bitField0_ |= 0x00000001; + config_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private context.ContextOuterClass.DeviceId deviceId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> deviceIdBuilder_; + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return Whether the deviceId field is set. + */ + public boolean hasDeviceId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return The deviceId. + */ + public context.ContextOuterClass.DeviceId getDeviceId() { + if (deviceIdBuilder_ == null) { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } else { + return deviceIdBuilder_.getMessage(); + } + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + public Builder setDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deviceId_ = value; + } else { + deviceIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdBuilder_ == null) { + deviceId_ = builderForValue.build(); + } else { + deviceIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getDeviceIdBuilder().mergeFrom(value); + } else { + deviceId_ = value; + } + } else { + deviceIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; onChanged(); return this; } + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + public Builder clearDeviceId() { + bitField0_ = (bitField0_ & ~0x00000004); + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getDeviceIdFieldBuilder().getBuilder(); + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + if (deviceIdBuilder_ != null) { + return deviceIdBuilder_.getMessageOrBuilder(); + } else { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdFieldBuilder() { + if (deviceIdBuilder_ == null) { + deviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>(getDeviceId(), getParentForChildren(), isClean()); + deviceId_ = null; + } + return deviceIdBuilder_; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); @@ -69792,24 +73873,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalConfigId) + // @@protoc_insertion_point(builder_scope:context.OpticalConfig) } - // @@protoc_insertion_point(class_scope:context.OpticalConfigId) - private static final context.ContextOuterClass.OpticalConfigId DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalConfig) + private static final context.ContextOuterClass.OpticalConfig DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfigId(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfig(); } - public static context.ContextOuterClass.OpticalConfigId getDefaultInstance() { + public static context.ContextOuterClass.OpticalConfig getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalConfigId> PARSER = new com.google.protobuf.AbstractParser<OpticalConfigId>() { + private static final com.google.protobuf.Parser<OpticalConfig> PARSER = new com.google.protobuf.AbstractParser<OpticalConfig>() { @java.lang.Override - public OpticalConfigId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public OpticalConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -69824,152 +73905,125 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<OpticalConfigId> parser() { + public static com.google.protobuf.Parser<OpticalConfig> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalConfigId> getParserForType() { + public com.google.protobuf.Parser<OpticalConfig> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalConfigId getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfig) + public interface OpticalConfigListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfigList) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return Whether the opticalconfigId field is set. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - boolean hasOpticalconfigId(); + java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList(); /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return The opticalconfigId. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - context.ContextOuterClass.OpticalConfigId getOpticalconfigId(); + context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index); /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder(); + int getOpticalconfigsCount(); /** - * <code>string config = 2;</code> - * @return The config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - java.lang.String getConfig(); + java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList(); /** - * <code>string config = 2;</code> - * @return The bytes for config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - com.google.protobuf.ByteString getConfigBytes(); + context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index); } /** - * Protobuf type {@code context.OpticalConfig} + * Protobuf type {@code context.OpticalConfigList} */ - public static final class OpticalConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfig) - OpticalConfigOrBuilder { + public static final class OpticalConfigList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfigList) + OpticalConfigListOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalConfig.newBuilder() to construct. - private OpticalConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalConfigList.newBuilder() to construct. + private OpticalConfigList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalConfig() { - config_ = ""; + private OpticalConfigList() { + opticalconfigs_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalConfig(); + return new OpticalConfigList(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfig.class, context.ContextOuterClass.OpticalConfig.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigList.class, context.ContextOuterClass.OpticalConfigList.Builder.class); } - public static final int OPTICALCONFIG_ID_FIELD_NUMBER = 1; + public static final int OPTICALCONFIGS_FIELD_NUMBER = 1; - private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + @SuppressWarnings("serial") + private java.util.List<context.ContextOuterClass.OpticalConfig> opticalconfigs_; /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return Whether the opticalconfigId field is set. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ @java.lang.Override - public boolean hasOpticalconfigId() { - return opticalconfigId_ != null; + public java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList() { + return opticalconfigs_; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return The opticalconfigId. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ @java.lang.Override - public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { - return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + public java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList() { + return opticalconfigs_; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ @java.lang.Override - public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { - return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + public int getOpticalconfigsCount() { + return opticalconfigs_.size(); } - public static final int CONFIG_FIELD_NUMBER = 2; - - @SuppressWarnings("serial") - private volatile java.lang.Object config_ = ""; - /** - * <code>string config = 2;</code> - * @return The config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ @java.lang.Override - public java.lang.String getConfig() { - java.lang.Object ref = config_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - config_ = s; - return s; - } + public context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index) { + return opticalconfigs_.get(index); } /** - * <code>string config = 2;</code> - * @return The bytes for config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ @java.lang.Override - public com.google.protobuf.ByteString getConfigBytes() { - java.lang.Object ref = config_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - config_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index) { + return opticalconfigs_.get(index); } private byte memoizedIsInitialized = -1; @@ -69987,11 +74041,8 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (opticalconfigId_ != null) { - output.writeMessage(1, getOpticalconfigId()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(config_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, config_); + for (int i = 0; i < opticalconfigs_.size(); i++) { + output.writeMessage(1, opticalconfigs_.get(i)); } getUnknownFields().writeTo(output); } @@ -70002,11 +74053,8 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (opticalconfigId_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOpticalconfigId()); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(config_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, config_); + for (int i = 0; i < opticalconfigs_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, opticalconfigs_.get(i)); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -70018,17 +74066,11 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalConfig)) { + if (!(obj instanceof context.ContextOuterClass.OpticalConfigList)) { return super.equals(obj); } - context.ContextOuterClass.OpticalConfig other = (context.ContextOuterClass.OpticalConfig) obj; - if (hasOpticalconfigId() != other.hasOpticalconfigId()) - return false; - if (hasOpticalconfigId()) { - if (!getOpticalconfigId().equals(other.getOpticalconfigId())) - return false; - } - if (!getConfig().equals(other.getConfig())) + context.ContextOuterClass.OpticalConfigList other = (context.ContextOuterClass.OpticalConfigList) obj; + if (!getOpticalconfigsList().equals(other.getOpticalconfigsList())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; @@ -70042,62 +74084,60 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (hasOpticalconfigId()) { - hash = (37 * hash) + OPTICALCONFIG_ID_FIELD_NUMBER; - hash = (53 * hash) + getOpticalconfigId().hashCode(); + if (getOpticalconfigsCount() > 0) { + hash = (37 * hash) + OPTICALCONFIGS_FIELD_NUMBER; + hash = (53 * hash) + getOpticalconfigsList().hashCode(); } - hash = (37 * hash) + CONFIG_FIELD_NUMBER; - hash = (53 * hash) + getConfig().hashCode(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalConfig parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfig parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfig parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfig parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfig parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfig parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -70110,7 +74150,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalConfig prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalConfigList prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -70126,21 +74166,21 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.OpticalConfig} + * Protobuf type {@code context.OpticalConfigList} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfig) - context.ContextOuterClass.OpticalConfigOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfigList) + context.ContextOuterClass.OpticalConfigListOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfig.class, context.ContextOuterClass.OpticalConfig.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigList.class, context.ContextOuterClass.OpticalConfigList.Builder.class); } - // Construct using context.ContextOuterClass.OpticalConfig.newBuilder() + // Construct using context.ContextOuterClass.OpticalConfigList.newBuilder() private Builder() { } @@ -70152,28 +74192,29 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - opticalconfigId_ = null; - if (opticalconfigIdBuilder_ != null) { - opticalconfigIdBuilder_.dispose(); - opticalconfigIdBuilder_ = null; + if (opticalconfigsBuilder_ == null) { + opticalconfigs_ = java.util.Collections.emptyList(); + } else { + opticalconfigs_ = null; + opticalconfigsBuilder_.clear(); } - config_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalConfig getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalConfig.getDefaultInstance(); + public context.ContextOuterClass.OpticalConfigList getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalConfigList.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalConfig build() { - context.ContextOuterClass.OpticalConfig result = buildPartial(); + public context.ContextOuterClass.OpticalConfigList build() { + context.ContextOuterClass.OpticalConfigList result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -70181,8 +74222,9 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalConfig buildPartial() { - context.ContextOuterClass.OpticalConfig result = new context.ContextOuterClass.OpticalConfig(this); + public context.ContextOuterClass.OpticalConfigList buildPartial() { + context.ContextOuterClass.OpticalConfigList result = new context.ContextOuterClass.OpticalConfigList(this); + buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } @@ -70190,36 +74232,58 @@ public final class ContextOuterClass { return result; } - private void buildPartial0(context.ContextOuterClass.OpticalConfig result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.opticalconfigId_ = opticalconfigIdBuilder_ == null ? opticalconfigId_ : opticalconfigIdBuilder_.build(); - } - if (((from_bitField0_ & 0x00000002) != 0)) { - result.config_ = config_; + private void buildPartialRepeatedFields(context.ContextOuterClass.OpticalConfigList result) { + if (opticalconfigsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + opticalconfigs_ = java.util.Collections.unmodifiableList(opticalconfigs_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.opticalconfigs_ = opticalconfigs_; + } else { + result.opticalconfigs_ = opticalconfigsBuilder_.build(); } } + private void buildPartial0(context.ContextOuterClass.OpticalConfigList result) { + int from_bitField0_ = bitField0_; + } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalConfig) { - return mergeFrom((context.ContextOuterClass.OpticalConfig) other); + if (other instanceof context.ContextOuterClass.OpticalConfigList) { + return mergeFrom((context.ContextOuterClass.OpticalConfigList) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalConfig other) { - if (other == context.ContextOuterClass.OpticalConfig.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalConfigList other) { + if (other == context.ContextOuterClass.OpticalConfigList.getDefaultInstance()) return this; - if (other.hasOpticalconfigId()) { - mergeOpticalconfigId(other.getOpticalconfigId()); - } - if (!other.getConfig().isEmpty()) { - config_ = other.config_; - bitField0_ |= 0x00000002; - onChanged(); + if (opticalconfigsBuilder_ == null) { + if (!other.opticalconfigs_.isEmpty()) { + if (opticalconfigs_.isEmpty()) { + opticalconfigs_ = other.opticalconfigs_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.addAll(other.opticalconfigs_); + } + onChanged(); + } + } else { + if (!other.opticalconfigs_.isEmpty()) { + if (opticalconfigsBuilder_.isEmpty()) { + opticalconfigsBuilder_.dispose(); + opticalconfigsBuilder_ = null; + opticalconfigs_ = other.opticalconfigs_; + bitField0_ = (bitField0_ & ~0x00000001); + opticalconfigsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getOpticalconfigsFieldBuilder() : null; + } else { + opticalconfigsBuilder_.addAllMessages(other.opticalconfigs_); + } + } } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); @@ -70246,18 +74310,16 @@ public final class ContextOuterClass { break; case 10: { - input.readMessage(getOpticalconfigIdFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00000001; + context.ContextOuterClass.OpticalConfig m = input.readMessage(context.ContextOuterClass.OpticalConfig.parser(), extensionRegistry); + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.add(m); + } else { + opticalconfigsBuilder_.addMessage(m); + } break; } // case 10 - case 18: - { - config_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; - break; - } - // case 18 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -70281,197 +74343,241 @@ public final class ContextOuterClass { private int bitField0_; - private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + private java.util.List<context.ContextOuterClass.OpticalConfig> opticalconfigs_ = java.util.Collections.emptyList(); - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> opticalconfigIdBuilder_; + private void ensureOpticalconfigsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + opticalconfigs_ = new java.util.ArrayList<context.ContextOuterClass.OpticalConfig>(opticalconfigs_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder> opticalconfigsBuilder_; /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return Whether the opticalconfigId field is set. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public boolean hasOpticalconfigId() { - return ((bitField0_ & 0x00000001) != 0); + public java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList() { + if (opticalconfigsBuilder_ == null) { + return java.util.Collections.unmodifiableList(opticalconfigs_); + } else { + return opticalconfigsBuilder_.getMessageList(); + } } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return The opticalconfigId. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { - if (opticalconfigIdBuilder_ == null) { - return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + public int getOpticalconfigsCount() { + if (opticalconfigsBuilder_ == null) { + return opticalconfigs_.size(); } else { - return opticalconfigIdBuilder_.getMessage(); + return opticalconfigsBuilder_.getCount(); } } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { - if (opticalconfigIdBuilder_ == null) { + public context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index) { + if (opticalconfigsBuilder_ == null) { + return opticalconfigs_.get(index); + } else { + return opticalconfigsBuilder_.getMessage(index); + } + } + + /** + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + */ + public Builder setOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig value) { + if (opticalconfigsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - opticalconfigId_ = value; + ensureOpticalconfigsIsMutable(); + opticalconfigs_.set(index, value); + onChanged(); } else { - opticalconfigIdBuilder_.setMessage(value); + opticalconfigsBuilder_.setMessage(index, value); } - bitField0_ |= 0x00000001; - onChanged(); return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId.Builder builderForValue) { - if (opticalconfigIdBuilder_ == null) { - opticalconfigId_ = builderForValue.build(); + public Builder setOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig.Builder builderForValue) { + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.set(index, builderForValue.build()); + onChanged(); } else { - opticalconfigIdBuilder_.setMessage(builderForValue.build()); + opticalconfigsBuilder_.setMessage(index, builderForValue.build()); } - bitField0_ |= 0x00000001; - onChanged(); return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder mergeOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { - if (opticalconfigIdBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && opticalconfigId_ != null && opticalconfigId_ != context.ContextOuterClass.OpticalConfigId.getDefaultInstance()) { - getOpticalconfigIdBuilder().mergeFrom(value); - } else { - opticalconfigId_ = value; + public Builder addOpticalconfigs(context.ContextOuterClass.OpticalConfig value) { + if (opticalconfigsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); } + ensureOpticalconfigsIsMutable(); + opticalconfigs_.add(value); + onChanged(); } else { - opticalconfigIdBuilder_.mergeFrom(value); + opticalconfigsBuilder_.addMessage(value); } - bitField0_ |= 0x00000001; - onChanged(); return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder clearOpticalconfigId() { - bitField0_ = (bitField0_ & ~0x00000001); - opticalconfigId_ = null; - if (opticalconfigIdBuilder_ != null) { - opticalconfigIdBuilder_.dispose(); - opticalconfigIdBuilder_ = null; + public Builder addOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig value) { + if (opticalconfigsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalconfigsIsMutable(); + opticalconfigs_.add(index, value); + onChanged(); + } else { + opticalconfigsBuilder_.addMessage(index, value); } - onChanged(); return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public context.ContextOuterClass.OpticalConfigId.Builder getOpticalconfigIdBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getOpticalconfigIdFieldBuilder().getBuilder(); + public Builder addOpticalconfigs(context.ContextOuterClass.OpticalConfig.Builder builderForValue) { + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.add(builderForValue.build()); + onChanged(); + } else { + opticalconfigsBuilder_.addMessage(builderForValue.build()); + } + return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { - if (opticalconfigIdBuilder_ != null) { - return opticalconfigIdBuilder_.getMessageOrBuilder(); + public Builder addOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig.Builder builderForValue) { + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.add(index, builderForValue.build()); + onChanged(); } else { - return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + opticalconfigsBuilder_.addMessage(index, builderForValue.build()); } + return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> getOpticalconfigIdFieldBuilder() { - if (opticalconfigIdBuilder_ == null) { - opticalconfigIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder>(getOpticalconfigId(), getParentForChildren(), isClean()); - opticalconfigId_ = null; + public Builder addAllOpticalconfigs(java.lang.Iterable<? extends context.ContextOuterClass.OpticalConfig> values) { + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, opticalconfigs_); + onChanged(); + } else { + opticalconfigsBuilder_.addAllMessages(values); } - return opticalconfigIdBuilder_; + return this; } - private java.lang.Object config_ = ""; + /** + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + */ + public Builder clearOpticalconfigs() { + if (opticalconfigsBuilder_ == null) { + opticalconfigs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + opticalconfigsBuilder_.clear(); + } + return this; + } /** - * <code>string config = 2;</code> - * @return The config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public java.lang.String getConfig() { - java.lang.Object ref = config_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - config_ = s; - return s; + public Builder removeOpticalconfigs(int index) { + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.remove(index); + onChanged(); } else { - return (java.lang.String) ref; + opticalconfigsBuilder_.remove(index); } + return this; } /** - * <code>string config = 2;</code> - * @return The bytes for config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public com.google.protobuf.ByteString getConfigBytes() { - java.lang.Object ref = config_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - config_ = b; - return b; + public context.ContextOuterClass.OpticalConfig.Builder getOpticalconfigsBuilder(int index) { + return getOpticalconfigsFieldBuilder().getBuilder(index); + } + + /** + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + */ + public context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index) { + if (opticalconfigsBuilder_ == null) { + return opticalconfigs_.get(index); } else { - return (com.google.protobuf.ByteString) ref; + return opticalconfigsBuilder_.getMessageOrBuilder(index); } } /** - * <code>string config = 2;</code> - * @param value The config to set. - * @return This builder for chaining. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder setConfig(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList() { + if (opticalconfigsBuilder_ != null) { + return opticalconfigsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(opticalconfigs_); } - config_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; } /** - * <code>string config = 2;</code> - * @return This builder for chaining. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder clearConfig() { - config_ = getDefaultInstance().getConfig(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); - return this; + public context.ContextOuterClass.OpticalConfig.Builder addOpticalconfigsBuilder() { + return getOpticalconfigsFieldBuilder().addBuilder(context.ContextOuterClass.OpticalConfig.getDefaultInstance()); } /** - * <code>string config = 2;</code> - * @param value The bytes for config to set. - * @return This builder for chaining. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder setConfigBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public context.ContextOuterClass.OpticalConfig.Builder addOpticalconfigsBuilder(int index) { + return getOpticalconfigsFieldBuilder().addBuilder(index, context.ContextOuterClass.OpticalConfig.getDefaultInstance()); + } + + /** + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + */ + public java.util.List<context.ContextOuterClass.OpticalConfig.Builder> getOpticalconfigsBuilderList() { + return getOpticalconfigsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsFieldBuilder() { + if (opticalconfigsBuilder_ == null) { + opticalconfigsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder>(opticalconfigs_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + opticalconfigs_ = null; } - checkByteStringIsUtf8(value); - config_ = value; - bitField0_ |= 0x00000002; - onChanged(); - return this; + return opticalconfigsBuilder_; } @java.lang.Override @@ -70483,24 +74589,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalConfig) + // @@protoc_insertion_point(builder_scope:context.OpticalConfigList) } - // @@protoc_insertion_point(class_scope:context.OpticalConfig) - private static final context.ContextOuterClass.OpticalConfig DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalConfigList) + private static final context.ContextOuterClass.OpticalConfigList DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfig(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfigList(); } - public static context.ContextOuterClass.OpticalConfig getDefaultInstance() { + public static context.ContextOuterClass.OpticalConfigList getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalConfig> PARSER = new com.google.protobuf.AbstractParser<OpticalConfig>() { + private static final com.google.protobuf.Parser<OpticalConfigList> PARSER = new com.google.protobuf.AbstractParser<OpticalConfigList>() { @java.lang.Override - public OpticalConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public OpticalConfigList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -70515,125 +74621,148 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<OpticalConfig> parser() { + public static com.google.protobuf.Parser<OpticalConfigList> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalConfig> getParserForType() { + public com.google.protobuf.Parser<OpticalConfigList> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalConfig getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalConfigList getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalConfigListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfigList) + public interface OpticalConfigEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfigEvent) com.google.protobuf.MessageOrBuilder { /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return Whether the event field is set. */ - java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList(); + boolean hasEvent(); /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return The event. */ - context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index); + context.ContextOuterClass.Event getEvent(); /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - int getOpticalconfigsCount(); + context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return Whether the opticalconfigId field is set. */ - java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList(); + boolean hasOpticalconfigId(); /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return The opticalconfigId. */ - context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index); + context.ContextOuterClass.OpticalConfigId getOpticalconfigId(); + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + */ + context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder(); } /** - * Protobuf type {@code context.OpticalConfigList} + * Protobuf type {@code context.OpticalConfigEvent} */ - public static final class OpticalConfigList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfigList) - OpticalConfigListOrBuilder { + public static final class OpticalConfigEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfigEvent) + OpticalConfigEventOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalConfigList.newBuilder() to construct. - private OpticalConfigList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalConfigEvent.newBuilder() to construct. + private OpticalConfigEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalConfigList() { - opticalconfigs_ = java.util.Collections.emptyList(); + private OpticalConfigEvent() { } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalConfigList(); + return new OpticalConfigEvent(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigEvent_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfigList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigList.class, context.ContextOuterClass.OpticalConfigList.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigEvent.class, context.ContextOuterClass.OpticalConfigEvent.Builder.class); } - public static final int OPTICALCONFIGS_FIELD_NUMBER = 1; + public static final int EVENT_FIELD_NUMBER = 1; - @SuppressWarnings("serial") - private java.util.List<context.ContextOuterClass.OpticalConfig> opticalconfigs_; + private context.ContextOuterClass.Event event_; /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return Whether the event field is set. */ @java.lang.Override - public java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList() { - return opticalconfigs_; + public boolean hasEvent() { + return event_ != null; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return The event. */ @java.lang.Override - public java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList() { - return opticalconfigs_; + public context.ContextOuterClass.Event getEvent() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ @java.lang.Override - public int getOpticalconfigsCount() { - return opticalconfigs_.size(); + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } + public static final int OPTICALCONFIG_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return Whether the opticalconfigId field is set. */ @java.lang.Override - public context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index) { - return opticalconfigs_.get(index); + public boolean hasOpticalconfigId() { + return opticalconfigId_ != null; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return The opticalconfigId. */ @java.lang.Override - public context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index) { - return opticalconfigs_.get(index); + public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + */ + @java.lang.Override + public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; } private byte memoizedIsInitialized = -1; @@ -70651,8 +74780,11 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - for (int i = 0; i < opticalconfigs_.size(); i++) { - output.writeMessage(1, opticalconfigs_.get(i)); + if (event_ != null) { + output.writeMessage(1, getEvent()); + } + if (opticalconfigId_ != null) { + output.writeMessage(2, getOpticalconfigId()); } getUnknownFields().writeTo(output); } @@ -70663,8 +74795,11 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - for (int i = 0; i < opticalconfigs_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, opticalconfigs_.get(i)); + if (event_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent()); + } + if (opticalconfigId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getOpticalconfigId()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -70676,12 +74811,22 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalConfigList)) { + if (!(obj instanceof context.ContextOuterClass.OpticalConfigEvent)) { return super.equals(obj); } - context.ContextOuterClass.OpticalConfigList other = (context.ContextOuterClass.OpticalConfigList) obj; - if (!getOpticalconfigsList().equals(other.getOpticalconfigsList())) + context.ContextOuterClass.OpticalConfigEvent other = (context.ContextOuterClass.OpticalConfigEvent) obj; + if (hasEvent() != other.hasEvent()) + return false; + if (hasEvent()) { + if (!getEvent().equals(other.getEvent())) + return false; + } + if (hasOpticalconfigId() != other.hasOpticalconfigId()) return false; + if (hasOpticalconfigId()) { + if (!getOpticalconfigId().equals(other.getOpticalconfigId())) + return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; @@ -70694,60 +74839,64 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (getOpticalconfigsCount() > 0) { - hash = (37 * hash) + OPTICALCONFIGS_FIELD_NUMBER; - hash = (53 * hash) + getOpticalconfigsList().hashCode(); + if (hasEvent()) { + hash = (37 * hash) + EVENT_FIELD_NUMBER; + hash = (53 * hash) + getEvent().hashCode(); + } + if (hasOpticalconfigId()) { + hash = (37 * hash) + OPTICALCONFIG_ID_FIELD_NUMBER; + hash = (53 * hash) + getOpticalconfigId().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalConfigList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -70760,7 +74909,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalConfigList prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalConfigEvent prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -70776,21 +74925,21 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.OpticalConfigList} + * Protobuf type {@code context.OpticalConfigEvent} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfigList) - context.ContextOuterClass.OpticalConfigListOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfigEvent) + context.ContextOuterClass.OpticalConfigEventOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigEvent_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfigList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigList.class, context.ContextOuterClass.OpticalConfigList.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigEvent.class, context.ContextOuterClass.OpticalConfigEvent.Builder.class); } - // Construct using context.ContextOuterClass.OpticalConfigList.newBuilder() + // Construct using context.ContextOuterClass.OpticalConfigEvent.newBuilder() private Builder() { } @@ -70802,29 +74951,32 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - if (opticalconfigsBuilder_ == null) { - opticalconfigs_ = java.util.Collections.emptyList(); - } else { - opticalconfigs_ = null; - opticalconfigsBuilder_.clear(); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + opticalconfigId_ = null; + if (opticalconfigIdBuilder_ != null) { + opticalconfigIdBuilder_.dispose(); + opticalconfigIdBuilder_ = null; } - bitField0_ = (bitField0_ & ~0x00000001); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigEvent_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalConfigList getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalConfigList.getDefaultInstance(); + public context.ContextOuterClass.OpticalConfigEvent getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalConfigEvent.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalConfigList build() { - context.ContextOuterClass.OpticalConfigList result = buildPartial(); + public context.ContextOuterClass.OpticalConfigEvent build() { + context.ContextOuterClass.OpticalConfigEvent result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -70832,9 +74984,8 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalConfigList buildPartial() { - context.ContextOuterClass.OpticalConfigList result = new context.ContextOuterClass.OpticalConfigList(this); - buildPartialRepeatedFields(result); + public context.ContextOuterClass.OpticalConfigEvent buildPartial() { + context.ContextOuterClass.OpticalConfigEvent result = new context.ContextOuterClass.OpticalConfigEvent(this); if (bitField0_ != 0) { buildPartial0(result); } @@ -70842,58 +74993,34 @@ public final class ContextOuterClass { return result; } - private void buildPartialRepeatedFields(context.ContextOuterClass.OpticalConfigList result) { - if (opticalconfigsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - opticalconfigs_ = java.util.Collections.unmodifiableList(opticalconfigs_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.opticalconfigs_ = opticalconfigs_; - } else { - result.opticalconfigs_ = opticalconfigsBuilder_.build(); - } - } - - private void buildPartial0(context.ContextOuterClass.OpticalConfigList result) { + private void buildPartial0(context.ContextOuterClass.OpticalConfigEvent result) { int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.opticalconfigId_ = opticalconfigIdBuilder_ == null ? opticalconfigId_ : opticalconfigIdBuilder_.build(); + } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalConfigList) { - return mergeFrom((context.ContextOuterClass.OpticalConfigList) other); + if (other instanceof context.ContextOuterClass.OpticalConfigEvent) { + return mergeFrom((context.ContextOuterClass.OpticalConfigEvent) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalConfigList other) { - if (other == context.ContextOuterClass.OpticalConfigList.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalConfigEvent other) { + if (other == context.ContextOuterClass.OpticalConfigEvent.getDefaultInstance()) return this; - if (opticalconfigsBuilder_ == null) { - if (!other.opticalconfigs_.isEmpty()) { - if (opticalconfigs_.isEmpty()) { - opticalconfigs_ = other.opticalconfigs_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.addAll(other.opticalconfigs_); - } - onChanged(); - } - } else { - if (!other.opticalconfigs_.isEmpty()) { - if (opticalconfigsBuilder_.isEmpty()) { - opticalconfigsBuilder_.dispose(); - opticalconfigsBuilder_ = null; - opticalconfigs_ = other.opticalconfigs_; - bitField0_ = (bitField0_ & ~0x00000001); - opticalconfigsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getOpticalconfigsFieldBuilder() : null; - } else { - opticalconfigsBuilder_.addAllMessages(other.opticalconfigs_); - } - } + if (other.hasEvent()) { + mergeEvent(other.getEvent()); + } + if (other.hasOpticalconfigId()) { + mergeOpticalconfigId(other.getOpticalconfigId()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); @@ -70920,16 +75047,18 @@ public final class ContextOuterClass { break; case 10: { - context.ContextOuterClass.OpticalConfig m = input.readMessage(context.ContextOuterClass.OpticalConfig.parser(), extensionRegistry); - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.add(m); - } else { - opticalconfigsBuilder_.addMessage(m); - } + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; break; } // case 10 + case 18: + { + input.readMessage(getOpticalconfigIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -70953,241 +75082,240 @@ public final class ContextOuterClass { private int bitField0_; - private java.util.List<context.ContextOuterClass.OpticalConfig> opticalconfigs_ = java.util.Collections.emptyList(); - - private void ensureOpticalconfigsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - opticalconfigs_ = new java.util.ArrayList<context.ContextOuterClass.OpticalConfig>(opticalconfigs_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder> opticalconfigsBuilder_; + private context.ContextOuterClass.Event event_; - /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> - */ - public java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList() { - if (opticalconfigsBuilder_ == null) { - return java.util.Collections.unmodifiableList(opticalconfigs_); - } else { - return opticalconfigsBuilder_.getMessageList(); - } - } + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return Whether the event field is set. */ - public int getOpticalconfigsCount() { - if (opticalconfigsBuilder_ == null) { - return opticalconfigs_.size(); - } else { - return opticalconfigsBuilder_.getCount(); - } + public boolean hasEvent() { + return ((bitField0_ & 0x00000001) != 0); } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return The event. */ - public context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index) { - if (opticalconfigsBuilder_ == null) { - return opticalconfigs_.get(index); + public context.ContextOuterClass.Event getEvent() { + if (eventBuilder_ == null) { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } else { - return opticalconfigsBuilder_.getMessage(index); + return eventBuilder_.getMessage(); } } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder setOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig value) { - if (opticalconfigsBuilder_ == null) { + public Builder setEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureOpticalconfigsIsMutable(); - opticalconfigs_.set(index, value); - onChanged(); + event_ = value; } else { - opticalconfigsBuilder_.setMessage(index, value); + eventBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder setOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig.Builder builderForValue) { - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.set(index, builderForValue.build()); - onChanged(); + public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { + if (eventBuilder_ == null) { + event_ = builderForValue.build(); } else { - opticalconfigsBuilder_.setMessage(index, builderForValue.build()); + eventBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder addOpticalconfigs(context.ContextOuterClass.OpticalConfig value) { - if (opticalconfigsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); + public Builder mergeEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); + } else { + event_ = value; } - ensureOpticalconfigsIsMutable(); - opticalconfigs_.add(value); - onChanged(); } else { - opticalconfigsBuilder_.addMessage(value); + eventBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder addOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig value) { - if (opticalconfigsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureOpticalconfigsIsMutable(); - opticalconfigs_.add(index, value); - onChanged(); - } else { - opticalconfigsBuilder_.addMessage(index, value); + public Builder clearEvent() { + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; } + onChanged(); return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder addOpticalconfigs(context.ContextOuterClass.OpticalConfig.Builder builderForValue) { - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.add(builderForValue.build()); - onChanged(); - } else { - opticalconfigsBuilder_.addMessage(builderForValue.build()); - } - return this; + public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEventFieldBuilder().getBuilder(); } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder addOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig.Builder builderForValue) { - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.add(index, builderForValue.build()); - onChanged(); + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + if (eventBuilder_ != null) { + return eventBuilder_.getMessageOrBuilder(); } else { - opticalconfigsBuilder_.addMessage(index, builderForValue.build()); + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } - return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder addAllOpticalconfigs(java.lang.Iterable<? extends context.ContextOuterClass.OpticalConfig> values) { - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, opticalconfigs_); - onChanged(); - } else { - opticalconfigsBuilder_.addAllMessages(values); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> getEventFieldBuilder() { + if (eventBuilder_ == null) { + eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder>(getEvent(), getParentForChildren(), isClean()); + event_ = null; } - return this; + return eventBuilder_; } + private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> opticalconfigIdBuilder_; + /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return Whether the opticalconfigId field is set. */ - public Builder clearOpticalconfigs() { - if (opticalconfigsBuilder_ == null) { - opticalconfigs_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - } else { - opticalconfigsBuilder_.clear(); - } - return this; + public boolean hasOpticalconfigId() { + return ((bitField0_ & 0x00000002) != 0); } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return The opticalconfigId. */ - public Builder removeOpticalconfigs(int index) { - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.remove(index); - onChanged(); + public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { + if (opticalconfigIdBuilder_ == null) { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; } else { - opticalconfigsBuilder_.remove(index); + return opticalconfigIdBuilder_.getMessage(); } - return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public context.ContextOuterClass.OpticalConfig.Builder getOpticalconfigsBuilder(int index) { - return getOpticalconfigsFieldBuilder().getBuilder(index); + public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { + if (opticalconfigIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + opticalconfigId_ = value; + } else { + opticalconfigIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index) { - if (opticalconfigsBuilder_ == null) { - return opticalconfigs_.get(index); + public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId.Builder builderForValue) { + if (opticalconfigIdBuilder_ == null) { + opticalconfigId_ = builderForValue.build(); } else { - return opticalconfigsBuilder_.getMessageOrBuilder(index); + opticalconfigIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); + return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList() { - if (opticalconfigsBuilder_ != null) { - return opticalconfigsBuilder_.getMessageOrBuilderList(); + public Builder mergeOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { + if (opticalconfigIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && opticalconfigId_ != null && opticalconfigId_ != context.ContextOuterClass.OpticalConfigId.getDefaultInstance()) { + getOpticalconfigIdBuilder().mergeFrom(value); + } else { + opticalconfigId_ = value; + } } else { - return java.util.Collections.unmodifiableList(opticalconfigs_); + opticalconfigIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); + return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public context.ContextOuterClass.OpticalConfig.Builder addOpticalconfigsBuilder() { - return getOpticalconfigsFieldBuilder().addBuilder(context.ContextOuterClass.OpticalConfig.getDefaultInstance()); + public Builder clearOpticalconfigId() { + bitField0_ = (bitField0_ & ~0x00000002); + opticalconfigId_ = null; + if (opticalconfigIdBuilder_ != null) { + opticalconfigIdBuilder_.dispose(); + opticalconfigIdBuilder_ = null; + } + onChanged(); + return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public context.ContextOuterClass.OpticalConfig.Builder addOpticalconfigsBuilder(int index) { - return getOpticalconfigsFieldBuilder().addBuilder(index, context.ContextOuterClass.OpticalConfig.getDefaultInstance()); + public context.ContextOuterClass.OpticalConfigId.Builder getOpticalconfigIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getOpticalconfigIdFieldBuilder().getBuilder(); } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public java.util.List<context.ContextOuterClass.OpticalConfig.Builder> getOpticalconfigsBuilderList() { - return getOpticalconfigsFieldBuilder().getBuilderList(); + public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { + if (opticalconfigIdBuilder_ != null) { + return opticalconfigIdBuilder_.getMessageOrBuilder(); + } else { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + } } - private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsFieldBuilder() { - if (opticalconfigsBuilder_ == null) { - opticalconfigsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder>(opticalconfigs_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); - opticalconfigs_ = null; + /** + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> getOpticalconfigIdFieldBuilder() { + if (opticalconfigIdBuilder_ == null) { + opticalconfigIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder>(getOpticalconfigId(), getParentForChildren(), isClean()); + opticalconfigId_ = null; } - return opticalconfigsBuilder_; + return opticalconfigIdBuilder_; } @java.lang.Override @@ -71199,24 +75327,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalConfigList) + // @@protoc_insertion_point(builder_scope:context.OpticalConfigEvent) } - // @@protoc_insertion_point(class_scope:context.OpticalConfigList) - private static final context.ContextOuterClass.OpticalConfigList DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalConfigEvent) + private static final context.ContextOuterClass.OpticalConfigEvent DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfigList(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfigEvent(); } - public static context.ContextOuterClass.OpticalConfigList getDefaultInstance() { + public static context.ContextOuterClass.OpticalConfigEvent getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalConfigList> PARSER = new com.google.protobuf.AbstractParser<OpticalConfigList>() { + private static final com.google.protobuf.Parser<OpticalConfigEvent> PARSER = new com.google.protobuf.AbstractParser<OpticalConfigEvent>() { @java.lang.Override - public OpticalConfigList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public OpticalConfigEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -71231,101 +75359,148 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<OpticalConfigList> parser() { + public static com.google.protobuf.Parser<OpticalConfigEvent> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalConfigList> getParserForType() { + public com.google.protobuf.Parser<OpticalConfigEvent> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalConfigList getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalConfigEvent getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalLinkIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLinkId) + public interface OpticalEndPointIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalEndPointId) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.DeviceId device_id = 2;</code> + * @return Whether the deviceId field is set. + */ + boolean hasDeviceId(); + + /** + * <code>.context.DeviceId device_id = 2;</code> + * @return The deviceId. + */ + context.ContextOuterClass.DeviceId getDeviceId(); + + /** + * <code>.context.DeviceId device_id = 2;</code> + */ + context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder(); + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return Whether the endpointUuid field is set. */ - boolean hasOpticalLinkUuid(); + boolean hasEndpointUuid(); /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return The opticalLinkUuid. + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return The endpointUuid. */ - context.ContextOuterClass.Uuid getOpticalLinkUuid(); + context.ContextOuterClass.Uuid getEndpointUuid(); /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.Uuid endpoint_uuid = 3;</code> */ - context.ContextOuterClass.UuidOrBuilder getOpticalLinkUuidOrBuilder(); + context.ContextOuterClass.UuidOrBuilder getEndpointUuidOrBuilder(); } /** - * Protobuf type {@code context.OpticalLinkId} + * Protobuf type {@code context.OpticalEndPointId} */ - public static final class OpticalLinkId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLinkId) - OpticalLinkIdOrBuilder { + public static final class OpticalEndPointId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalEndPointId) + OpticalEndPointIdOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalLinkId.newBuilder() to construct. - private OpticalLinkId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalEndPointId.newBuilder() to construct. + private OpticalEndPointId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalLinkId() { + private OpticalEndPointId() { } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalLinkId(); + return new OpticalEndPointId(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLinkId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalEndPointId_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLinkId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkId.class, context.ContextOuterClass.OpticalLinkId.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalEndPointId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalEndPointId.class, context.ContextOuterClass.OpticalEndPointId.Builder.class); + } + + public static final int DEVICE_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.DeviceId deviceId_; + + /** + * <code>.context.DeviceId device_id = 2;</code> + * @return Whether the deviceId field is set. + */ + @java.lang.Override + public boolean hasDeviceId() { + return deviceId_ != null; + } + + /** + * <code>.context.DeviceId device_id = 2;</code> + * @return The deviceId. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceId getDeviceId() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + + /** + * <code>.context.DeviceId device_id = 2;</code> + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; } - public static final int OPTICAL_LINK_UUID_FIELD_NUMBER = 1; + public static final int ENDPOINT_UUID_FIELD_NUMBER = 3; - private context.ContextOuterClass.Uuid opticalLinkUuid_; + private context.ContextOuterClass.Uuid endpointUuid_; /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return Whether the endpointUuid field is set. */ @java.lang.Override - public boolean hasOpticalLinkUuid() { - return opticalLinkUuid_ != null; + public boolean hasEndpointUuid() { + return endpointUuid_ != null; } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return The opticalLinkUuid. + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return The endpointUuid. */ @java.lang.Override - public context.ContextOuterClass.Uuid getOpticalLinkUuid() { - return opticalLinkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : opticalLinkUuid_; + public context.ContextOuterClass.Uuid getEndpointUuid() { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.Uuid endpoint_uuid = 3;</code> */ @java.lang.Override - public context.ContextOuterClass.UuidOrBuilder getOpticalLinkUuidOrBuilder() { - return opticalLinkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : opticalLinkUuid_; + public context.ContextOuterClass.UuidOrBuilder getEndpointUuidOrBuilder() { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; } private byte memoizedIsInitialized = -1; @@ -71343,8 +75518,11 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (opticalLinkUuid_ != null) { - output.writeMessage(1, getOpticalLinkUuid()); + if (deviceId_ != null) { + output.writeMessage(2, getDeviceId()); + } + if (endpointUuid_ != null) { + output.writeMessage(3, getEndpointUuid()); } getUnknownFields().writeTo(output); } @@ -71355,8 +75533,11 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (opticalLinkUuid_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOpticalLinkUuid()); + if (deviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getDeviceId()); + } + if (endpointUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getEndpointUuid()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -71368,14 +75549,20 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalLinkId)) { + if (!(obj instanceof context.ContextOuterClass.OpticalEndPointId)) { return super.equals(obj); } - context.ContextOuterClass.OpticalLinkId other = (context.ContextOuterClass.OpticalLinkId) obj; - if (hasOpticalLinkUuid() != other.hasOpticalLinkUuid()) + context.ContextOuterClass.OpticalEndPointId other = (context.ContextOuterClass.OpticalEndPointId) obj; + if (hasDeviceId() != other.hasDeviceId()) + return false; + if (hasDeviceId()) { + if (!getDeviceId().equals(other.getDeviceId())) + return false; + } + if (hasEndpointUuid() != other.hasEndpointUuid()) return false; - if (hasOpticalLinkUuid()) { - if (!getOpticalLinkUuid().equals(other.getOpticalLinkUuid())) + if (hasEndpointUuid()) { + if (!getEndpointUuid().equals(other.getEndpointUuid())) return false; } if (!getUnknownFields().equals(other.getUnknownFields())) @@ -71390,60 +75577,64 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (hasOpticalLinkUuid()) { - hash = (37 * hash) + OPTICAL_LINK_UUID_FIELD_NUMBER; - hash = (53 * hash) + getOpticalLinkUuid().hashCode(); + if (hasDeviceId()) { + hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getDeviceId().hashCode(); + } + if (hasEndpointUuid()) { + hash = (37 * hash) + ENDPOINT_UUID_FIELD_NUMBER; + hash = (53 * hash) + getEndpointUuid().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalLinkId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -71456,7 +75647,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalLinkId prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalEndPointId prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -71472,21 +75663,21 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.OpticalLinkId} + * Protobuf type {@code context.OpticalEndPointId} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLinkId) - context.ContextOuterClass.OpticalLinkIdOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalEndPointId) + context.ContextOuterClass.OpticalEndPointIdOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLinkId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalEndPointId_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLinkId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkId.class, context.ContextOuterClass.OpticalLinkId.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalEndPointId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalEndPointId.class, context.ContextOuterClass.OpticalEndPointId.Builder.class); } - // Construct using context.ContextOuterClass.OpticalLinkId.newBuilder() + // Construct using context.ContextOuterClass.OpticalEndPointId.newBuilder() private Builder() { } @@ -71498,27 +75689,32 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - opticalLinkUuid_ = null; - if (opticalLinkUuidBuilder_ != null) { - opticalLinkUuidBuilder_.dispose(); - opticalLinkUuidBuilder_ = null; + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + endpointUuid_ = null; + if (endpointUuidBuilder_ != null) { + endpointUuidBuilder_.dispose(); + endpointUuidBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalLinkId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalEndPointId_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalLinkId getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalLinkId.getDefaultInstance(); + public context.ContextOuterClass.OpticalEndPointId getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalEndPointId.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalLinkId build() { - context.ContextOuterClass.OpticalLinkId result = buildPartial(); + public context.ContextOuterClass.OpticalEndPointId build() { + context.ContextOuterClass.OpticalEndPointId result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -71526,8 +75722,8 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalLinkId buildPartial() { - context.ContextOuterClass.OpticalLinkId result = new context.ContextOuterClass.OpticalLinkId(this); + public context.ContextOuterClass.OpticalEndPointId buildPartial() { + context.ContextOuterClass.OpticalEndPointId result = new context.ContextOuterClass.OpticalEndPointId(this); if (bitField0_ != 0) { buildPartial0(result); } @@ -71535,28 +75731,34 @@ public final class ContextOuterClass { return result; } - private void buildPartial0(context.ContextOuterClass.OpticalLinkId result) { + private void buildPartial0(context.ContextOuterClass.OpticalEndPointId result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { - result.opticalLinkUuid_ = opticalLinkUuidBuilder_ == null ? opticalLinkUuid_ : opticalLinkUuidBuilder_.build(); + result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.endpointUuid_ = endpointUuidBuilder_ == null ? endpointUuid_ : endpointUuidBuilder_.build(); } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalLinkId) { - return mergeFrom((context.ContextOuterClass.OpticalLinkId) other); + if (other instanceof context.ContextOuterClass.OpticalEndPointId) { + return mergeFrom((context.ContextOuterClass.OpticalEndPointId) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalLinkId other) { - if (other == context.ContextOuterClass.OpticalLinkId.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalEndPointId other) { + if (other == context.ContextOuterClass.OpticalEndPointId.getDefaultInstance()) return this; - if (other.hasOpticalLinkUuid()) { - mergeOpticalLinkUuid(other.getOpticalLinkUuid()); + if (other.hasDeviceId()) { + mergeDeviceId(other.getDeviceId()); + } + if (other.hasEndpointUuid()) { + mergeEndpointUuid(other.getEndpointUuid()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); @@ -71581,13 +75783,20 @@ public final class ContextOuterClass { case 0: done = true; break; - case 10: + case 18: { - input.readMessage(getOpticalLinkUuidFieldBuilder().getBuilder(), extensionRegistry); + input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000001; break; } - // case 10 + // case 18 + case 26: + { + input.readMessage(getEndpointUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 26 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -71611,41 +75820,41 @@ public final class ContextOuterClass { private int bitField0_; - private context.ContextOuterClass.Uuid opticalLinkUuid_; + private context.ContextOuterClass.DeviceId deviceId_; - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> opticalLinkUuidBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> deviceIdBuilder_; /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.DeviceId device_id = 2;</code> + * @return Whether the deviceId field is set. */ - public boolean hasOpticalLinkUuid() { + public boolean hasDeviceId() { return ((bitField0_ & 0x00000001) != 0); } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return The opticalLinkUuid. + * <code>.context.DeviceId device_id = 2;</code> + * @return The deviceId. */ - public context.ContextOuterClass.Uuid getOpticalLinkUuid() { - if (opticalLinkUuidBuilder_ == null) { - return opticalLinkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : opticalLinkUuid_; + public context.ContextOuterClass.DeviceId getDeviceId() { + if (deviceIdBuilder_ == null) { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; } else { - return opticalLinkUuidBuilder_.getMessage(); + return deviceIdBuilder_.getMessage(); } } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.DeviceId device_id = 2;</code> */ - public Builder setOpticalLinkUuid(context.ContextOuterClass.Uuid value) { - if (opticalLinkUuidBuilder_ == null) { + public Builder setDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - opticalLinkUuid_ = value; + deviceId_ = value; } else { - opticalLinkUuidBuilder_.setMessage(value); + deviceIdBuilder_.setMessage(value); } bitField0_ |= 0x00000001; onChanged(); @@ -71653,13 +75862,13 @@ public final class ContextOuterClass { } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.DeviceId device_id = 2;</code> */ - public Builder setOpticalLinkUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuid_ = builderForValue.build(); + public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdBuilder_ == null) { + deviceId_ = builderForValue.build(); } else { - opticalLinkUuidBuilder_.setMessage(builderForValue.build()); + deviceIdBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00000001; onChanged(); @@ -71667,17 +75876,17 @@ public final class ContextOuterClass { } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.DeviceId device_id = 2;</code> */ - public Builder mergeOpticalLinkUuid(context.ContextOuterClass.Uuid value) { - if (opticalLinkUuidBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && opticalLinkUuid_ != null && opticalLinkUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { - getOpticalLinkUuidBuilder().mergeFrom(value); + public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getDeviceIdBuilder().mergeFrom(value); } else { - opticalLinkUuid_ = value; + deviceId_ = value; } } else { - opticalLinkUuidBuilder_.mergeFrom(value); + deviceIdBuilder_.mergeFrom(value); } bitField0_ |= 0x00000001; onChanged(); @@ -71685,48 +75894,166 @@ public final class ContextOuterClass { } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.DeviceId device_id = 2;</code> */ - public Builder clearOpticalLinkUuid() { + public Builder clearDeviceId() { bitField0_ = (bitField0_ & ~0x00000001); - opticalLinkUuid_ = null; - if (opticalLinkUuidBuilder_ != null) { - opticalLinkUuidBuilder_.dispose(); - opticalLinkUuidBuilder_ = null; + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; } onChanged(); return this; } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.DeviceId device_id = 2;</code> */ - public context.ContextOuterClass.Uuid.Builder getOpticalLinkUuidBuilder() { + public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { bitField0_ |= 0x00000001; onChanged(); - return getOpticalLinkUuidFieldBuilder().getBuilder(); + return getDeviceIdFieldBuilder().getBuilder(); } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.DeviceId device_id = 2;</code> */ - public context.ContextOuterClass.UuidOrBuilder getOpticalLinkUuidOrBuilder() { - if (opticalLinkUuidBuilder_ != null) { - return opticalLinkUuidBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + if (deviceIdBuilder_ != null) { + return deviceIdBuilder_.getMessageOrBuilder(); } else { - return opticalLinkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : opticalLinkUuid_; + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + } + + /** + * <code>.context.DeviceId device_id = 2;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdFieldBuilder() { + if (deviceIdBuilder_ == null) { + deviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>(getDeviceId(), getParentForChildren(), isClean()); + deviceId_ = null; } + return deviceIdBuilder_; + } + + private context.ContextOuterClass.Uuid endpointUuid_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> endpointUuidBuilder_; + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return Whether the endpointUuid field is set. + */ + public boolean hasEndpointUuid() { + return ((bitField0_ & 0x00000002) != 0); } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return The endpointUuid. */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getOpticalLinkUuidFieldBuilder() { - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getOpticalLinkUuid(), getParentForChildren(), isClean()); - opticalLinkUuid_ = null; + public context.ContextOuterClass.Uuid getEndpointUuid() { + if (endpointUuidBuilder_ == null) { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; + } else { + return endpointUuidBuilder_.getMessage(); } - return opticalLinkUuidBuilder_; + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + public Builder setEndpointUuid(context.ContextOuterClass.Uuid value) { + if (endpointUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + endpointUuid_ = value; + } else { + endpointUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + public Builder setEndpointUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (endpointUuidBuilder_ == null) { + endpointUuid_ = builderForValue.build(); + } else { + endpointUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + public Builder mergeEndpointUuid(context.ContextOuterClass.Uuid value) { + if (endpointUuidBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && endpointUuid_ != null && endpointUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getEndpointUuidBuilder().mergeFrom(value); + } else { + endpointUuid_ = value; + } + } else { + endpointUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + public Builder clearEndpointUuid() { + bitField0_ = (bitField0_ & ~0x00000002); + endpointUuid_ = null; + if (endpointUuidBuilder_ != null) { + endpointUuidBuilder_.dispose(); + endpointUuidBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + public context.ContextOuterClass.Uuid.Builder getEndpointUuidBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getEndpointUuidFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + public context.ContextOuterClass.UuidOrBuilder getEndpointUuidOrBuilder() { + if (endpointUuidBuilder_ != null) { + return endpointUuidBuilder_.getMessageOrBuilder(); + } else { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; + } + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getEndpointUuidFieldBuilder() { + if (endpointUuidBuilder_ == null) { + endpointUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getEndpointUuid(), getParentForChildren(), isClean()); + endpointUuid_ = null; + } + return endpointUuidBuilder_; } @java.lang.Override @@ -71738,24 +76065,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalLinkId) + // @@protoc_insertion_point(builder_scope:context.OpticalEndPointId) } - // @@protoc_insertion_point(class_scope:context.OpticalLinkId) - private static final context.ContextOuterClass.OpticalLinkId DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalEndPointId) + private static final context.ContextOuterClass.OpticalEndPointId DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLinkId(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalEndPointId(); } - public static context.ContextOuterClass.OpticalLinkId getDefaultInstance() { + public static context.ContextOuterClass.OpticalEndPointId getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalLinkId> PARSER = new com.google.protobuf.AbstractParser<OpticalLinkId>() { + private static final com.google.protobuf.Parser<OpticalEndPointId> PARSER = new com.google.protobuf.AbstractParser<OpticalEndPointId>() { @java.lang.Override - public OpticalLinkId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public OpticalEndPointId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -71770,101 +76097,125 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<OpticalLinkId> parser() { + public static com.google.protobuf.Parser<OpticalEndPointId> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalLinkId> getParserForType() { + public com.google.protobuf.Parser<OpticalEndPointId> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalLinkId getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalEndPointId getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface FiberIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.FiberId) + public interface OpticalLinkListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLinkList) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return Whether the fiberUuid field is set. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - boolean hasFiberUuid(); + java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList(); /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return The fiberUuid. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - context.ContextOuterClass.Uuid getFiberUuid(); + context.ContextOuterClass.OpticalLink getOpticalLinks(int index); /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - context.ContextOuterClass.UuidOrBuilder getFiberUuidOrBuilder(); + int getOpticalLinksCount(); + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList(); + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index); } /** - * Protobuf type {@code context.FiberId} + * Protobuf type {@code context.OpticalLinkList} */ - public static final class FiberId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.FiberId) - FiberIdOrBuilder { + public static final class OpticalLinkList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLinkList) + OpticalLinkListOrBuilder { private static final long serialVersionUID = 0L; - // Use FiberId.newBuilder() to construct. - private FiberId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalLinkList.newBuilder() to construct. + private OpticalLinkList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private FiberId() { + private OpticalLinkList() { + opticalLinks_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new FiberId(); + return new OpticalLinkList(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_FiberId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_FiberId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.FiberId.class, context.ContextOuterClass.FiberId.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalLinkList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkList.class, context.ContextOuterClass.OpticalLinkList.Builder.class); } - public static final int FIBER_UUID_FIELD_NUMBER = 1; + public static final int OPTICAL_LINKS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List<context.ContextOuterClass.OpticalLink> opticalLinks_; + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + @java.lang.Override + public java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList() { + return opticalLinks_; + } - private context.ContextOuterClass.Uuid fiberUuid_; + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + @java.lang.Override + public java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList() { + return opticalLinks_; + } /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return Whether the fiberUuid field is set. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ @java.lang.Override - public boolean hasFiberUuid() { - return fiberUuid_ != null; + public int getOpticalLinksCount() { + return opticalLinks_.size(); } /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return The fiberUuid. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ @java.lang.Override - public context.ContextOuterClass.Uuid getFiberUuid() { - return fiberUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : fiberUuid_; + public context.ContextOuterClass.OpticalLink getOpticalLinks(int index) { + return opticalLinks_.get(index); } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ @java.lang.Override - public context.ContextOuterClass.UuidOrBuilder getFiberUuidOrBuilder() { - return fiberUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : fiberUuid_; + public context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index) { + return opticalLinks_.get(index); } private byte memoizedIsInitialized = -1; @@ -71882,8 +76233,8 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (fiberUuid_ != null) { - output.writeMessage(1, getFiberUuid()); + for (int i = 0; i < opticalLinks_.size(); i++) { + output.writeMessage(1, opticalLinks_.get(i)); } getUnknownFields().writeTo(output); } @@ -71894,8 +76245,8 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (fiberUuid_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getFiberUuid()); + for (int i = 0; i < opticalLinks_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, opticalLinks_.get(i)); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -71907,16 +76258,12 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.FiberId)) { + if (!(obj instanceof context.ContextOuterClass.OpticalLinkList)) { return super.equals(obj); } - context.ContextOuterClass.FiberId other = (context.ContextOuterClass.FiberId) obj; - if (hasFiberUuid() != other.hasFiberUuid()) + context.ContextOuterClass.OpticalLinkList other = (context.ContextOuterClass.OpticalLinkList) obj; + if (!getOpticalLinksList().equals(other.getOpticalLinksList())) return false; - if (hasFiberUuid()) { - if (!getFiberUuid().equals(other.getFiberUuid())) - return false; - } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; @@ -71929,60 +76276,60 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (hasFiberUuid()) { - hash = (37 * hash) + FIBER_UUID_FIELD_NUMBER; - hash = (53 * hash) + getFiberUuid().hashCode(); + if (getOpticalLinksCount() > 0) { + hash = (37 * hash) + OPTICAL_LINKS_FIELD_NUMBER; + hash = (53 * hash) + getOpticalLinksList().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.FiberId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.FiberId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.FiberId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.FiberId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.FiberId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.FiberId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.FiberId parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.FiberId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.FiberId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.FiberId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.FiberId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.FiberId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -71995,7 +76342,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.FiberId prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalLinkList prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -72011,21 +76358,21 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.FiberId} + * Protobuf type {@code context.OpticalLinkList} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.FiberId) - context.ContextOuterClass.FiberIdOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLinkList) + context.ContextOuterClass.OpticalLinkListOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_FiberId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_FiberId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.FiberId.class, context.ContextOuterClass.FiberId.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalLinkList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkList.class, context.ContextOuterClass.OpticalLinkList.Builder.class); } - // Construct using context.ContextOuterClass.FiberId.newBuilder() + // Construct using context.ContextOuterClass.OpticalLinkList.newBuilder() private Builder() { } @@ -72037,27 +76384,29 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - fiberUuid_ = null; - if (fiberUuidBuilder_ != null) { - fiberUuidBuilder_.dispose(); - fiberUuidBuilder_ = null; + if (opticalLinksBuilder_ == null) { + opticalLinks_ = java.util.Collections.emptyList(); + } else { + opticalLinks_ = null; + opticalLinksBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_FiberId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkList_descriptor; } @java.lang.Override - public context.ContextOuterClass.FiberId getDefaultInstanceForType() { - return context.ContextOuterClass.FiberId.getDefaultInstance(); + public context.ContextOuterClass.OpticalLinkList getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalLinkList.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.FiberId build() { - context.ContextOuterClass.FiberId result = buildPartial(); + public context.ContextOuterClass.OpticalLinkList build() { + context.ContextOuterClass.OpticalLinkList result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -72065,8 +76414,9 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.FiberId buildPartial() { - context.ContextOuterClass.FiberId result = new context.ContextOuterClass.FiberId(this); + public context.ContextOuterClass.OpticalLinkList buildPartial() { + context.ContextOuterClass.OpticalLinkList result = new context.ContextOuterClass.OpticalLinkList(this); + buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } @@ -72074,28 +76424,58 @@ public final class ContextOuterClass { return result; } - private void buildPartial0(context.ContextOuterClass.FiberId result) { - int from_bitField0_ = bitField0_; - if (((from_bitField0_ & 0x00000001) != 0)) { - result.fiberUuid_ = fiberUuidBuilder_ == null ? fiberUuid_ : fiberUuidBuilder_.build(); + private void buildPartialRepeatedFields(context.ContextOuterClass.OpticalLinkList result) { + if (opticalLinksBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + opticalLinks_ = java.util.Collections.unmodifiableList(opticalLinks_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.opticalLinks_ = opticalLinks_; + } else { + result.opticalLinks_ = opticalLinksBuilder_.build(); } } + private void buildPartial0(context.ContextOuterClass.OpticalLinkList result) { + int from_bitField0_ = bitField0_; + } + @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.FiberId) { - return mergeFrom((context.ContextOuterClass.FiberId) other); + if (other instanceof context.ContextOuterClass.OpticalLinkList) { + return mergeFrom((context.ContextOuterClass.OpticalLinkList) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.FiberId other) { - if (other == context.ContextOuterClass.FiberId.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalLinkList other) { + if (other == context.ContextOuterClass.OpticalLinkList.getDefaultInstance()) return this; - if (other.hasFiberUuid()) { - mergeFiberUuid(other.getFiberUuid()); + if (opticalLinksBuilder_ == null) { + if (!other.opticalLinks_.isEmpty()) { + if (opticalLinks_.isEmpty()) { + opticalLinks_ = other.opticalLinks_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureOpticalLinksIsMutable(); + opticalLinks_.addAll(other.opticalLinks_); + } + onChanged(); + } + } else { + if (!other.opticalLinks_.isEmpty()) { + if (opticalLinksBuilder_.isEmpty()) { + opticalLinksBuilder_.dispose(); + opticalLinksBuilder_ = null; + opticalLinks_ = other.opticalLinks_; + bitField0_ = (bitField0_ & ~0x00000001); + opticalLinksBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getOpticalLinksFieldBuilder() : null; + } else { + opticalLinksBuilder_.addAllMessages(other.opticalLinks_); + } + } } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); @@ -72122,8 +76502,13 @@ public final class ContextOuterClass { break; case 10: { - input.readMessage(getFiberUuidFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00000001; + context.ContextOuterClass.OpticalLink m = input.readMessage(context.ContextOuterClass.OpticalLink.parser(), extensionRegistry); + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(m); + } else { + opticalLinksBuilder_.addMessage(m); + } break; } // case 10 @@ -72150,122 +76535,241 @@ public final class ContextOuterClass { private int bitField0_; - private context.ContextOuterClass.Uuid fiberUuid_; + private java.util.List<context.ContextOuterClass.OpticalLink> opticalLinks_ = java.util.Collections.emptyList(); - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> fiberUuidBuilder_; + private void ensureOpticalLinksIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + opticalLinks_ = new java.util.ArrayList<context.ContextOuterClass.OpticalLink>(opticalLinks_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder> opticalLinksBuilder_; /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return Whether the fiberUuid field is set. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public boolean hasFiberUuid() { - return ((bitField0_ & 0x00000001) != 0); + public java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList() { + if (opticalLinksBuilder_ == null) { + return java.util.Collections.unmodifiableList(opticalLinks_); + } else { + return opticalLinksBuilder_.getMessageList(); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public int getOpticalLinksCount() { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.size(); + } else { + return opticalLinksBuilder_.getCount(); + } } /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return The fiberUuid. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public context.ContextOuterClass.Uuid getFiberUuid() { - if (fiberUuidBuilder_ == null) { - return fiberUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : fiberUuid_; + public context.ContextOuterClass.OpticalLink getOpticalLinks(int index) { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.get(index); } else { - return fiberUuidBuilder_.getMessage(); + return opticalLinksBuilder_.getMessage(index); } } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public Builder setFiberUuid(context.ContextOuterClass.Uuid value) { - if (fiberUuidBuilder_ == null) { + public Builder setOpticalLinks(int index, context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - fiberUuid_ = value; + ensureOpticalLinksIsMutable(); + opticalLinks_.set(index, value); + onChanged(); } else { - fiberUuidBuilder_.setMessage(value); + opticalLinksBuilder_.setMessage(index, value); } - bitField0_ |= 0x00000001; - onChanged(); return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public Builder setFiberUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { - if (fiberUuidBuilder_ == null) { - fiberUuid_ = builderForValue.build(); + public Builder setOpticalLinks(int index, context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.set(index, builderForValue.build()); + onChanged(); } else { - fiberUuidBuilder_.setMessage(builderForValue.build()); + opticalLinksBuilder_.setMessage(index, builderForValue.build()); } - bitField0_ |= 0x00000001; - onChanged(); return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public Builder mergeFiberUuid(context.ContextOuterClass.Uuid value) { - if (fiberUuidBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0) && fiberUuid_ != null && fiberUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { - getFiberUuidBuilder().mergeFrom(value); - } else { - fiberUuid_ = value; + public Builder addOpticalLinks(context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); } + ensureOpticalLinksIsMutable(); + opticalLinks_.add(value); + onChanged(); } else { - fiberUuidBuilder_.mergeFrom(value); + opticalLinksBuilder_.addMessage(value); } - bitField0_ |= 0x00000001; - onChanged(); return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public Builder clearFiberUuid() { - bitField0_ = (bitField0_ & ~0x00000001); - fiberUuid_ = null; - if (fiberUuidBuilder_ != null) { - fiberUuidBuilder_.dispose(); - fiberUuidBuilder_ = null; + public Builder addOpticalLinks(int index, context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinksIsMutable(); + opticalLinks_.add(index, value); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(index, value); } - onChanged(); return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public context.ContextOuterClass.Uuid.Builder getFiberUuidBuilder() { - bitField0_ |= 0x00000001; - onChanged(); - return getFiberUuidFieldBuilder().getBuilder(); + public Builder addOpticalLinks(context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(builderForValue.build()); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public Builder addOpticalLinks(int index, context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(index, builderForValue.build()); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public Builder addAllOpticalLinks(java.lang.Iterable<? extends context.ContextOuterClass.OpticalLink> values) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, opticalLinks_); + onChanged(); + } else { + opticalLinksBuilder_.addAllMessages(values); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public Builder clearOpticalLinks() { + if (opticalLinksBuilder_ == null) { + opticalLinks_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + opticalLinksBuilder_.clear(); + } + return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public context.ContextOuterClass.UuidOrBuilder getFiberUuidOrBuilder() { - if (fiberUuidBuilder_ != null) { - return fiberUuidBuilder_.getMessageOrBuilder(); + public Builder removeOpticalLinks(int index) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.remove(index); + onChanged(); } else { - return fiberUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : fiberUuid_; + opticalLinksBuilder_.remove(index); } + return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getFiberUuidFieldBuilder() { - if (fiberUuidBuilder_ == null) { - fiberUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getFiberUuid(), getParentForChildren(), isClean()); - fiberUuid_ = null; + public context.ContextOuterClass.OpticalLink.Builder getOpticalLinksBuilder(int index) { + return getOpticalLinksFieldBuilder().getBuilder(index); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index) { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.get(index); + } else { + return opticalLinksBuilder_.getMessageOrBuilder(index); } - return fiberUuidBuilder_; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList() { + if (opticalLinksBuilder_ != null) { + return opticalLinksBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(opticalLinks_); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public context.ContextOuterClass.OpticalLink.Builder addOpticalLinksBuilder() { + return getOpticalLinksFieldBuilder().addBuilder(context.ContextOuterClass.OpticalLink.getDefaultInstance()); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public context.ContextOuterClass.OpticalLink.Builder addOpticalLinksBuilder(int index) { + return getOpticalLinksFieldBuilder().addBuilder(index, context.ContextOuterClass.OpticalLink.getDefaultInstance()); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public java.util.List<context.ContextOuterClass.OpticalLink.Builder> getOpticalLinksBuilderList() { + return getOpticalLinksFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksFieldBuilder() { + if (opticalLinksBuilder_ == null) { + opticalLinksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder>(opticalLinks_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + opticalLinks_ = null; + } + return opticalLinksBuilder_; } @java.lang.Override @@ -72277,24 +76781,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.FiberId) + // @@protoc_insertion_point(builder_scope:context.OpticalLinkList) } - // @@protoc_insertion_point(class_scope:context.FiberId) - private static final context.ContextOuterClass.FiberId DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalLinkList) + private static final context.ContextOuterClass.OpticalLinkList DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.FiberId(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLinkList(); } - public static context.ContextOuterClass.FiberId getDefaultInstance() { + public static context.ContextOuterClass.OpticalLinkList getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<FiberId> PARSER = new com.google.protobuf.AbstractParser<FiberId>() { + private static final com.google.protobuf.Parser<OpticalLinkList> PARSER = new com.google.protobuf.AbstractParser<OpticalLinkList>() { @java.lang.Override - public FiberId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public OpticalLinkList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -72309,255 +76813,248 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<FiberId> parser() { + public static com.google.protobuf.Parser<OpticalLinkList> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<FiberId> getParserForType() { + public com.google.protobuf.Parser<OpticalLinkList> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.FiberId getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalLinkList getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface FiberOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Fiber) + public interface OpticalLinkDetailsOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLinkDetails) com.google.protobuf.MessageOrBuilder { /** - * <code>string ID = 10;</code> - * @return The iD. - */ - java.lang.String getID(); - - /** - * <code>string ID = 10;</code> - * @return The bytes for iD. + * <code>float length = 1;</code> + * @return The length. */ - com.google.protobuf.ByteString getIDBytes(); + float getLength(); /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The srcPort. */ java.lang.String getSrcPort(); /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The bytes for srcPort. */ com.google.protobuf.ByteString getSrcPortBytes(); /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The dstPort. */ java.lang.String getDstPort(); /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The bytes for dstPort. */ com.google.protobuf.ByteString getDstPortBytes(); /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The localPeerPort. */ java.lang.String getLocalPeerPort(); /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The bytes for localPeerPort. */ com.google.protobuf.ByteString getLocalPeerPortBytes(); /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The remotePeerPort. */ java.lang.String getRemotePeerPort(); /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The bytes for remotePeerPort. */ com.google.protobuf.ByteString getRemotePeerPortBytes(); /** - * <code>repeated int32 c_slots = 5;</code> - * @return A list containing the cSlots. + * <code>bool used = 6;</code> + * @return The used. */ - java.util.List<java.lang.Integer> getCSlotsList(); + boolean getUsed(); /** - * <code>repeated int32 c_slots = 5;</code> - * @return The count of cSlots. + * <code>map<string, int32> c_slots = 7;</code> */ int getCSlotsCount(); /** - * <code>repeated int32 c_slots = 5;</code> - * @param index The index of the element to return. - * @return The cSlots at the given index. + * <code>map<string, int32> c_slots = 7;</code> + */ + boolean containsCSlots(java.lang.String key); + + /** + * Use {@link #getCSlotsMap()} instead. + */ + @java.lang.Deprecated + java.util.Map<java.lang.String, java.lang.Integer> getCSlots(); + + /** + * <code>map<string, int32> c_slots = 7;</code> + */ + java.util.Map<java.lang.String, java.lang.Integer> getCSlotsMap(); + + /** + * <code>map<string, int32> c_slots = 7;</code> */ - int getCSlots(int index); + int getCSlotsOrDefault(java.lang.String key, int defaultValue); /** - * <code>repeated int32 l_slots = 6;</code> - * @return A list containing the lSlots. + * <code>map<string, int32> c_slots = 7;</code> */ - java.util.List<java.lang.Integer> getLSlotsList(); + int getCSlotsOrThrow(java.lang.String key); /** - * <code>repeated int32 l_slots = 6;</code> - * @return The count of lSlots. + * <code>map<string, int32> l_slots = 8;</code> */ int getLSlotsCount(); /** - * <code>repeated int32 l_slots = 6;</code> - * @param index The index of the element to return. - * @return The lSlots at the given index. + * <code>map<string, int32> l_slots = 8;</code> */ - int getLSlots(int index); + boolean containsLSlots(java.lang.String key); /** - * <code>repeated int32 s_slots = 7;</code> - * @return A list containing the sSlots. + * Use {@link #getLSlotsMap()} instead. */ - java.util.List<java.lang.Integer> getSSlotsList(); + @java.lang.Deprecated + java.util.Map<java.lang.String, java.lang.Integer> getLSlots(); /** - * <code>repeated int32 s_slots = 7;</code> - * @return The count of sSlots. + * <code>map<string, int32> l_slots = 8;</code> */ - int getSSlotsCount(); + java.util.Map<java.lang.String, java.lang.Integer> getLSlotsMap(); /** - * <code>repeated int32 s_slots = 7;</code> - * @param index The index of the element to return. - * @return The sSlots at the given index. + * <code>map<string, int32> l_slots = 8;</code> */ - int getSSlots(int index); + int getLSlotsOrDefault(java.lang.String key, int defaultValue); /** - * <code>float length = 8;</code> - * @return The length. + * <code>map<string, int32> l_slots = 8;</code> */ - float getLength(); + int getLSlotsOrThrow(java.lang.String key); /** - * <code>bool used = 9;</code> - * @return The used. + * <code>map<string, int32> s_slots = 9;</code> */ - boolean getUsed(); + int getSSlotsCount(); /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return Whether the fiberUuid field is set. + * <code>map<string, int32> s_slots = 9;</code> */ - boolean hasFiberUuid(); + boolean containsSSlots(java.lang.String key); /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return The fiberUuid. + * Use {@link #getSSlotsMap()} instead. */ - context.ContextOuterClass.FiberId getFiberUuid(); + @java.lang.Deprecated + java.util.Map<java.lang.String, java.lang.Integer> getSSlots(); /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - context.ContextOuterClass.FiberIdOrBuilder getFiberUuidOrBuilder(); + java.util.Map<java.lang.String, java.lang.Integer> getSSlotsMap(); + + /** + * <code>map<string, int32> s_slots = 9;</code> + */ + int getSSlotsOrDefault(java.lang.String key, int defaultValue); + + /** + * <code>map<string, int32> s_slots = 9;</code> + */ + int getSSlotsOrThrow(java.lang.String key); } /** - * Protobuf type {@code context.Fiber} + * Protobuf type {@code context.OpticalLinkDetails} */ - public static final class Fiber extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Fiber) - FiberOrBuilder { + public static final class OpticalLinkDetails extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLinkDetails) + OpticalLinkDetailsOrBuilder { private static final long serialVersionUID = 0L; - // Use Fiber.newBuilder() to construct. - private Fiber(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalLinkDetails.newBuilder() to construct. + private OpticalLinkDetails(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private Fiber() { - iD_ = ""; + private OpticalLinkDetails() { srcPort_ = ""; dstPort_ = ""; localPeerPort_ = ""; remotePeerPort_ = ""; - cSlots_ = emptyIntList(); - lSlots_ = emptyIntList(); - sSlots_ = emptyIntList(); } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new Fiber(); + return new OpticalLinkDetails(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_Fiber_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; } + @SuppressWarnings({ "rawtypes" }) @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Fiber_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Fiber.class, context.ContextOuterClass.Fiber.Builder.class); + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch(number) { + case 7: + return internalGetCSlots(); + case 8: + return internalGetLSlots(); + case 9: + return internalGetSSlots(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } } - public static final int ID_FIELD_NUMBER = 10; - - @SuppressWarnings("serial") - private volatile java.lang.Object iD_ = ""; - - /** - * <code>string ID = 10;</code> - * @return The iD. - */ @java.lang.Override - public java.lang.String getID() { - java.lang.Object ref = iD_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - iD_ = s; - return s; - } + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkDetails.class, context.ContextOuterClass.OpticalLinkDetails.Builder.class); } + public static final int LENGTH_FIELD_NUMBER = 1; + + private float length_ = 0F; + /** - * <code>string ID = 10;</code> - * @return The bytes for iD. + * <code>float length = 1;</code> + * @return The length. */ @java.lang.Override - public com.google.protobuf.ByteString getIDBytes() { - java.lang.Object ref = iD_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - iD_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public float getLength() { + return length_; } - public static final int SRC_PORT_FIELD_NUMBER = 1; + public static final int SRC_PORT_FIELD_NUMBER = 2; @SuppressWarnings("serial") private volatile java.lang.Object srcPort_ = ""; /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The srcPort. */ @java.lang.Override @@ -72574,7 +77071,7 @@ public final class ContextOuterClass { } /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The bytes for srcPort. */ @java.lang.Override @@ -72589,13 +77086,13 @@ public final class ContextOuterClass { } } - public static final int DST_PORT_FIELD_NUMBER = 2; + public static final int DST_PORT_FIELD_NUMBER = 3; @SuppressWarnings("serial") private volatile java.lang.Object dstPort_ = ""; /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The dstPort. */ @java.lang.Override @@ -72612,7 +77109,7 @@ public final class ContextOuterClass { } /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The bytes for dstPort. */ @java.lang.Override @@ -72627,13 +77124,13 @@ public final class ContextOuterClass { } } - public static final int LOCAL_PEER_PORT_FIELD_NUMBER = 3; + public static final int LOCAL_PEER_PORT_FIELD_NUMBER = 4; @SuppressWarnings("serial") private volatile java.lang.Object localPeerPort_ = ""; /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The localPeerPort. */ @java.lang.Override @@ -72650,7 +77147,7 @@ public final class ContextOuterClass { } /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The bytes for localPeerPort. */ @java.lang.Override @@ -72665,13 +77162,13 @@ public final class ContextOuterClass { } } - public static final int REMOTE_PEER_PORT_FIELD_NUMBER = 4; + public static final int REMOTE_PEER_PORT_FIELD_NUMBER = 5; @SuppressWarnings("serial") private volatile java.lang.Object remotePeerPort_ = ""; /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The remotePeerPort. */ @java.lang.Override @@ -72688,7 +77185,7 @@ public final class ContextOuterClass { } /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The bytes for remotePeerPort. */ @java.lang.Override @@ -72703,159 +77200,245 @@ public final class ContextOuterClass { } } - public static final int C_SLOTS_FIELD_NUMBER = 5; + public static final int USED_FIELD_NUMBER = 6; - @SuppressWarnings("serial") - private com.google.protobuf.Internal.IntList cSlots_; + private boolean used_ = false; /** - * <code>repeated int32 c_slots = 5;</code> - * @return A list containing the cSlots. + * <code>bool used = 6;</code> + * @return The used. */ @java.lang.Override - public java.util.List<java.lang.Integer> getCSlotsList() { + public boolean getUsed() { + return used_; + } + + public static final int C_SLOTS_FIELD_NUMBER = 7; + + private static final class CSlotsDefaultEntryHolder { + + static final com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> defaultEntry = com.google.protobuf.MapEntry.<java.lang.String, java.lang.Integer>newDefaultInstance(context.ContextOuterClass.internal_static_context_OpticalLinkDetails_CSlotsEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.INT32, 0); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> cSlots_; + + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetCSlots() { + if (cSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(CSlotsDefaultEntryHolder.defaultEntry); + } return cSlots_; } - /** - * <code>repeated int32 c_slots = 5;</code> - * @return The count of cSlots. - */ public int getCSlotsCount() { - return cSlots_.size(); + return internalGetCSlots().getMap().size(); } /** - * <code>repeated int32 c_slots = 5;</code> - * @param index The index of the element to return. - * @return The cSlots at the given index. + * <code>map<string, int32> c_slots = 7;</code> */ - public int getCSlots(int index) { - return cSlots_.getInt(index); + @java.lang.Override + public boolean containsCSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetCSlots().getMap().containsKey(key); } - private int cSlotsMemoizedSerializedSize = -1; - - public static final int L_SLOTS_FIELD_NUMBER = 6; - - @SuppressWarnings("serial") - private com.google.protobuf.Internal.IntList lSlots_; + /** + * Use {@link #getCSlotsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getCSlots() { + return getCSlotsMap(); + } /** - * <code>repeated int32 l_slots = 6;</code> - * @return A list containing the lSlots. + * <code>map<string, int32> c_slots = 7;</code> */ @java.lang.Override - public java.util.List<java.lang.Integer> getLSlotsList() { - return lSlots_; + public java.util.Map<java.lang.String, java.lang.Integer> getCSlotsMap() { + return internalGetCSlots().getMap(); } /** - * <code>repeated int32 l_slots = 6;</code> - * @return The count of lSlots. + * <code>map<string, int32> c_slots = 7;</code> */ - public int getLSlotsCount() { - return lSlots_.size(); + @java.lang.Override + public int getCSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetCSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** - * <code>repeated int32 l_slots = 6;</code> - * @param index The index of the element to return. - * @return The lSlots at the given index. + * <code>map<string, int32> c_slots = 7;</code> */ - public int getLSlots(int index) { - return lSlots_.getInt(index); + @java.lang.Override + public int getCSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetCSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); } - private int lSlotsMemoizedSerializedSize = -1; + public static final int L_SLOTS_FIELD_NUMBER = 8; + + private static final class LSlotsDefaultEntryHolder { - public static final int S_SLOTS_FIELD_NUMBER = 7; + static final com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> defaultEntry = com.google.protobuf.MapEntry.<java.lang.String, java.lang.Integer>newDefaultInstance(context.ContextOuterClass.internal_static_context_OpticalLinkDetails_LSlotsEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.INT32, 0); + } @SuppressWarnings("serial") - private com.google.protobuf.Internal.IntList sSlots_; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> lSlots_; + + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetLSlots() { + if (lSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(LSlotsDefaultEntryHolder.defaultEntry); + } + return lSlots_; + } + + public int getLSlotsCount() { + return internalGetLSlots().getMap().size(); + } /** - * <code>repeated int32 s_slots = 7;</code> - * @return A list containing the sSlots. + * <code>map<string, int32> l_slots = 8;</code> */ @java.lang.Override - public java.util.List<java.lang.Integer> getSSlotsList() { - return sSlots_; + public boolean containsLSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetLSlots().getMap().containsKey(key); } /** - * <code>repeated int32 s_slots = 7;</code> - * @return The count of sSlots. + * Use {@link #getLSlotsMap()} instead. */ - public int getSSlotsCount() { - return sSlots_.size(); + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getLSlots() { + return getLSlotsMap(); } /** - * <code>repeated int32 s_slots = 7;</code> - * @param index The index of the element to return. - * @return The sSlots at the given index. + * <code>map<string, int32> l_slots = 8;</code> */ - public int getSSlots(int index) { - return sSlots_.getInt(index); + @java.lang.Override + public java.util.Map<java.lang.String, java.lang.Integer> getLSlotsMap() { + return internalGetLSlots().getMap(); } - private int sSlotsMemoizedSerializedSize = -1; - - public static final int LENGTH_FIELD_NUMBER = 8; - - private float length_ = 0F; + /** + * <code>map<string, int32> l_slots = 8;</code> + */ + @java.lang.Override + public int getLSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetLSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } /** - * <code>float length = 8;</code> - * @return The length. + * <code>map<string, int32> l_slots = 8;</code> */ @java.lang.Override - public float getLength() { - return length_; + public int getLSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetLSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); } - public static final int USED_FIELD_NUMBER = 9; + public static final int S_SLOTS_FIELD_NUMBER = 9; - private boolean used_ = false; + private static final class SSlotsDefaultEntryHolder { + + static final com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> defaultEntry = com.google.protobuf.MapEntry.<java.lang.String, java.lang.Integer>newDefaultInstance(context.ContextOuterClass.internal_static_context_OpticalLinkDetails_SSlotsEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.INT32, 0); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> sSlots_; + + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetSSlots() { + if (sSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(SSlotsDefaultEntryHolder.defaultEntry); + } + return sSlots_; + } + + public int getSSlotsCount() { + return internalGetSSlots().getMap().size(); + } /** - * <code>bool used = 9;</code> - * @return The used. + * <code>map<string, int32> s_slots = 9;</code> */ @java.lang.Override - public boolean getUsed() { - return used_; + public boolean containsSSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetSSlots().getMap().containsKey(key); } - public static final int FIBER_UUID_FIELD_NUMBER = 11; - - private context.ContextOuterClass.FiberId fiberUuid_; + /** + * Use {@link #getSSlotsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getSSlots() { + return getSSlotsMap(); + } /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return Whether the fiberUuid field is set. + * <code>map<string, int32> s_slots = 9;</code> */ @java.lang.Override - public boolean hasFiberUuid() { - return fiberUuid_ != null; + public java.util.Map<java.lang.String, java.lang.Integer> getSSlotsMap() { + return internalGetSSlots().getMap(); } /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return The fiberUuid. + * <code>map<string, int32> s_slots = 9;</code> */ @java.lang.Override - public context.ContextOuterClass.FiberId getFiberUuid() { - return fiberUuid_ == null ? context.ContextOuterClass.FiberId.getDefaultInstance() : fiberUuid_; + public int getSSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetSSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ @java.lang.Override - public context.ContextOuterClass.FiberIdOrBuilder getFiberUuidOrBuilder() { - return fiberUuid_ == null ? context.ContextOuterClass.FiberId.getDefaultInstance() : fiberUuid_; + public int getSSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetSSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); } private byte memoizedIsInitialized = -1; @@ -72873,52 +77456,27 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - getSerializedSize(); + if (java.lang.Float.floatToRawIntBits(length_) != 0) { + output.writeFloat(1, length_); + } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcPort_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, srcPort_); + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, srcPort_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstPort_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, dstPort_); + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, dstPort_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(localPeerPort_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, localPeerPort_); + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, localPeerPort_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remotePeerPort_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, remotePeerPort_); - } - if (getCSlotsList().size() > 0) { - output.writeUInt32NoTag(42); - output.writeUInt32NoTag(cSlotsMemoizedSerializedSize); - } - for (int i = 0; i < cSlots_.size(); i++) { - output.writeInt32NoTag(cSlots_.getInt(i)); - } - if (getLSlotsList().size() > 0) { - output.writeUInt32NoTag(50); - output.writeUInt32NoTag(lSlotsMemoizedSerializedSize); - } - for (int i = 0; i < lSlots_.size(); i++) { - output.writeInt32NoTag(lSlots_.getInt(i)); - } - if (getSSlotsList().size() > 0) { - output.writeUInt32NoTag(58); - output.writeUInt32NoTag(sSlotsMemoizedSerializedSize); - } - for (int i = 0; i < sSlots_.size(); i++) { - output.writeInt32NoTag(sSlots_.getInt(i)); - } - if (java.lang.Float.floatToRawIntBits(length_) != 0) { - output.writeFloat(8, length_); + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, remotePeerPort_); } if (used_ != false) { - output.writeBool(9, used_); - } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(iD_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 10, iD_); - } - if (fiberUuid_ != null) { - output.writeMessage(11, getFiberUuid()); + output.writeBool(6, used_); } + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(output, internalGetCSlots(), CSlotsDefaultEntryHolder.defaultEntry, 7); + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(output, internalGetLSlots(), LSlotsDefaultEntryHolder.defaultEntry, 8); + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(output, internalGetSSlots(), SSlotsDefaultEntryHolder.defaultEntry, 9); getUnknownFields().writeTo(output); } @@ -72928,65 +77486,35 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; + if (java.lang.Float.floatToRawIntBits(length_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, length_); + } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcPort_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, srcPort_); + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, srcPort_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstPort_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, dstPort_); + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, dstPort_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(localPeerPort_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, localPeerPort_); + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, localPeerPort_); } if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remotePeerPort_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, remotePeerPort_); - } - { - int dataSize = 0; - for (int i = 0; i < cSlots_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(cSlots_.getInt(i)); - } - size += dataSize; - if (!getCSlotsList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(dataSize); - } - cSlotsMemoizedSerializedSize = dataSize; - } - { - int dataSize = 0; - for (int i = 0; i < lSlots_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(lSlots_.getInt(i)); - } - size += dataSize; - if (!getLSlotsList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(dataSize); - } - lSlotsMemoizedSerializedSize = dataSize; - } - { - int dataSize = 0; - for (int i = 0; i < sSlots_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(sSlots_.getInt(i)); - } - size += dataSize; - if (!getSSlotsList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(dataSize); - } - sSlotsMemoizedSerializedSize = dataSize; - } - if (java.lang.Float.floatToRawIntBits(length_) != 0) { - size += com.google.protobuf.CodedOutputStream.computeFloatSize(8, length_); + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, remotePeerPort_); } if (used_ != false) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(9, used_); + size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, used_); + } + for (java.util.Map.Entry<java.lang.String, java.lang.Integer> entry : internalGetCSlots().getMap().entrySet()) { + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> cSlots__ = CSlotsDefaultEntryHolder.defaultEntry.newBuilderForType().setKey(entry.getKey()).setValue(entry.getValue()).build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, cSlots__); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(iD_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, iD_); + for (java.util.Map.Entry<java.lang.String, java.lang.Integer> entry : internalGetLSlots().getMap().entrySet()) { + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> lSlots__ = LSlotsDefaultEntryHolder.defaultEntry.newBuilderForType().setKey(entry.getKey()).setValue(entry.getValue()).build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, lSlots__); } - if (fiberUuid_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getFiberUuid()); + for (java.util.Map.Entry<java.lang.String, java.lang.Integer> entry : internalGetSSlots().getMap().entrySet()) { + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> sSlots__ = SSlotsDefaultEntryHolder.defaultEntry.newBuilderForType().setKey(entry.getKey()).setValue(entry.getValue()).build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, sSlots__); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -72998,11 +77526,11 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.Fiber)) { + if (!(obj instanceof context.ContextOuterClass.OpticalLinkDetails)) { return super.equals(obj); } - context.ContextOuterClass.Fiber other = (context.ContextOuterClass.Fiber) obj; - if (!getID().equals(other.getID())) + context.ContextOuterClass.OpticalLinkDetails other = (context.ContextOuterClass.OpticalLinkDetails) obj; + if (java.lang.Float.floatToIntBits(getLength()) != java.lang.Float.floatToIntBits(other.getLength())) return false; if (!getSrcPort().equals(other.getSrcPort())) return false; @@ -73012,22 +77540,14 @@ public final class ContextOuterClass { return false; if (!getRemotePeerPort().equals(other.getRemotePeerPort())) return false; - if (!getCSlotsList().equals(other.getCSlotsList())) - return false; - if (!getLSlotsList().equals(other.getLSlotsList())) - return false; - if (!getSSlotsList().equals(other.getSSlotsList())) + if (getUsed() != other.getUsed()) return false; - if (java.lang.Float.floatToIntBits(getLength()) != java.lang.Float.floatToIntBits(other.getLength())) + if (!internalGetCSlots().equals(other.internalGetCSlots())) return false; - if (getUsed() != other.getUsed()) + if (!internalGetLSlots().equals(other.internalGetLSlots())) return false; - if (hasFiberUuid() != other.hasFiberUuid()) + if (!internalGetSSlots().equals(other.internalGetSSlots())) return false; - if (hasFiberUuid()) { - if (!getFiberUuid().equals(other.getFiberUuid())) - return false; - } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; @@ -73040,8 +77560,8 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getID().hashCode(); + hash = (37 * hash) + LENGTH_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits(getLength()); hash = (37 * hash) + SRC_PORT_FIELD_NUMBER; hash = (53 * hash) + getSrcPort().hashCode(); hash = (37 * hash) + DST_PORT_FIELD_NUMBER; @@ -73050,76 +77570,70 @@ public final class ContextOuterClass { hash = (53 * hash) + getLocalPeerPort().hashCode(); hash = (37 * hash) + REMOTE_PEER_PORT_FIELD_NUMBER; hash = (53 * hash) + getRemotePeerPort().hashCode(); - if (getCSlotsCount() > 0) { + hash = (37 * hash) + USED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getUsed()); + if (!internalGetCSlots().getMap().isEmpty()) { hash = (37 * hash) + C_SLOTS_FIELD_NUMBER; - hash = (53 * hash) + getCSlotsList().hashCode(); + hash = (53 * hash) + internalGetCSlots().hashCode(); } - if (getLSlotsCount() > 0) { + if (!internalGetLSlots().getMap().isEmpty()) { hash = (37 * hash) + L_SLOTS_FIELD_NUMBER; - hash = (53 * hash) + getLSlotsList().hashCode(); + hash = (53 * hash) + internalGetLSlots().hashCode(); } - if (getSSlotsCount() > 0) { + if (!internalGetSSlots().getMap().isEmpty()) { hash = (37 * hash) + S_SLOTS_FIELD_NUMBER; - hash = (53 * hash) + getSSlotsList().hashCode(); - } - hash = (37 * hash) + LENGTH_FIELD_NUMBER; - hash = (53 * hash) + java.lang.Float.floatToIntBits(getLength()); - hash = (37 * hash) + USED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getUsed()); - if (hasFiberUuid()) { - hash = (37 * hash) + FIBER_UUID_FIELD_NUMBER; - hash = (53 * hash) + getFiberUuid().hashCode(); + hash = (53 * hash) + internalGetSSlots().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.Fiber parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Fiber parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Fiber parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Fiber parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Fiber parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Fiber parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Fiber parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.Fiber parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.Fiber parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.Fiber parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.Fiber parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.Fiber parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -73132,7 +77646,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.Fiber prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalLinkDetails prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -73148,21 +77662,49 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.Fiber} + * Protobuf type {@code context.OpticalLinkDetails} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Fiber) - context.ContextOuterClass.FiberOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLinkDetails) + context.ContextOuterClass.OpticalLinkDetailsOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_Fiber_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch(number) { + case 7: + return internalGetCSlots(); + case 8: + return internalGetLSlots(); + case 9: + return internalGetSSlots(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + switch(number) { + case 7: + return internalGetMutableCSlots(); + case 8: + return internalGetMutableLSlots(); + case 9: + return internalGetMutableSSlots(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Fiber_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Fiber.class, context.ContextOuterClass.Fiber.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkDetails.class, context.ContextOuterClass.OpticalLinkDetails.Builder.class); } - // Construct using context.ContextOuterClass.Fiber.newBuilder() + // Construct using context.ContextOuterClass.OpticalLinkDetails.newBuilder() private Builder() { } @@ -73174,37 +77716,31 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - iD_ = ""; + length_ = 0F; srcPort_ = ""; dstPort_ = ""; localPeerPort_ = ""; remotePeerPort_ = ""; - cSlots_ = emptyIntList(); - lSlots_ = emptyIntList(); - sSlots_ = emptyIntList(); - length_ = 0F; used_ = false; - fiberUuid_ = null; - if (fiberUuidBuilder_ != null) { - fiberUuidBuilder_.dispose(); - fiberUuidBuilder_ = null; - } + internalGetMutableCSlots().clear(); + internalGetMutableLSlots().clear(); + internalGetMutableSSlots().clear(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_Fiber_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; } @java.lang.Override - public context.ContextOuterClass.Fiber getDefaultInstanceForType() { - return context.ContextOuterClass.Fiber.getDefaultInstance(); + public context.ContextOuterClass.OpticalLinkDetails getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.Fiber build() { - context.ContextOuterClass.Fiber result = buildPartial(); + public context.ContextOuterClass.OpticalLinkDetails build() { + context.ContextOuterClass.OpticalLinkDetails result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -73212,9 +77748,8 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.Fiber buildPartial() { - context.ContextOuterClass.Fiber result = new context.ContextOuterClass.Fiber(this); - buildPartialRepeatedFields(result); + public context.ContextOuterClass.OpticalLinkDetails buildPartial() { + context.ContextOuterClass.OpticalLinkDetails result = new context.ContextOuterClass.OpticalLinkDetails(this); if (bitField0_ != 0) { buildPartial0(result); } @@ -73222,28 +77757,10 @@ public final class ContextOuterClass { return result; } - private void buildPartialRepeatedFields(context.ContextOuterClass.Fiber result) { - if (((bitField0_ & 0x00000020) != 0)) { - cSlots_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000020); - } - result.cSlots_ = cSlots_; - if (((bitField0_ & 0x00000040) != 0)) { - lSlots_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000040); - } - result.lSlots_ = lSlots_; - if (((bitField0_ & 0x00000080) != 0)) { - sSlots_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000080); - } - result.sSlots_ = sSlots_; - } - - private void buildPartial0(context.ContextOuterClass.Fiber result) { + private void buildPartial0(context.ContextOuterClass.OpticalLinkDetails result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { - result.iD_ = iD_; + result.length_ = length_; } if (((from_bitField0_ & 0x00000002) != 0)) { result.srcPort_ = srcPort_; @@ -73257,34 +77774,38 @@ public final class ContextOuterClass { if (((from_bitField0_ & 0x00000010) != 0)) { result.remotePeerPort_ = remotePeerPort_; } - if (((from_bitField0_ & 0x00000100) != 0)) { - result.length_ = length_; - } - if (((from_bitField0_ & 0x00000200) != 0)) { + if (((from_bitField0_ & 0x00000020) != 0)) { result.used_ = used_; } - if (((from_bitField0_ & 0x00000400) != 0)) { - result.fiberUuid_ = fiberUuidBuilder_ == null ? fiberUuid_ : fiberUuidBuilder_.build(); + if (((from_bitField0_ & 0x00000040) != 0)) { + result.cSlots_ = internalGetCSlots(); + result.cSlots_.makeImmutable(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.lSlots_ = internalGetLSlots(); + result.lSlots_.makeImmutable(); + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.sSlots_ = internalGetSSlots(); + result.sSlots_.makeImmutable(); } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.Fiber) { - return mergeFrom((context.ContextOuterClass.Fiber) other); + if (other instanceof context.ContextOuterClass.OpticalLinkDetails) { + return mergeFrom((context.ContextOuterClass.OpticalLinkDetails) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.Fiber other) { - if (other == context.ContextOuterClass.Fiber.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalLinkDetails other) { + if (other == context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance()) return this; - if (!other.getID().isEmpty()) { - iD_ = other.iD_; - bitField0_ |= 0x00000001; - onChanged(); + if (other.getLength() != 0F) { + setLength(other.getLength()); } if (!other.getSrcPort().isEmpty()) { srcPort_ = other.srcPort_; @@ -73306,45 +77827,15 @@ public final class ContextOuterClass { bitField0_ |= 0x00000010; onChanged(); } - if (!other.cSlots_.isEmpty()) { - if (cSlots_.isEmpty()) { - cSlots_ = other.cSlots_; - bitField0_ = (bitField0_ & ~0x00000020); - } else { - ensureCSlotsIsMutable(); - cSlots_.addAll(other.cSlots_); - } - onChanged(); - } - if (!other.lSlots_.isEmpty()) { - if (lSlots_.isEmpty()) { - lSlots_ = other.lSlots_; - bitField0_ = (bitField0_ & ~0x00000040); - } else { - ensureLSlotsIsMutable(); - lSlots_.addAll(other.lSlots_); - } - onChanged(); - } - if (!other.sSlots_.isEmpty()) { - if (sSlots_.isEmpty()) { - sSlots_ = other.sSlots_; - bitField0_ = (bitField0_ & ~0x00000080); - } else { - ensureSSlotsIsMutable(); - sSlots_.addAll(other.sSlots_); - } - onChanged(); - } - if (other.getLength() != 0F) { - setLength(other.getLength()); - } if (other.getUsed() != false) { setUsed(other.getUsed()); } - if (other.hasFiberUuid()) { - mergeFiberUuid(other.getFiberUuid()); - } + internalGetMutableCSlots().mergeFrom(other.internalGetCSlots()); + bitField0_ |= 0x00000040; + internalGetMutableLSlots().mergeFrom(other.internalGetLSlots()); + bitField0_ |= 0x00000080; + internalGetMutableSSlots().mergeFrom(other.internalGetSSlots()); + bitField0_ |= 0x00000100; this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -73368,122 +77859,72 @@ public final class ContextOuterClass { case 0: done = true; break; - case 10: + case 13: { - srcPort_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000002; + length_ = input.readFloat(); + bitField0_ |= 0x00000001; break; } - // case 10 + // case 13 case 18: { - dstPort_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000004; + srcPort_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; break; } // case 18 case 26: { - localPeerPort_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000008; + dstPort_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; break; } // case 26 case 34: { - remotePeerPort_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000010; + localPeerPort_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; break; } // case 34 - case 40: - { - int v = input.readInt32(); - ensureCSlotsIsMutable(); - cSlots_.addInt(v); - break; - } - // case 40 case 42: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - ensureCSlotsIsMutable(); - while (input.getBytesUntilLimit() > 0) { - cSlots_.addInt(input.readInt32()); - } - input.popLimit(limit); + remotePeerPort_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; break; } // case 42 case 48: { - int v = input.readInt32(); - ensureLSlotsIsMutable(); - lSlots_.addInt(v); + used_ = input.readBool(); + bitField0_ |= 0x00000020; break; } // case 48 - case 50: - { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - ensureLSlotsIsMutable(); - while (input.getBytesUntilLimit() > 0) { - lSlots_.addInt(input.readInt32()); - } - input.popLimit(limit); - break; - } - // case 50 - case 56: - { - int v = input.readInt32(); - ensureSSlotsIsMutable(); - sSlots_.addInt(v); - break; - } - // case 56 case 58: { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - ensureSSlotsIsMutable(); - while (input.getBytesUntilLimit() > 0) { - sSlots_.addInt(input.readInt32()); - } - input.popLimit(limit); + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> cSlots__ = input.readMessage(CSlotsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableCSlots().getMutableMap().put(cSlots__.getKey(), cSlots__.getValue()); + bitField0_ |= 0x00000040; break; } // case 58 - case 69: - { - length_ = input.readFloat(); - bitField0_ |= 0x00000100; - break; - } - // case 69 - case 72: - { - used_ = input.readBool(); - bitField0_ |= 0x00000200; - break; - } - // case 72 - case 82: + case 66: { - iD_ = input.readStringRequireUtf8(); - bitField0_ |= 0x00000001; + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> lSlots__ = input.readMessage(LSlotsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableLSlots().getMutableMap().put(lSlots__.getKey(), lSlots__.getValue()); + bitField0_ |= 0x00000080; break; } - // case 82 - case 90: + // case 66 + case 74: { - input.readMessage(getFiberUuidFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00000400; + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> sSlots__ = input.readMessage(SSlotsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableSSlots().getMutableMap().put(sSlots__.getKey(), sSlots__.getValue()); + bitField0_ |= 0x00000100; break; } - // case 90 + // case 74 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -73507,77 +77948,36 @@ public final class ContextOuterClass { private int bitField0_; - private java.lang.Object iD_ = ""; - - /** - * <code>string ID = 10;</code> - * @return The iD. - */ - public java.lang.String getID() { - java.lang.Object ref = iD_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - iD_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } + private float length_; /** - * <code>string ID = 10;</code> - * @return The bytes for iD. + * <code>float length = 1;</code> + * @return The length. */ - public com.google.protobuf.ByteString getIDBytes() { - java.lang.Object ref = iD_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - iD_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + @java.lang.Override + public float getLength() { + return length_; } /** - * <code>string ID = 10;</code> - * @param value The iD to set. + * <code>float length = 1;</code> + * @param value The length to set. * @return This builder for chaining. */ - public Builder setID(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - iD_ = value; + public Builder setLength(float value) { + length_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** - * <code>string ID = 10;</code> + * <code>float length = 1;</code> * @return This builder for chaining. */ - public Builder clearID() { - iD_ = getDefaultInstance().getID(); + public Builder clearLength() { bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - - /** - * <code>string ID = 10;</code> - * @param value The bytes for iD to set. - * @return This builder for chaining. - */ - public Builder setIDBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - iD_ = value; - bitField0_ |= 0x00000001; + length_ = 0F; onChanged(); return this; } @@ -73585,7 +77985,7 @@ public final class ContextOuterClass { private java.lang.Object srcPort_ = ""; /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The srcPort. */ public java.lang.String getSrcPort() { @@ -73601,7 +78001,7 @@ public final class ContextOuterClass { } /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The bytes for srcPort. */ public com.google.protobuf.ByteString getSrcPortBytes() { @@ -73616,7 +78016,7 @@ public final class ContextOuterClass { } /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @param value The srcPort to set. * @return This builder for chaining. */ @@ -73631,7 +78031,7 @@ public final class ContextOuterClass { } /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return This builder for chaining. */ public Builder clearSrcPort() { @@ -73642,7 +78042,7 @@ public final class ContextOuterClass { } /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @param value The bytes for srcPort to set. * @return This builder for chaining. */ @@ -73660,7 +78060,7 @@ public final class ContextOuterClass { private java.lang.Object dstPort_ = ""; /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The dstPort. */ public java.lang.String getDstPort() { @@ -73676,7 +78076,7 @@ public final class ContextOuterClass { } /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The bytes for dstPort. */ public com.google.protobuf.ByteString getDstPortBytes() { @@ -73691,7 +78091,7 @@ public final class ContextOuterClass { } /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @param value The dstPort to set. * @return This builder for chaining. */ @@ -73706,7 +78106,7 @@ public final class ContextOuterClass { } /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return This builder for chaining. */ public Builder clearDstPort() { @@ -73717,7 +78117,7 @@ public final class ContextOuterClass { } /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @param value The bytes for dstPort to set. * @return This builder for chaining. */ @@ -73735,7 +78135,7 @@ public final class ContextOuterClass { private java.lang.Object localPeerPort_ = ""; /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The localPeerPort. */ public java.lang.String getLocalPeerPort() { @@ -73751,7 +78151,7 @@ public final class ContextOuterClass { } /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The bytes for localPeerPort. */ public com.google.protobuf.ByteString getLocalPeerPortBytes() { @@ -73766,7 +78166,7 @@ public final class ContextOuterClass { } /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @param value The localPeerPort to set. * @return This builder for chaining. */ @@ -73781,7 +78181,7 @@ public final class ContextOuterClass { } /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return This builder for chaining. */ public Builder clearLocalPeerPort() { @@ -73792,7 +78192,7 @@ public final class ContextOuterClass { } /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @param value The bytes for localPeerPort to set. * @return This builder for chaining. */ @@ -73810,7 +78210,7 @@ public final class ContextOuterClass { private java.lang.Object remotePeerPort_ = ""; /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The remotePeerPort. */ public java.lang.String getRemotePeerPort() { @@ -73826,7 +78226,7 @@ public final class ContextOuterClass { } /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The bytes for remotePeerPort. */ public com.google.protobuf.ByteString getRemotePeerPortBytes() { @@ -73841,7 +78241,7 @@ public final class ContextOuterClass { } /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @param value The remotePeerPort to set. * @return This builder for chaining. */ @@ -73856,7 +78256,7 @@ public final class ContextOuterClass { } /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return This builder for chaining. */ public Builder clearRemotePeerPort() { @@ -73867,7 +78267,7 @@ public final class ContextOuterClass { } /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @param value The bytes for remotePeerPort to set. * @return This builder for chaining. */ @@ -73882,436 +78282,419 @@ public final class ContextOuterClass { return this; } - private com.google.protobuf.Internal.IntList cSlots_ = emptyIntList(); - - private void ensureCSlotsIsMutable() { - if (!((bitField0_ & 0x00000020) != 0)) { - cSlots_ = mutableCopy(cSlots_); - bitField0_ |= 0x00000020; - } - } - - /** - * <code>repeated int32 c_slots = 5;</code> - * @return A list containing the cSlots. - */ - public java.util.List<java.lang.Integer> getCSlotsList() { - return ((bitField0_ & 0x00000020) != 0) ? java.util.Collections.unmodifiableList(cSlots_) : cSlots_; - } - - /** - * <code>repeated int32 c_slots = 5;</code> - * @return The count of cSlots. - */ - public int getCSlotsCount() { - return cSlots_.size(); - } + private boolean used_; /** - * <code>repeated int32 c_slots = 5;</code> - * @param index The index of the element to return. - * @return The cSlots at the given index. + * <code>bool used = 6;</code> + * @return The used. */ - public int getCSlots(int index) { - return cSlots_.getInt(index); + @java.lang.Override + public boolean getUsed() { + return used_; } /** - * <code>repeated int32 c_slots = 5;</code> - * @param index The index to set the value at. - * @param value The cSlots to set. + * <code>bool used = 6;</code> + * @param value The used to set. * @return This builder for chaining. */ - public Builder setCSlots(int index, int value) { - ensureCSlotsIsMutable(); - cSlots_.setInt(index, value); + public Builder setUsed(boolean value) { + used_ = value; + bitField0_ |= 0x00000020; onChanged(); return this; } /** - * <code>repeated int32 c_slots = 5;</code> - * @param value The cSlots to add. + * <code>bool used = 6;</code> * @return This builder for chaining. */ - public Builder addCSlots(int value) { - ensureCSlotsIsMutable(); - cSlots_.addInt(value); + public Builder clearUsed() { + bitField0_ = (bitField0_ & ~0x00000020); + used_ = false; onChanged(); return this; } - /** - * <code>repeated int32 c_slots = 5;</code> - * @param values The cSlots to add. - * @return This builder for chaining. - */ - public Builder addAllCSlots(java.lang.Iterable<? extends java.lang.Integer> values) { - ensureCSlotsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, cSlots_); - onChanged(); - return this; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> cSlots_; + + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetCSlots() { + if (cSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(CSlotsDefaultEntryHolder.defaultEntry); + } + return cSlots_; } - /** - * <code>repeated int32 c_slots = 5;</code> - * @return This builder for chaining. - */ - public Builder clearCSlots() { - cSlots_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000020); + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetMutableCSlots() { + if (cSlots_ == null) { + cSlots_ = com.google.protobuf.MapField.newMapField(CSlotsDefaultEntryHolder.defaultEntry); + } + if (!cSlots_.isMutable()) { + cSlots_ = cSlots_.copy(); + } + bitField0_ |= 0x00000040; onChanged(); - return this; + return cSlots_; } - private com.google.protobuf.Internal.IntList lSlots_ = emptyIntList(); + public int getCSlotsCount() { + return internalGetCSlots().getMap().size(); + } - private void ensureLSlotsIsMutable() { - if (!((bitField0_ & 0x00000040) != 0)) { - lSlots_ = mutableCopy(lSlots_); - bitField0_ |= 0x00000040; + /** + * <code>map<string, int32> c_slots = 7;</code> + */ + @java.lang.Override + public boolean containsCSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } + return internalGetCSlots().getMap().containsKey(key); } /** - * <code>repeated int32 l_slots = 6;</code> - * @return A list containing the lSlots. + * Use {@link #getCSlotsMap()} instead. */ - public java.util.List<java.lang.Integer> getLSlotsList() { - return ((bitField0_ & 0x00000040) != 0) ? java.util.Collections.unmodifiableList(lSlots_) : lSlots_; + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getCSlots() { + return getCSlotsMap(); } /** - * <code>repeated int32 l_slots = 6;</code> - * @return The count of lSlots. + * <code>map<string, int32> c_slots = 7;</code> */ - public int getLSlotsCount() { - return lSlots_.size(); + @java.lang.Override + public java.util.Map<java.lang.String, java.lang.Integer> getCSlotsMap() { + return internalGetCSlots().getMap(); } /** - * <code>repeated int32 l_slots = 6;</code> - * @param index The index of the element to return. - * @return The lSlots at the given index. + * <code>map<string, int32> c_slots = 7;</code> */ - public int getLSlots(int index) { - return lSlots_.getInt(index); + @java.lang.Override + public int getCSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetCSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** - * <code>repeated int32 l_slots = 6;</code> - * @param index The index to set the value at. - * @param value The lSlots to set. - * @return This builder for chaining. + * <code>map<string, int32> c_slots = 7;</code> */ - public Builder setLSlots(int index, int value) { - ensureLSlotsIsMutable(); - lSlots_.setInt(index, value); - onChanged(); + @java.lang.Override + public int getCSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetCSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearCSlots() { + bitField0_ = (bitField0_ & ~0x00000040); + internalGetMutableCSlots().getMutableMap().clear(); return this; } /** - * <code>repeated int32 l_slots = 6;</code> - * @param value The lSlots to add. - * @return This builder for chaining. + * <code>map<string, int32> c_slots = 7;</code> */ - public Builder addLSlots(int value) { - ensureLSlotsIsMutable(); - lSlots_.addInt(value); - onChanged(); + public Builder removeCSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableCSlots().getMutableMap().remove(key); return this; } /** - * <code>repeated int32 l_slots = 6;</code> - * @param values The lSlots to add. - * @return This builder for chaining. + * Use alternate mutation accessors instead. */ - public Builder addAllLSlots(java.lang.Iterable<? extends java.lang.Integer> values) { - ensureLSlotsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, lSlots_); - onChanged(); + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getMutableCSlots() { + bitField0_ |= 0x00000040; + return internalGetMutableCSlots().getMutableMap(); + } + + /** + * <code>map<string, int32> c_slots = 7;</code> + */ + public Builder putCSlots(java.lang.String key, int value) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableCSlots().getMutableMap().put(key, value); + bitField0_ |= 0x00000040; return this; } /** - * <code>repeated int32 l_slots = 6;</code> - * @return This builder for chaining. + * <code>map<string, int32> c_slots = 7;</code> */ - public Builder clearLSlots() { - lSlots_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000040); - onChanged(); + public Builder putAllCSlots(java.util.Map<java.lang.String, java.lang.Integer> values) { + internalGetMutableCSlots().getMutableMap().putAll(values); + bitField0_ |= 0x00000040; return this; } - private com.google.protobuf.Internal.IntList sSlots_ = emptyIntList(); + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> lSlots_; - private void ensureSSlotsIsMutable() { - if (!((bitField0_ & 0x00000080) != 0)) { - sSlots_ = mutableCopy(sSlots_); - bitField0_ |= 0x00000080; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetLSlots() { + if (lSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(LSlotsDefaultEntryHolder.defaultEntry); } + return lSlots_; } - /** - * <code>repeated int32 s_slots = 7;</code> - * @return A list containing the sSlots. - */ - public java.util.List<java.lang.Integer> getSSlotsList() { - return ((bitField0_ & 0x00000080) != 0) ? java.util.Collections.unmodifiableList(sSlots_) : sSlots_; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetMutableLSlots() { + if (lSlots_ == null) { + lSlots_ = com.google.protobuf.MapField.newMapField(LSlotsDefaultEntryHolder.defaultEntry); + } + if (!lSlots_.isMutable()) { + lSlots_ = lSlots_.copy(); + } + bitField0_ |= 0x00000080; + onChanged(); + return lSlots_; } - /** - * <code>repeated int32 s_slots = 7;</code> - * @return The count of sSlots. - */ - public int getSSlotsCount() { - return sSlots_.size(); + public int getLSlotsCount() { + return internalGetLSlots().getMap().size(); } /** - * <code>repeated int32 s_slots = 7;</code> - * @param index The index of the element to return. - * @return The sSlots at the given index. + * <code>map<string, int32> l_slots = 8;</code> */ - public int getSSlots(int index) { - return sSlots_.getInt(index); + @java.lang.Override + public boolean containsLSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetLSlots().getMap().containsKey(key); } /** - * <code>repeated int32 s_slots = 7;</code> - * @param index The index to set the value at. - * @param value The sSlots to set. - * @return This builder for chaining. + * Use {@link #getLSlotsMap()} instead. */ - public Builder setSSlots(int index, int value) { - ensureSSlotsIsMutable(); - sSlots_.setInt(index, value); - onChanged(); - return this; + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getLSlots() { + return getLSlotsMap(); } /** - * <code>repeated int32 s_slots = 7;</code> - * @param value The sSlots to add. - * @return This builder for chaining. + * <code>map<string, int32> l_slots = 8;</code> */ - public Builder addSSlots(int value) { - ensureSSlotsIsMutable(); - sSlots_.addInt(value); - onChanged(); - return this; + @java.lang.Override + public java.util.Map<java.lang.String, java.lang.Integer> getLSlotsMap() { + return internalGetLSlots().getMap(); } /** - * <code>repeated int32 s_slots = 7;</code> - * @param values The sSlots to add. - * @return This builder for chaining. + * <code>map<string, int32> l_slots = 8;</code> */ - public Builder addAllSSlots(java.lang.Iterable<? extends java.lang.Integer> values) { - ensureSSlotsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sSlots_); - onChanged(); - return this; + @java.lang.Override + public int getLSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetLSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** - * <code>repeated int32 s_slots = 7;</code> - * @return This builder for chaining. + * <code>map<string, int32> l_slots = 8;</code> */ - public Builder clearSSlots() { - sSlots_ = emptyIntList(); + @java.lang.Override + public int getLSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetLSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearLSlots() { bitField0_ = (bitField0_ & ~0x00000080); - onChanged(); + internalGetMutableLSlots().getMutableMap().clear(); return this; } - private float length_; - /** - * <code>float length = 8;</code> - * @return The length. + * <code>map<string, int32> l_slots = 8;</code> */ - @java.lang.Override - public float getLength() { - return length_; + public Builder removeLSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableLSlots().getMutableMap().remove(key); + return this; } /** - * <code>float length = 8;</code> - * @param value The length to set. - * @return This builder for chaining. + * Use alternate mutation accessors instead. */ - public Builder setLength(float value) { - length_ = value; - bitField0_ |= 0x00000100; - onChanged(); - return this; + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getMutableLSlots() { + bitField0_ |= 0x00000080; + return internalGetMutableLSlots().getMutableMap(); } /** - * <code>float length = 8;</code> - * @return This builder for chaining. + * <code>map<string, int32> l_slots = 8;</code> */ - public Builder clearLength() { - bitField0_ = (bitField0_ & ~0x00000100); - length_ = 0F; - onChanged(); + public Builder putLSlots(java.lang.String key, int value) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableLSlots().getMutableMap().put(key, value); + bitField0_ |= 0x00000080; return this; } - private boolean used_; - /** - * <code>bool used = 9;</code> - * @return The used. + * <code>map<string, int32> l_slots = 8;</code> */ - @java.lang.Override - public boolean getUsed() { - return used_; + public Builder putAllLSlots(java.util.Map<java.lang.String, java.lang.Integer> values) { + internalGetMutableLSlots().getMutableMap().putAll(values); + bitField0_ |= 0x00000080; + return this; } - /** - * <code>bool used = 9;</code> - * @param value The used to set. - * @return This builder for chaining. - */ - public Builder setUsed(boolean value) { - used_ = value; - bitField0_ |= 0x00000200; - onChanged(); - return this; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> sSlots_; + + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetSSlots() { + if (sSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(SSlotsDefaultEntryHolder.defaultEntry); + } + return sSlots_; } - /** - * <code>bool used = 9;</code> - * @return This builder for chaining. - */ - public Builder clearUsed() { - bitField0_ = (bitField0_ & ~0x00000200); - used_ = false; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetMutableSSlots() { + if (sSlots_ == null) { + sSlots_ = com.google.protobuf.MapField.newMapField(SSlotsDefaultEntryHolder.defaultEntry); + } + if (!sSlots_.isMutable()) { + sSlots_ = sSlots_.copy(); + } + bitField0_ |= 0x00000100; onChanged(); - return this; + return sSlots_; } - private context.ContextOuterClass.FiberId fiberUuid_; - - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.FiberId, context.ContextOuterClass.FiberId.Builder, context.ContextOuterClass.FiberIdOrBuilder> fiberUuidBuilder_; + public int getSSlotsCount() { + return internalGetSSlots().getMap().size(); + } /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return Whether the fiberUuid field is set. + * <code>map<string, int32> s_slots = 9;</code> */ - public boolean hasFiberUuid() { - return ((bitField0_ & 0x00000400) != 0); + @java.lang.Override + public boolean containsSSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetSSlots().getMap().containsKey(key); } /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return The fiberUuid. + * Use {@link #getSSlotsMap()} instead. */ - public context.ContextOuterClass.FiberId getFiberUuid() { - if (fiberUuidBuilder_ == null) { - return fiberUuid_ == null ? context.ContextOuterClass.FiberId.getDefaultInstance() : fiberUuid_; - } else { - return fiberUuidBuilder_.getMessage(); - } + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getSSlots() { + return getSSlotsMap(); } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - public Builder setFiberUuid(context.ContextOuterClass.FiberId value) { - if (fiberUuidBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - fiberUuid_ = value; - } else { - fiberUuidBuilder_.setMessage(value); - } - bitField0_ |= 0x00000400; - onChanged(); - return this; + @java.lang.Override + public java.util.Map<java.lang.String, java.lang.Integer> getSSlotsMap() { + return internalGetSSlots().getMap(); } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - public Builder setFiberUuid(context.ContextOuterClass.FiberId.Builder builderForValue) { - if (fiberUuidBuilder_ == null) { - fiberUuid_ = builderForValue.build(); - } else { - fiberUuidBuilder_.setMessage(builderForValue.build()); + @java.lang.Override + public int getSSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); } - bitField0_ |= 0x00000400; - onChanged(); - return this; + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetSSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - public Builder mergeFiberUuid(context.ContextOuterClass.FiberId value) { - if (fiberUuidBuilder_ == null) { - if (((bitField0_ & 0x00000400) != 0) && fiberUuid_ != null && fiberUuid_ != context.ContextOuterClass.FiberId.getDefaultInstance()) { - getFiberUuidBuilder().mergeFrom(value); - } else { - fiberUuid_ = value; - } - } else { - fiberUuidBuilder_.mergeFrom(value); + @java.lang.Override + public int getSSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } - bitField0_ |= 0x00000400; - onChanged(); + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetSSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearSSlots() { + bitField0_ = (bitField0_ & ~0x00000100); + internalGetMutableSSlots().getMutableMap().clear(); return this; } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - public Builder clearFiberUuid() { - bitField0_ = (bitField0_ & ~0x00000400); - fiberUuid_ = null; - if (fiberUuidBuilder_ != null) { - fiberUuidBuilder_.dispose(); - fiberUuidBuilder_ = null; + public Builder removeSSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } - onChanged(); + internalGetMutableSSlots().getMutableMap().remove(key); return this; } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * Use alternate mutation accessors instead. */ - public context.ContextOuterClass.FiberId.Builder getFiberUuidBuilder() { - bitField0_ |= 0x00000400; - onChanged(); - return getFiberUuidFieldBuilder().getBuilder(); + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getMutableSSlots() { + bitField0_ |= 0x00000100; + return internalGetMutableSSlots().getMutableMap(); } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - public context.ContextOuterClass.FiberIdOrBuilder getFiberUuidOrBuilder() { - if (fiberUuidBuilder_ != null) { - return fiberUuidBuilder_.getMessageOrBuilder(); - } else { - return fiberUuid_ == null ? context.ContextOuterClass.FiberId.getDefaultInstance() : fiberUuid_; + public Builder putSSlots(java.lang.String key, int value) { + if (key == null) { + throw new NullPointerException("map key"); } + internalGetMutableSSlots().getMutableMap().put(key, value); + bitField0_ |= 0x00000100; + return this; } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.FiberId, context.ContextOuterClass.FiberId.Builder, context.ContextOuterClass.FiberIdOrBuilder> getFiberUuidFieldBuilder() { - if (fiberUuidBuilder_ == null) { - fiberUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.FiberId, context.ContextOuterClass.FiberId.Builder, context.ContextOuterClass.FiberIdOrBuilder>(getFiberUuid(), getParentForChildren(), isClean()); - fiberUuid_ = null; - } - return fiberUuidBuilder_; + public Builder putAllSSlots(java.util.Map<java.lang.String, java.lang.Integer> values) { + internalGetMutableSSlots().getMutableMap().putAll(values); + bitField0_ |= 0x00000100; + return this; } @java.lang.Override @@ -74323,24 +78706,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.Fiber) + // @@protoc_insertion_point(builder_scope:context.OpticalLinkDetails) } - // @@protoc_insertion_point(class_scope:context.Fiber) - private static final context.ContextOuterClass.Fiber DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalLinkDetails) + private static final context.ContextOuterClass.OpticalLinkDetails DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.Fiber(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLinkDetails(); } - public static context.ContextOuterClass.Fiber getDefaultInstance() { + public static context.ContextOuterClass.OpticalLinkDetails getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<Fiber> PARSER = new com.google.protobuf.AbstractParser<Fiber>() { + private static final com.google.protobuf.Parser<OpticalLinkDetails> PARSER = new com.google.protobuf.AbstractParser<OpticalLinkDetails>() { @java.lang.Override - public Fiber parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public OpticalLinkDetails parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -74355,246 +78738,270 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<Fiber> parser() { + public static com.google.protobuf.Parser<OpticalLinkDetails> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<Fiber> getParserForType() { + public com.google.protobuf.Parser<OpticalLinkDetails> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.Fiber getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalLinkDetails getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalLinkDetailsOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLinkDetails) + public interface OpticalLinkOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLink) com.google.protobuf.MessageOrBuilder { /** - * <code>float length = 1;</code> - * @return The length. + * <code>string name = 1;</code> + * @return The name. */ - float getLength(); + java.lang.String getName(); + + /** + * <code>string name = 1;</code> + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return Whether the opticalDetails field is set. + */ + boolean hasOpticalDetails(); + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return The opticalDetails. + */ + context.ContextOuterClass.OpticalLinkDetails getOpticalDetails(); /** - * <code>string source = 2;</code> - * @return The source. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> */ - java.lang.String getSource(); + context.ContextOuterClass.OpticalLinkDetailsOrBuilder getOpticalDetailsOrBuilder(); /** - * <code>string source = 2;</code> - * @return The bytes for source. + * <code>.context.LinkId link_id = 3;</code> + * @return Whether the linkId field is set. */ - com.google.protobuf.ByteString getSourceBytes(); + boolean hasLinkId(); /** - * <code>string target = 3;</code> - * @return The target. + * <code>.context.LinkId link_id = 3;</code> + * @return The linkId. */ - java.lang.String getTarget(); + context.ContextOuterClass.LinkId getLinkId(); /** - * <code>string target = 3;</code> - * @return The bytes for target. + * <code>.context.LinkId link_id = 3;</code> */ - com.google.protobuf.ByteString getTargetBytes(); + context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder(); /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - java.util.List<context.ContextOuterClass.Fiber> getFibersList(); + java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList(); /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - context.ContextOuterClass.Fiber getFibers(int index); + context.ContextOuterClass.EndPointId getLinkEndpointIds(int index); /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - int getFibersCount(); + int getLinkEndpointIdsCount(); /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - java.util.List<? extends context.ContextOuterClass.FiberOrBuilder> getFibersOrBuilderList(); + java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList(); /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - context.ContextOuterClass.FiberOrBuilder getFibersOrBuilder(int index); + context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index); } /** - * Protobuf type {@code context.OpticalLinkDetails} + * Protobuf type {@code context.OpticalLink} */ - public static final class OpticalLinkDetails extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLinkDetails) - OpticalLinkDetailsOrBuilder { + public static final class OpticalLink extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLink) + OpticalLinkOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalLinkDetails.newBuilder() to construct. - private OpticalLinkDetails(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalLink.newBuilder() to construct. + private OpticalLink(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalLinkDetails() { - source_ = ""; - target_ = ""; - fibers_ = java.util.Collections.emptyList(); + private OpticalLink() { + name_ = ""; + linkEndpointIds_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalLinkDetails(); + return new OpticalLink(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkDetails.class, context.ContextOuterClass.OpticalLinkDetails.Builder.class); - } - - public static final int LENGTH_FIELD_NUMBER = 1; - - private float length_ = 0F; - - /** - * <code>float length = 1;</code> - * @return The length. - */ - @java.lang.Override - public float getLength() { - return length_; + return context.ContextOuterClass.internal_static_context_OpticalLink_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLink.class, context.ContextOuterClass.OpticalLink.Builder.class); } - public static final int SOURCE_FIELD_NUMBER = 2; + public static final int NAME_FIELD_NUMBER = 1; @SuppressWarnings("serial") - private volatile java.lang.Object source_ = ""; + private volatile java.lang.Object name_ = ""; /** - * <code>string source = 2;</code> - * @return The source. + * <code>string name = 1;</code> + * @return The name. */ @java.lang.Override - public java.lang.String getSource() { - java.lang.Object ref = source_; + public java.lang.String getName() { + java.lang.Object ref = name_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - source_ = s; + name_ = s; return s; } } /** - * <code>string source = 2;</code> - * @return The bytes for source. + * <code>string name = 1;</code> + * @return The bytes for name. */ @java.lang.Override - public com.google.protobuf.ByteString getSourceBytes() { - java.lang.Object ref = source_; + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - source_ = b; + name_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int TARGET_FIELD_NUMBER = 3; + public static final int OPTICAL_DETAILS_FIELD_NUMBER = 2; - @SuppressWarnings("serial") - private volatile java.lang.Object target_ = ""; + private context.ContextOuterClass.OpticalLinkDetails opticalDetails_; /** - * <code>string target = 3;</code> - * @return The target. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return Whether the opticalDetails field is set. */ @java.lang.Override - public java.lang.String getTarget() { - java.lang.Object ref = target_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - target_ = s; - return s; - } + public boolean hasOpticalDetails() { + return opticalDetails_ != null; } /** - * <code>string target = 3;</code> - * @return The bytes for target. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return The opticalDetails. */ @java.lang.Override - public com.google.protobuf.ByteString getTargetBytes() { - java.lang.Object ref = target_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - target_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public context.ContextOuterClass.OpticalLinkDetails getOpticalDetails() { + return opticalDetails_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : opticalDetails_; + } + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + */ + @java.lang.Override + public context.ContextOuterClass.OpticalLinkDetailsOrBuilder getOpticalDetailsOrBuilder() { + return opticalDetails_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : opticalDetails_; + } + + public static final int LINK_ID_FIELD_NUMBER = 3; + + private context.ContextOuterClass.LinkId linkId_; + + /** + * <code>.context.LinkId link_id = 3;</code> + * @return Whether the linkId field is set. + */ + @java.lang.Override + public boolean hasLinkId() { + return linkId_ != null; + } + + /** + * <code>.context.LinkId link_id = 3;</code> + * @return The linkId. + */ + @java.lang.Override + public context.ContextOuterClass.LinkId getLinkId() { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } + + /** + * <code>.context.LinkId link_id = 3;</code> + */ + @java.lang.Override + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; } - public static final int FIBERS_FIELD_NUMBER = 4; + public static final int LINK_ENDPOINT_IDS_FIELD_NUMBER = 4; @SuppressWarnings("serial") - private java.util.List<context.ContextOuterClass.Fiber> fibers_; + private java.util.List<context.ContextOuterClass.EndPointId> linkEndpointIds_; /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override - public java.util.List<context.ContextOuterClass.Fiber> getFibersList() { - return fibers_; + public java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList() { + return linkEndpointIds_; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override - public java.util.List<? extends context.ContextOuterClass.FiberOrBuilder> getFibersOrBuilderList() { - return fibers_; + public java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList() { + return linkEndpointIds_; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override - public int getFibersCount() { - return fibers_.size(); + public int getLinkEndpointIdsCount() { + return linkEndpointIds_.size(); } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override - public context.ContextOuterClass.Fiber getFibers(int index) { - return fibers_.get(index); + public context.ContextOuterClass.EndPointId getLinkEndpointIds(int index) { + return linkEndpointIds_.get(index); } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override - public context.ContextOuterClass.FiberOrBuilder getFibersOrBuilder(int index) { - return fibers_.get(index); + public context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index) { + return linkEndpointIds_.get(index); } private byte memoizedIsInitialized = -1; @@ -74612,17 +79019,17 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (java.lang.Float.floatToRawIntBits(length_) != 0) { - output.writeFloat(1, length_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(source_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, source_); + if (opticalDetails_ != null) { + output.writeMessage(2, getOpticalDetails()); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(target_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, target_); + if (linkId_ != null) { + output.writeMessage(3, getLinkId()); } - for (int i = 0; i < fibers_.size(); i++) { - output.writeMessage(4, fibers_.get(i)); + for (int i = 0; i < linkEndpointIds_.size(); i++) { + output.writeMessage(4, linkEndpointIds_.get(i)); } getUnknownFields().writeTo(output); } @@ -74633,17 +79040,17 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (java.lang.Float.floatToRawIntBits(length_) != 0) { - size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, length_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(source_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, source_); + if (opticalDetails_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getOpticalDetails()); } - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(target_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, target_); + if (linkId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getLinkId()); } - for (int i = 0; i < fibers_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, fibers_.get(i)); + for (int i = 0; i < linkEndpointIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, linkEndpointIds_.get(i)); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -74655,17 +79062,25 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalLinkDetails)) { + if (!(obj instanceof context.ContextOuterClass.OpticalLink)) { return super.equals(obj); } - context.ContextOuterClass.OpticalLinkDetails other = (context.ContextOuterClass.OpticalLinkDetails) obj; - if (java.lang.Float.floatToIntBits(getLength()) != java.lang.Float.floatToIntBits(other.getLength())) + context.ContextOuterClass.OpticalLink other = (context.ContextOuterClass.OpticalLink) obj; + if (!getName().equals(other.getName())) return false; - if (!getSource().equals(other.getSource())) + if (hasOpticalDetails() != other.hasOpticalDetails()) return false; - if (!getTarget().equals(other.getTarget())) + if (hasOpticalDetails()) { + if (!getOpticalDetails().equals(other.getOpticalDetails())) + return false; + } + if (hasLinkId() != other.hasLinkId()) return false; - if (!getFibersList().equals(other.getFibersList())) + if (hasLinkId()) { + if (!getLinkId().equals(other.getLinkId())) + return false; + } + if (!getLinkEndpointIdsList().equals(other.getLinkEndpointIdsList())) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; @@ -74679,66 +79094,70 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + LENGTH_FIELD_NUMBER; - hash = (53 * hash) + java.lang.Float.floatToIntBits(getLength()); - hash = (37 * hash) + SOURCE_FIELD_NUMBER; - hash = (53 * hash) + getSource().hashCode(); - hash = (37 * hash) + TARGET_FIELD_NUMBER; - hash = (53 * hash) + getTarget().hashCode(); - if (getFibersCount() > 0) { - hash = (37 * hash) + FIBERS_FIELD_NUMBER; - hash = (53 * hash) + getFibersList().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + if (hasOpticalDetails()) { + hash = (37 * hash) + OPTICAL_DETAILS_FIELD_NUMBER; + hash = (53 * hash) + getOpticalDetails().hashCode(); + } + if (hasLinkId()) { + hash = (37 * hash) + LINK_ID_FIELD_NUMBER; + hash = (53 * hash) + getLinkId().hashCode(); + } + if (getLinkEndpointIdsCount() > 0) { + hash = (37 * hash) + LINK_ENDPOINT_IDS_FIELD_NUMBER; + hash = (53 * hash) + getLinkEndpointIdsList().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkDetails parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkDetails parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -74751,7 +79170,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalLinkDetails prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalLink prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -74767,21 +79186,21 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.OpticalLinkDetails} + * Protobuf type {@code context.OpticalLink} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLinkDetails) - context.ContextOuterClass.OpticalLinkDetailsOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLink) + context.ContextOuterClass.OpticalLinkOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkDetails.class, context.ContextOuterClass.OpticalLinkDetails.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalLink_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLink.class, context.ContextOuterClass.OpticalLink.Builder.class); } - // Construct using context.ContextOuterClass.OpticalLinkDetails.newBuilder() + // Construct using context.ContextOuterClass.OpticalLink.newBuilder() private Builder() { } @@ -74793,14 +79212,22 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - length_ = 0F; - source_ = ""; - target_ = ""; - if (fibersBuilder_ == null) { - fibers_ = java.util.Collections.emptyList(); + name_ = ""; + opticalDetails_ = null; + if (opticalDetailsBuilder_ != null) { + opticalDetailsBuilder_.dispose(); + opticalDetailsBuilder_ = null; + } + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); + linkIdBuilder_ = null; + } + if (linkEndpointIdsBuilder_ == null) { + linkEndpointIds_ = java.util.Collections.emptyList(); } else { - fibers_ = null; - fibersBuilder_.clear(); + linkEndpointIds_ = null; + linkEndpointIdsBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000008); return this; @@ -74808,17 +79235,17 @@ public final class ContextOuterClass { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetails getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance(); + public context.ContextOuterClass.OpticalLink getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalLink.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetails build() { - context.ContextOuterClass.OpticalLinkDetails result = buildPartial(); + public context.ContextOuterClass.OpticalLink build() { + context.ContextOuterClass.OpticalLink result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -74826,8 +79253,8 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetails buildPartial() { - context.ContextOuterClass.OpticalLinkDetails result = new context.ContextOuterClass.OpticalLinkDetails(this); + public context.ContextOuterClass.OpticalLink buildPartial() { + context.ContextOuterClass.OpticalLink result = new context.ContextOuterClass.OpticalLink(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); @@ -74836,78 +79263,76 @@ public final class ContextOuterClass { return result; } - private void buildPartialRepeatedFields(context.ContextOuterClass.OpticalLinkDetails result) { - if (fibersBuilder_ == null) { + private void buildPartialRepeatedFields(context.ContextOuterClass.OpticalLink result) { + if (linkEndpointIdsBuilder_ == null) { if (((bitField0_ & 0x00000008) != 0)) { - fibers_ = java.util.Collections.unmodifiableList(fibers_); + linkEndpointIds_ = java.util.Collections.unmodifiableList(linkEndpointIds_); bitField0_ = (bitField0_ & ~0x00000008); } - result.fibers_ = fibers_; + result.linkEndpointIds_ = linkEndpointIds_; } else { - result.fibers_ = fibersBuilder_.build(); + result.linkEndpointIds_ = linkEndpointIdsBuilder_.build(); } } - private void buildPartial0(context.ContextOuterClass.OpticalLinkDetails result) { + private void buildPartial0(context.ContextOuterClass.OpticalLink result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { - result.length_ = length_; + result.name_ = name_; } if (((from_bitField0_ & 0x00000002) != 0)) { - result.source_ = source_; + result.opticalDetails_ = opticalDetailsBuilder_ == null ? opticalDetails_ : opticalDetailsBuilder_.build(); } if (((from_bitField0_ & 0x00000004) != 0)) { - result.target_ = target_; + result.linkId_ = linkIdBuilder_ == null ? linkId_ : linkIdBuilder_.build(); } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalLinkDetails) { - return mergeFrom((context.ContextOuterClass.OpticalLinkDetails) other); + if (other instanceof context.ContextOuterClass.OpticalLink) { + return mergeFrom((context.ContextOuterClass.OpticalLink) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalLinkDetails other) { - if (other == context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalLink other) { + if (other == context.ContextOuterClass.OpticalLink.getDefaultInstance()) return this; - if (other.getLength() != 0F) { - setLength(other.getLength()); - } - if (!other.getSource().isEmpty()) { - source_ = other.source_; - bitField0_ |= 0x00000002; + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000001; onChanged(); } - if (!other.getTarget().isEmpty()) { - target_ = other.target_; - bitField0_ |= 0x00000004; - onChanged(); + if (other.hasOpticalDetails()) { + mergeOpticalDetails(other.getOpticalDetails()); + } + if (other.hasLinkId()) { + mergeLinkId(other.getLinkId()); } - if (fibersBuilder_ == null) { - if (!other.fibers_.isEmpty()) { - if (fibers_.isEmpty()) { - fibers_ = other.fibers_; + if (linkEndpointIdsBuilder_ == null) { + if (!other.linkEndpointIds_.isEmpty()) { + if (linkEndpointIds_.isEmpty()) { + linkEndpointIds_ = other.linkEndpointIds_; bitField0_ = (bitField0_ & ~0x00000008); } else { - ensureFibersIsMutable(); - fibers_.addAll(other.fibers_); + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.addAll(other.linkEndpointIds_); } onChanged(); } } else { - if (!other.fibers_.isEmpty()) { - if (fibersBuilder_.isEmpty()) { - fibersBuilder_.dispose(); - fibersBuilder_ = null; - fibers_ = other.fibers_; + if (!other.linkEndpointIds_.isEmpty()) { + if (linkEndpointIdsBuilder_.isEmpty()) { + linkEndpointIdsBuilder_.dispose(); + linkEndpointIdsBuilder_ = null; + linkEndpointIds_ = other.linkEndpointIds_; bitField0_ = (bitField0_ & ~0x00000008); - fibersBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getFibersFieldBuilder() : null; + linkEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinkEndpointIdsFieldBuilder() : null; } else { - fibersBuilder_.addAllMessages(other.fibers_); + linkEndpointIdsBuilder_.addAllMessages(other.linkEndpointIds_); } } } @@ -74934,35 +79359,35 @@ public final class ContextOuterClass { case 0: done = true; break; - case 13: + case 10: { - length_ = input.readFloat(); + name_ = input.readStringRequireUtf8(); bitField0_ |= 0x00000001; break; } - // case 13 + // case 10 case 18: { - source_ = input.readStringRequireUtf8(); + input.readMessage(getOpticalDetailsFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000002; break; } // case 18 case 26: { - target_ = input.readStringRequireUtf8(); + input.readMessage(getLinkIdFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000004; break; } // case 26 case 34: { - context.ContextOuterClass.Fiber m = input.readMessage(context.ContextOuterClass.Fiber.parser(), extensionRegistry); - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - fibers_.add(m); + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(m); } else { - fibersBuilder_.addMessage(m); + linkEndpointIdsBuilder_.addMessage(m); } break; } @@ -74990,425 +79415,552 @@ public final class ContextOuterClass { private int bitField0_; - private float length_; + private java.lang.Object name_ = ""; /** - * <code>float length = 1;</code> - * @return The length. + * <code>string name = 1;</code> + * @return The name. */ - @java.lang.Override - public float getLength() { - return length_; + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** - * <code>float length = 1;</code> - * @param value The length to set. + * <code>string name = 1;</code> + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * <code>string name = 1;</code> + * @param value The name to set. * @return This builder for chaining. */ - public Builder setLength(float value) { - length_ = value; + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; bitField0_ |= 0x00000001; onChanged(); return this; } /** - * <code>float length = 1;</code> + * <code>string name = 1;</code> * @return This builder for chaining. */ - public Builder clearLength() { + public Builder clearName() { + name_ = getDefaultInstance().getName(); bitField0_ = (bitField0_ & ~0x00000001); - length_ = 0F; onChanged(); return this; } - private java.lang.Object source_ = ""; + /** + * <code>string name = 1;</code> + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private context.ContextOuterClass.OpticalLinkDetails opticalDetails_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder> opticalDetailsBuilder_; /** - * <code>string source = 2;</code> - * @return The source. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return Whether the opticalDetails field is set. */ - public java.lang.String getSource() { - java.lang.Object ref = source_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - source_ = s; - return s; + public boolean hasOpticalDetails() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return The opticalDetails. + */ + public context.ContextOuterClass.OpticalLinkDetails getOpticalDetails() { + if (opticalDetailsBuilder_ == null) { + return opticalDetails_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : opticalDetails_; } else { - return (java.lang.String) ref; + return opticalDetailsBuilder_.getMessage(); } } /** - * <code>string source = 2;</code> - * @return The bytes for source. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> */ - public com.google.protobuf.ByteString getSourceBytes() { - java.lang.Object ref = source_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - source_ = b; - return b; + public Builder setOpticalDetails(context.ContextOuterClass.OpticalLinkDetails value) { + if (opticalDetailsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + opticalDetails_ = value; } else { - return (com.google.protobuf.ByteString) ref; + opticalDetailsBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); + return this; } /** - * <code>string source = 2;</code> - * @param value The source to set. - * @return This builder for chaining. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> */ - public Builder setSource(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setOpticalDetails(context.ContextOuterClass.OpticalLinkDetails.Builder builderForValue) { + if (opticalDetailsBuilder_ == null) { + opticalDetails_ = builderForValue.build(); + } else { + opticalDetailsBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + */ + public Builder mergeOpticalDetails(context.ContextOuterClass.OpticalLinkDetails value) { + if (opticalDetailsBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && opticalDetails_ != null && opticalDetails_ != context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance()) { + getOpticalDetailsBuilder().mergeFrom(value); + } else { + opticalDetails_ = value; + } + } else { + opticalDetailsBuilder_.mergeFrom(value); } - source_ = value; bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>string source = 2;</code> - * @return This builder for chaining. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + */ + public Builder clearOpticalDetails() { + bitField0_ = (bitField0_ & ~0x00000002); + opticalDetails_ = null; + if (opticalDetailsBuilder_ != null) { + opticalDetailsBuilder_.dispose(); + opticalDetailsBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + */ + public context.ContextOuterClass.OpticalLinkDetails.Builder getOpticalDetailsBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getOpticalDetailsFieldBuilder().getBuilder(); + } + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + */ + public context.ContextOuterClass.OpticalLinkDetailsOrBuilder getOpticalDetailsOrBuilder() { + if (opticalDetailsBuilder_ != null) { + return opticalDetailsBuilder_.getMessageOrBuilder(); + } else { + return opticalDetails_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : opticalDetails_; + } + } + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder> getOpticalDetailsFieldBuilder() { + if (opticalDetailsBuilder_ == null) { + opticalDetailsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder>(getOpticalDetails(), getParentForChildren(), isClean()); + opticalDetails_ = null; + } + return opticalDetailsBuilder_; + } + + private context.ContextOuterClass.LinkId linkId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> linkIdBuilder_; + + /** + * <code>.context.LinkId link_id = 3;</code> + * @return Whether the linkId field is set. + */ + public boolean hasLinkId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * <code>.context.LinkId link_id = 3;</code> + * @return The linkId. + */ + public context.ContextOuterClass.LinkId getLinkId() { + if (linkIdBuilder_ == null) { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } else { + return linkIdBuilder_.getMessage(); + } + } + + /** + * <code>.context.LinkId link_id = 3;</code> */ - public Builder clearSource() { - source_ = getDefaultInstance().getSource(); - bitField0_ = (bitField0_ & ~0x00000002); + public Builder setLinkId(context.ContextOuterClass.LinkId value) { + if (linkIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + linkId_ = value; + } else { + linkIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; onChanged(); return this; } /** - * <code>string source = 2;</code> - * @param value The bytes for source to set. - * @return This builder for chaining. + * <code>.context.LinkId link_id = 3;</code> */ - public Builder setSourceBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder setLinkId(context.ContextOuterClass.LinkId.Builder builderForValue) { + if (linkIdBuilder_ == null) { + linkId_ = builderForValue.build(); + } else { + linkIdBuilder_.setMessage(builderForValue.build()); } - checkByteStringIsUtf8(value); - source_ = value; - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000004; onChanged(); return this; } - private java.lang.Object target_ = ""; - /** - * <code>string target = 3;</code> - * @return The target. + * <code>.context.LinkId link_id = 3;</code> */ - public java.lang.String getTarget() { - java.lang.Object ref = target_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - target_ = s; - return s; + public Builder mergeLinkId(context.ContextOuterClass.LinkId value) { + if (linkIdBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && linkId_ != null && linkId_ != context.ContextOuterClass.LinkId.getDefaultInstance()) { + getLinkIdBuilder().mergeFrom(value); + } else { + linkId_ = value; + } } else { - return (java.lang.String) ref; + linkIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000004; + onChanged(); + return this; } /** - * <code>string target = 3;</code> - * @return The bytes for target. + * <code>.context.LinkId link_id = 3;</code> */ - public com.google.protobuf.ByteString getTargetBytes() { - java.lang.Object ref = target_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - target_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; + public Builder clearLinkId() { + bitField0_ = (bitField0_ & ~0x00000004); + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); + linkIdBuilder_ = null; } + onChanged(); + return this; } /** - * <code>string target = 3;</code> - * @param value The target to set. - * @return This builder for chaining. + * <code>.context.LinkId link_id = 3;</code> */ - public Builder setTarget(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - target_ = value; + public context.ContextOuterClass.LinkId.Builder getLinkIdBuilder() { bitField0_ |= 0x00000004; onChanged(); - return this; + return getLinkIdFieldBuilder().getBuilder(); } /** - * <code>string target = 3;</code> - * @return This builder for chaining. + * <code>.context.LinkId link_id = 3;</code> */ - public Builder clearTarget() { - target_ = getDefaultInstance().getTarget(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); - return this; + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() { + if (linkIdBuilder_ != null) { + return linkIdBuilder_.getMessageOrBuilder(); + } else { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } } /** - * <code>string target = 3;</code> - * @param value The bytes for target to set. - * @return This builder for chaining. + * <code>.context.LinkId link_id = 3;</code> */ - public Builder setTargetBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> getLinkIdFieldBuilder() { + if (linkIdBuilder_ == null) { + linkIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>(getLinkId(), getParentForChildren(), isClean()); + linkId_ = null; } - checkByteStringIsUtf8(value); - target_ = value; - bitField0_ |= 0x00000004; - onChanged(); - return this; + return linkIdBuilder_; } - private java.util.List<context.ContextOuterClass.Fiber> fibers_ = java.util.Collections.emptyList(); + private java.util.List<context.ContextOuterClass.EndPointId> linkEndpointIds_ = java.util.Collections.emptyList(); - private void ensureFibersIsMutable() { + private void ensureLinkEndpointIdsIsMutable() { if (!((bitField0_ & 0x00000008) != 0)) { - fibers_ = new java.util.ArrayList<context.ContextOuterClass.Fiber>(fibers_); + linkEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(linkEndpointIds_); bitField0_ |= 0x00000008; } } - private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Fiber, context.ContextOuterClass.Fiber.Builder, context.ContextOuterClass.FiberOrBuilder> fibersBuilder_; + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> linkEndpointIdsBuilder_; /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public java.util.List<context.ContextOuterClass.Fiber> getFibersList() { - if (fibersBuilder_ == null) { - return java.util.Collections.unmodifiableList(fibers_); + public java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList() { + if (linkEndpointIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(linkEndpointIds_); } else { - return fibersBuilder_.getMessageList(); + return linkEndpointIdsBuilder_.getMessageList(); } } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public int getFibersCount() { - if (fibersBuilder_ == null) { - return fibers_.size(); + public int getLinkEndpointIdsCount() { + if (linkEndpointIdsBuilder_ == null) { + return linkEndpointIds_.size(); } else { - return fibersBuilder_.getCount(); + return linkEndpointIdsBuilder_.getCount(); } } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public context.ContextOuterClass.Fiber getFibers(int index) { - if (fibersBuilder_ == null) { - return fibers_.get(index); + public context.ContextOuterClass.EndPointId getLinkEndpointIds(int index) { + if (linkEndpointIdsBuilder_ == null) { + return linkEndpointIds_.get(index); } else { - return fibersBuilder_.getMessage(index); + return linkEndpointIdsBuilder_.getMessage(index); } } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder setFibers(int index, context.ContextOuterClass.Fiber value) { - if (fibersBuilder_ == null) { + public Builder setLinkEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (linkEndpointIdsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureFibersIsMutable(); - fibers_.set(index, value); + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.set(index, value); onChanged(); } else { - fibersBuilder_.setMessage(index, value); + linkEndpointIdsBuilder_.setMessage(index, value); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder setFibers(int index, context.ContextOuterClass.Fiber.Builder builderForValue) { - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - fibers_.set(index, builderForValue.build()); + public Builder setLinkEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.set(index, builderForValue.build()); onChanged(); } else { - fibersBuilder_.setMessage(index, builderForValue.build()); + linkEndpointIdsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder addFibers(context.ContextOuterClass.Fiber value) { - if (fibersBuilder_ == null) { + public Builder addLinkEndpointIds(context.ContextOuterClass.EndPointId value) { + if (linkEndpointIdsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureFibersIsMutable(); - fibers_.add(value); + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(value); onChanged(); } else { - fibersBuilder_.addMessage(value); + linkEndpointIdsBuilder_.addMessage(value); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder addFibers(int index, context.ContextOuterClass.Fiber value) { - if (fibersBuilder_ == null) { + public Builder addLinkEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (linkEndpointIdsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureFibersIsMutable(); - fibers_.add(index, value); + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(index, value); onChanged(); } else { - fibersBuilder_.addMessage(index, value); + linkEndpointIdsBuilder_.addMessage(index, value); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder addFibers(context.ContextOuterClass.Fiber.Builder builderForValue) { - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - fibers_.add(builderForValue.build()); + public Builder addLinkEndpointIds(context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(builderForValue.build()); onChanged(); } else { - fibersBuilder_.addMessage(builderForValue.build()); + linkEndpointIdsBuilder_.addMessage(builderForValue.build()); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder addFibers(int index, context.ContextOuterClass.Fiber.Builder builderForValue) { - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - fibers_.add(index, builderForValue.build()); + public Builder addLinkEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(index, builderForValue.build()); onChanged(); } else { - fibersBuilder_.addMessage(index, builderForValue.build()); + linkEndpointIdsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder addAllFibers(java.lang.Iterable<? extends context.ContextOuterClass.Fiber> values) { - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, fibers_); + public Builder addAllLinkEndpointIds(java.lang.Iterable<? extends context.ContextOuterClass.EndPointId> values) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, linkEndpointIds_); onChanged(); } else { - fibersBuilder_.addAllMessages(values); + linkEndpointIdsBuilder_.addAllMessages(values); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder clearFibers() { - if (fibersBuilder_ == null) { - fibers_ = java.util.Collections.emptyList(); + public Builder clearLinkEndpointIds() { + if (linkEndpointIdsBuilder_ == null) { + linkEndpointIds_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { - fibersBuilder_.clear(); + linkEndpointIdsBuilder_.clear(); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder removeFibers(int index) { - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - fibers_.remove(index); + public Builder removeLinkEndpointIds(int index) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.remove(index); onChanged(); } else { - fibersBuilder_.remove(index); + linkEndpointIdsBuilder_.remove(index); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public context.ContextOuterClass.Fiber.Builder getFibersBuilder(int index) { - return getFibersFieldBuilder().getBuilder(index); + public context.ContextOuterClass.EndPointId.Builder getLinkEndpointIdsBuilder(int index) { + return getLinkEndpointIdsFieldBuilder().getBuilder(index); } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public context.ContextOuterClass.FiberOrBuilder getFibersOrBuilder(int index) { - if (fibersBuilder_ == null) { - return fibers_.get(index); + public context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index) { + if (linkEndpointIdsBuilder_ == null) { + return linkEndpointIds_.get(index); } else { - return fibersBuilder_.getMessageOrBuilder(index); + return linkEndpointIdsBuilder_.getMessageOrBuilder(index); } } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public java.util.List<? extends context.ContextOuterClass.FiberOrBuilder> getFibersOrBuilderList() { - if (fibersBuilder_ != null) { - return fibersBuilder_.getMessageOrBuilderList(); + public java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList() { + if (linkEndpointIdsBuilder_ != null) { + return linkEndpointIdsBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(fibers_); + return java.util.Collections.unmodifiableList(linkEndpointIds_); } } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public context.ContextOuterClass.Fiber.Builder addFibersBuilder() { - return getFibersFieldBuilder().addBuilder(context.ContextOuterClass.Fiber.getDefaultInstance()); + public context.ContextOuterClass.EndPointId.Builder addLinkEndpointIdsBuilder() { + return getLinkEndpointIdsFieldBuilder().addBuilder(context.ContextOuterClass.EndPointId.getDefaultInstance()); } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public context.ContextOuterClass.Fiber.Builder addFibersBuilder(int index) { - return getFibersFieldBuilder().addBuilder(index, context.ContextOuterClass.Fiber.getDefaultInstance()); + public context.ContextOuterClass.EndPointId.Builder addLinkEndpointIdsBuilder(int index) { + return getLinkEndpointIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPointId.getDefaultInstance()); } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public java.util.List<context.ContextOuterClass.Fiber.Builder> getFibersBuilderList() { - return getFibersFieldBuilder().getBuilderList(); + public java.util.List<context.ContextOuterClass.EndPointId.Builder> getLinkEndpointIdsBuilderList() { + return getLinkEndpointIdsFieldBuilder().getBuilderList(); } - private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Fiber, context.ContextOuterClass.Fiber.Builder, context.ContextOuterClass.FiberOrBuilder> getFibersFieldBuilder() { - if (fibersBuilder_ == null) { - fibersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Fiber, context.ContextOuterClass.Fiber.Builder, context.ContextOuterClass.FiberOrBuilder>(fibers_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); - fibers_ = null; + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsFieldBuilder() { + if (linkEndpointIdsBuilder_ == null) { + linkEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(linkEndpointIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); + linkEndpointIds_ = null; } - return fibersBuilder_; + return linkEndpointIdsBuilder_; } @java.lang.Override @@ -75420,24 +79972,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalLinkDetails) + // @@protoc_insertion_point(builder_scope:context.OpticalLink) } - // @@protoc_insertion_point(class_scope:context.OpticalLinkDetails) - private static final context.ContextOuterClass.OpticalLinkDetails DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalLink) + private static final context.ContextOuterClass.OpticalLink DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLinkDetails(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLink(); } - public static context.ContextOuterClass.OpticalLinkDetails getDefaultInstance() { + public static context.ContextOuterClass.OpticalLink getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalLinkDetails> PARSER = new com.google.protobuf.AbstractParser<OpticalLinkDetails>() { + private static final com.google.protobuf.Parser<OpticalLink> PARSER = new com.google.protobuf.AbstractParser<OpticalLink>() { @java.lang.Override - public OpticalLinkDetails parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public OpticalLink parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -75452,199 +80004,148 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<OpticalLinkDetails> parser() { + public static com.google.protobuf.Parser<OpticalLink> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalLinkDetails> getParserForType() { + public com.google.protobuf.Parser<OpticalLink> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetails getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalLink getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalLinkOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLink) + public interface ServiceConfigRuleOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ServiceConfigRule) com.google.protobuf.MessageOrBuilder { /** - * <code>string name = 1;</code> - * @return The name. - */ - java.lang.String getName(); - - /** - * <code>string name = 1;</code> - * @return The bytes for name. - */ - com.google.protobuf.ByteString getNameBytes(); - - /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return Whether the details field is set. + * <code>.context.ServiceId service_id = 1;</code> + * @return Whether the serviceId field is set. */ - boolean hasDetails(); + boolean hasServiceId(); /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return The details. + * <code>.context.ServiceId service_id = 1;</code> + * @return The serviceId. */ - context.ContextOuterClass.OpticalLinkDetails getDetails(); + context.ContextOuterClass.ServiceId getServiceId(); /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - context.ContextOuterClass.OpticalLinkDetailsOrBuilder getDetailsOrBuilder(); + context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder(); /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return Whether the configruleCustom field is set. */ - boolean hasOpticalLinkUuid(); + boolean hasConfigruleCustom(); /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return The opticalLinkUuid. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return The configruleCustom. */ - context.ContextOuterClass.OpticalLinkId getOpticalLinkUuid(); + context.ContextOuterClass.ConfigRule_Custom getConfigruleCustom(); /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - context.ContextOuterClass.OpticalLinkIdOrBuilder getOpticalLinkUuidOrBuilder(); + context.ContextOuterClass.ConfigRule_CustomOrBuilder getConfigruleCustomOrBuilder(); } /** - * Protobuf type {@code context.OpticalLink} + * Protobuf type {@code context.ServiceConfigRule} */ - public static final class OpticalLink extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLink) - OpticalLinkOrBuilder { + public static final class ServiceConfigRule extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ServiceConfigRule) + ServiceConfigRuleOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalLink.newBuilder() to construct. - private OpticalLink(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use ServiceConfigRule.newBuilder() to construct. + private ServiceConfigRule(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalLink() { - name_ = ""; + private ServiceConfigRule() { } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalLink(); + return new ServiceConfigRule(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; + return context.ContextOuterClass.internal_static_context_ServiceConfigRule_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLink_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLink.class, context.ContextOuterClass.OpticalLink.Builder.class); - } - - public static final int NAME_FIELD_NUMBER = 1; - - @SuppressWarnings("serial") - private volatile java.lang.Object name_ = ""; - - /** - * <code>string name = 1;</code> - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - - /** - * <code>string name = 1;</code> - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + return context.ContextOuterClass.internal_static_context_ServiceConfigRule_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceConfigRule.class, context.ContextOuterClass.ServiceConfigRule.Builder.class); } - public static final int DETAILS_FIELD_NUMBER = 2; + public static final int SERVICE_ID_FIELD_NUMBER = 1; - private context.ContextOuterClass.OpticalLinkDetails details_; + private context.ContextOuterClass.ServiceId serviceId_; /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return Whether the details field is set. + * <code>.context.ServiceId service_id = 1;</code> + * @return Whether the serviceId field is set. */ @java.lang.Override - public boolean hasDetails() { - return details_ != null; + public boolean hasServiceId() { + return serviceId_ != null; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return The details. + * <code>.context.ServiceId service_id = 1;</code> + * @return The serviceId. */ @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetails getDetails() { - return details_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : details_; + public context.ContextOuterClass.ServiceId getServiceId() { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetailsOrBuilder getDetailsOrBuilder() { - return details_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : details_; + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } - public static final int OPTICAL_LINK_UUID_FIELD_NUMBER = 3; + public static final int CONFIGRULE_CUSTOM_FIELD_NUMBER = 2; - private context.ContextOuterClass.OpticalLinkId opticalLinkUuid_; + private context.ContextOuterClass.ConfigRule_Custom configruleCustom_; /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return Whether the configruleCustom field is set. */ @java.lang.Override - public boolean hasOpticalLinkUuid() { - return opticalLinkUuid_ != null; + public boolean hasConfigruleCustom() { + return configruleCustom_ != null; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return The opticalLinkUuid. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return The configruleCustom. */ @java.lang.Override - public context.ContextOuterClass.OpticalLinkId getOpticalLinkUuid() { - return opticalLinkUuid_ == null ? context.ContextOuterClass.OpticalLinkId.getDefaultInstance() : opticalLinkUuid_; + public context.ContextOuterClass.ConfigRule_Custom getConfigruleCustom() { + return configruleCustom_ == null ? context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance() : configruleCustom_; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ @java.lang.Override - public context.ContextOuterClass.OpticalLinkIdOrBuilder getOpticalLinkUuidOrBuilder() { - return opticalLinkUuid_ == null ? context.ContextOuterClass.OpticalLinkId.getDefaultInstance() : opticalLinkUuid_; + public context.ContextOuterClass.ConfigRule_CustomOrBuilder getConfigruleCustomOrBuilder() { + return configruleCustom_ == null ? context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance() : configruleCustom_; } private byte memoizedIsInitialized = -1; @@ -75662,14 +80163,11 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); - } - if (details_ != null) { - output.writeMessage(2, getDetails()); + if (serviceId_ != null) { + output.writeMessage(1, getServiceId()); } - if (opticalLinkUuid_ != null) { - output.writeMessage(3, getOpticalLinkUuid()); + if (configruleCustom_ != null) { + output.writeMessage(2, getConfigruleCustom()); } getUnknownFields().writeTo(output); } @@ -75680,14 +80178,11 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); - } - if (details_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getDetails()); + if (serviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getServiceId()); } - if (opticalLinkUuid_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getOpticalLinkUuid()); + if (configruleCustom_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getConfigruleCustom()); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -75699,22 +80194,20 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalLink)) { + if (!(obj instanceof context.ContextOuterClass.ServiceConfigRule)) { return super.equals(obj); } - context.ContextOuterClass.OpticalLink other = (context.ContextOuterClass.OpticalLink) obj; - if (!getName().equals(other.getName())) - return false; - if (hasDetails() != other.hasDetails()) + context.ContextOuterClass.ServiceConfigRule other = (context.ContextOuterClass.ServiceConfigRule) obj; + if (hasServiceId() != other.hasServiceId()) return false; - if (hasDetails()) { - if (!getDetails().equals(other.getDetails())) + if (hasServiceId()) { + if (!getServiceId().equals(other.getServiceId())) return false; } - if (hasOpticalLinkUuid() != other.hasOpticalLinkUuid()) + if (hasConfigruleCustom() != other.hasConfigruleCustom()) return false; - if (hasOpticalLinkUuid()) { - if (!getOpticalLinkUuid().equals(other.getOpticalLinkUuid())) + if (hasConfigruleCustom()) { + if (!getConfigruleCustom().equals(other.getConfigruleCustom())) return false; } if (!getUnknownFields().equals(other.getUnknownFields())) @@ -75729,66 +80222,64 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - if (hasDetails()) { - hash = (37 * hash) + DETAILS_FIELD_NUMBER; - hash = (53 * hash) + getDetails().hashCode(); + if (hasServiceId()) { + hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getServiceId().hashCode(); } - if (hasOpticalLinkUuid()) { - hash = (37 * hash) + OPTICAL_LINK_UUID_FIELD_NUMBER; - hash = (53 * hash) + getOpticalLinkUuid().hashCode(); + if (hasConfigruleCustom()) { + hash = (37 * hash) + CONFIGRULE_CUSTOM_FIELD_NUMBER; + hash = (53 * hash) + getConfigruleCustom().hashCode(); } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalLink parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLink parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLink parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLink parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLink parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLink parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLink parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLink parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -75801,7 +80292,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalLink prototype) { + public static Builder newBuilder(context.ContextOuterClass.ServiceConfigRule prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -75817,21 +80308,21 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.OpticalLink} + * Protobuf type {@code context.ServiceConfigRule} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLink) - context.ContextOuterClass.OpticalLinkOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.ServiceConfigRule) + context.ContextOuterClass.ServiceConfigRuleOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; + return context.ContextOuterClass.internal_static_context_ServiceConfigRule_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLink_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLink.class, context.ContextOuterClass.OpticalLink.Builder.class); + return context.ContextOuterClass.internal_static_context_ServiceConfigRule_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceConfigRule.class, context.ContextOuterClass.ServiceConfigRule.Builder.class); } - // Construct using context.ContextOuterClass.OpticalLink.newBuilder() + // Construct using context.ContextOuterClass.ServiceConfigRule.newBuilder() private Builder() { } @@ -75843,33 +80334,32 @@ public final class ContextOuterClass { public Builder clear() { super.clear(); bitField0_ = 0; - name_ = ""; - details_ = null; - if (detailsBuilder_ != null) { - detailsBuilder_.dispose(); - detailsBuilder_ = null; + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); + serviceIdBuilder_ = null; } - opticalLinkUuid_ = null; - if (opticalLinkUuidBuilder_ != null) { - opticalLinkUuidBuilder_.dispose(); - opticalLinkUuidBuilder_ = null; + configruleCustom_ = null; + if (configruleCustomBuilder_ != null) { + configruleCustomBuilder_.dispose(); + configruleCustomBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; + return context.ContextOuterClass.internal_static_context_ServiceConfigRule_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalLink getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalLink.getDefaultInstance(); + public context.ContextOuterClass.ServiceConfigRule getDefaultInstanceForType() { + return context.ContextOuterClass.ServiceConfigRule.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalLink build() { - context.ContextOuterClass.OpticalLink result = buildPartial(); + public context.ContextOuterClass.ServiceConfigRule build() { + context.ContextOuterClass.ServiceConfigRule result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -75877,8 +80367,8 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalLink buildPartial() { - context.ContextOuterClass.OpticalLink result = new context.ContextOuterClass.OpticalLink(this); + public context.ContextOuterClass.ServiceConfigRule buildPartial() { + context.ContextOuterClass.ServiceConfigRule result = new context.ContextOuterClass.ServiceConfigRule(this); if (bitField0_ != 0) { buildPartial0(result); } @@ -75886,42 +80376,34 @@ public final class ContextOuterClass { return result; } - private void buildPartial0(context.ContextOuterClass.OpticalLink result) { + private void buildPartial0(context.ContextOuterClass.ServiceConfigRule result) { int from_bitField0_ = bitField0_; if (((from_bitField0_ & 0x00000001) != 0)) { - result.name_ = name_; + result.serviceId_ = serviceIdBuilder_ == null ? serviceId_ : serviceIdBuilder_.build(); } if (((from_bitField0_ & 0x00000002) != 0)) { - result.details_ = detailsBuilder_ == null ? details_ : detailsBuilder_.build(); - } - if (((from_bitField0_ & 0x00000004) != 0)) { - result.opticalLinkUuid_ = opticalLinkUuidBuilder_ == null ? opticalLinkUuid_ : opticalLinkUuidBuilder_.build(); + result.configruleCustom_ = configruleCustomBuilder_ == null ? configruleCustom_ : configruleCustomBuilder_.build(); } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalLink) { - return mergeFrom((context.ContextOuterClass.OpticalLink) other); + if (other instanceof context.ContextOuterClass.ServiceConfigRule) { + return mergeFrom((context.ContextOuterClass.ServiceConfigRule) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalLink other) { - if (other == context.ContextOuterClass.OpticalLink.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.ServiceConfigRule other) { + if (other == context.ContextOuterClass.ServiceConfigRule.getDefaultInstance()) return this; - if (!other.getName().isEmpty()) { - name_ = other.name_; - bitField0_ |= 0x00000001; - onChanged(); - } - if (other.hasDetails()) { - mergeDetails(other.getDetails()); + if (other.hasServiceId()) { + mergeServiceId(other.getServiceId()); } - if (other.hasOpticalLinkUuid()) { - mergeOpticalLinkUuid(other.getOpticalLinkUuid()); + if (other.hasConfigruleCustom()) { + mergeConfigruleCustom(other.getConfigruleCustom()); } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); @@ -75948,25 +80430,18 @@ public final class ContextOuterClass { break; case 10: { - name_ = input.readStringRequireUtf8(); + input.readMessage(getServiceIdFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000001; break; } // case 10 case 18: { - input.readMessage(getDetailsFieldBuilder().getBuilder(), extensionRegistry); + input.readMessage(getConfigruleCustomFieldBuilder().getBuilder(), extensionRegistry); bitField0_ |= 0x00000002; break; } // case 18 - case 26: - { - input.readMessage(getOpticalLinkUuidFieldBuilder().getBuilder(), extensionRegistry); - bitField0_ |= 0x00000004; - break; - } - // case 26 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -75990,315 +80465,240 @@ public final class ContextOuterClass { private int bitField0_; - private java.lang.Object name_ = ""; - - /** - * <code>string name = 1;</code> - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - - /** - * <code>string name = 1;</code> - * @return The bytes for name. - */ - public com.google.protobuf.ByteString getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - /** - * <code>string name = 1;</code> - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - name_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - /** - * <code>string name = 1;</code> - * @return This builder for chaining. - */ - public Builder clearName() { - name_ = getDefaultInstance().getName(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); - return this; - } - - /** - * <code>string name = 1;</code> - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - name_ = value; - bitField0_ |= 0x00000001; - onChanged(); - return this; - } - - private context.ContextOuterClass.OpticalLinkDetails details_; + private context.ContextOuterClass.ServiceId serviceId_; - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder> detailsBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> serviceIdBuilder_; /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return Whether the details field is set. + * <code>.context.ServiceId service_id = 1;</code> + * @return Whether the serviceId field is set. */ - public boolean hasDetails() { - return ((bitField0_ & 0x00000002) != 0); + public boolean hasServiceId() { + return ((bitField0_ & 0x00000001) != 0); } /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return The details. + * <code>.context.ServiceId service_id = 1;</code> + * @return The serviceId. */ - public context.ContextOuterClass.OpticalLinkDetails getDetails() { - if (detailsBuilder_ == null) { - return details_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : details_; + public context.ContextOuterClass.ServiceId getServiceId() { + if (serviceIdBuilder_ == null) { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } else { - return detailsBuilder_.getMessage(); + return serviceIdBuilder_.getMessage(); } } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public Builder setDetails(context.ContextOuterClass.OpticalLinkDetails value) { - if (detailsBuilder_ == null) { + public Builder setServiceId(context.ContextOuterClass.ServiceId value) { + if (serviceIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - details_ = value; + serviceId_ = value; } else { - detailsBuilder_.setMessage(value); + serviceIdBuilder_.setMessage(value); } - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000001; onChanged(); return this; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public Builder setDetails(context.ContextOuterClass.OpticalLinkDetails.Builder builderForValue) { - if (detailsBuilder_ == null) { - details_ = builderForValue.build(); + public Builder setServiceId(context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdBuilder_ == null) { + serviceId_ = builderForValue.build(); } else { - detailsBuilder_.setMessage(builderForValue.build()); + serviceIdBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000001; onChanged(); return this; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public Builder mergeDetails(context.ContextOuterClass.OpticalLinkDetails value) { - if (detailsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0) && details_ != null && details_ != context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance()) { - getDetailsBuilder().mergeFrom(value); + public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) { + if (serviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && serviceId_ != null && serviceId_ != context.ContextOuterClass.ServiceId.getDefaultInstance()) { + getServiceIdBuilder().mergeFrom(value); } else { - details_ = value; + serviceId_ = value; } } else { - detailsBuilder_.mergeFrom(value); + serviceIdBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000001; onChanged(); return this; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public Builder clearDetails() { - bitField0_ = (bitField0_ & ~0x00000002); - details_ = null; - if (detailsBuilder_ != null) { - detailsBuilder_.dispose(); - detailsBuilder_ = null; + public Builder clearServiceId() { + bitField0_ = (bitField0_ & ~0x00000001); + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); + serviceIdBuilder_ = null; } onChanged(); return this; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public context.ContextOuterClass.OpticalLinkDetails.Builder getDetailsBuilder() { - bitField0_ |= 0x00000002; + public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); - return getDetailsFieldBuilder().getBuilder(); + return getServiceIdFieldBuilder().getBuilder(); } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public context.ContextOuterClass.OpticalLinkDetailsOrBuilder getDetailsOrBuilder() { - if (detailsBuilder_ != null) { - return detailsBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { + if (serviceIdBuilder_ != null) { + return serviceIdBuilder_.getMessageOrBuilder(); } else { - return details_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : details_; + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder> getDetailsFieldBuilder() { - if (detailsBuilder_ == null) { - detailsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder>(getDetails(), getParentForChildren(), isClean()); - details_ = null; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> getServiceIdFieldBuilder() { + if (serviceIdBuilder_ == null) { + serviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(getServiceId(), getParentForChildren(), isClean()); + serviceId_ = null; } - return detailsBuilder_; + return serviceIdBuilder_; } - private context.ContextOuterClass.OpticalLinkId opticalLinkUuid_; + private context.ContextOuterClass.ConfigRule_Custom configruleCustom_; - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLinkId.Builder, context.ContextOuterClass.OpticalLinkIdOrBuilder> opticalLinkUuidBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ConfigRule_Custom, context.ContextOuterClass.ConfigRule_Custom.Builder, context.ContextOuterClass.ConfigRule_CustomOrBuilder> configruleCustomBuilder_; /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return Whether the configruleCustom field is set. */ - public boolean hasOpticalLinkUuid() { - return ((bitField0_ & 0x00000004) != 0); + public boolean hasConfigruleCustom() { + return ((bitField0_ & 0x00000002) != 0); } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return The opticalLinkUuid. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return The configruleCustom. */ - public context.ContextOuterClass.OpticalLinkId getOpticalLinkUuid() { - if (opticalLinkUuidBuilder_ == null) { - return opticalLinkUuid_ == null ? context.ContextOuterClass.OpticalLinkId.getDefaultInstance() : opticalLinkUuid_; + public context.ContextOuterClass.ConfigRule_Custom getConfigruleCustom() { + if (configruleCustomBuilder_ == null) { + return configruleCustom_ == null ? context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance() : configruleCustom_; } else { - return opticalLinkUuidBuilder_.getMessage(); + return configruleCustomBuilder_.getMessage(); } } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public Builder setOpticalLinkUuid(context.ContextOuterClass.OpticalLinkId value) { - if (opticalLinkUuidBuilder_ == null) { + public Builder setConfigruleCustom(context.ContextOuterClass.ConfigRule_Custom value) { + if (configruleCustomBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - opticalLinkUuid_ = value; + configruleCustom_ = value; } else { - opticalLinkUuidBuilder_.setMessage(value); + configruleCustomBuilder_.setMessage(value); } - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public Builder setOpticalLinkUuid(context.ContextOuterClass.OpticalLinkId.Builder builderForValue) { - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuid_ = builderForValue.build(); + public Builder setConfigruleCustom(context.ContextOuterClass.ConfigRule_Custom.Builder builderForValue) { + if (configruleCustomBuilder_ == null) { + configruleCustom_ = builderForValue.build(); } else { - opticalLinkUuidBuilder_.setMessage(builderForValue.build()); + configruleCustomBuilder_.setMessage(builderForValue.build()); } - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public Builder mergeOpticalLinkUuid(context.ContextOuterClass.OpticalLinkId value) { - if (opticalLinkUuidBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0) && opticalLinkUuid_ != null && opticalLinkUuid_ != context.ContextOuterClass.OpticalLinkId.getDefaultInstance()) { - getOpticalLinkUuidBuilder().mergeFrom(value); + public Builder mergeConfigruleCustom(context.ContextOuterClass.ConfigRule_Custom value) { + if (configruleCustomBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && configruleCustom_ != null && configruleCustom_ != context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance()) { + getConfigruleCustomBuilder().mergeFrom(value); } else { - opticalLinkUuid_ = value; + configruleCustom_ = value; } } else { - opticalLinkUuidBuilder_.mergeFrom(value); + configruleCustomBuilder_.mergeFrom(value); } - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public Builder clearOpticalLinkUuid() { - bitField0_ = (bitField0_ & ~0x00000004); - opticalLinkUuid_ = null; - if (opticalLinkUuidBuilder_ != null) { - opticalLinkUuidBuilder_.dispose(); - opticalLinkUuidBuilder_ = null; + public Builder clearConfigruleCustom() { + bitField0_ = (bitField0_ & ~0x00000002); + configruleCustom_ = null; + if (configruleCustomBuilder_ != null) { + configruleCustomBuilder_.dispose(); + configruleCustomBuilder_ = null; } onChanged(); return this; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public context.ContextOuterClass.OpticalLinkId.Builder getOpticalLinkUuidBuilder() { - bitField0_ |= 0x00000004; + public context.ContextOuterClass.ConfigRule_Custom.Builder getConfigruleCustomBuilder() { + bitField0_ |= 0x00000002; onChanged(); - return getOpticalLinkUuidFieldBuilder().getBuilder(); + return getConfigruleCustomFieldBuilder().getBuilder(); } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public context.ContextOuterClass.OpticalLinkIdOrBuilder getOpticalLinkUuidOrBuilder() { - if (opticalLinkUuidBuilder_ != null) { - return opticalLinkUuidBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.ConfigRule_CustomOrBuilder getConfigruleCustomOrBuilder() { + if (configruleCustomBuilder_ != null) { + return configruleCustomBuilder_.getMessageOrBuilder(); } else { - return opticalLinkUuid_ == null ? context.ContextOuterClass.OpticalLinkId.getDefaultInstance() : opticalLinkUuid_; + return configruleCustom_ == null ? context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance() : configruleCustom_; } } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLinkId.Builder, context.ContextOuterClass.OpticalLinkIdOrBuilder> getOpticalLinkUuidFieldBuilder() { - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLinkId.Builder, context.ContextOuterClass.OpticalLinkIdOrBuilder>(getOpticalLinkUuid(), getParentForChildren(), isClean()); - opticalLinkUuid_ = null; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ConfigRule_Custom, context.ContextOuterClass.ConfigRule_Custom.Builder, context.ContextOuterClass.ConfigRule_CustomOrBuilder> getConfigruleCustomFieldBuilder() { + if (configruleCustomBuilder_ == null) { + configruleCustomBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ConfigRule_Custom, context.ContextOuterClass.ConfigRule_Custom.Builder, context.ContextOuterClass.ConfigRule_CustomOrBuilder>(getConfigruleCustom(), getParentForChildren(), isClean()); + configruleCustom_ = null; } - return opticalLinkUuidBuilder_; + return configruleCustomBuilder_; } @java.lang.Override @@ -76310,24 +80710,24 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalLink) + // @@protoc_insertion_point(builder_scope:context.ServiceConfigRule) } - // @@protoc_insertion_point(class_scope:context.OpticalLink) - private static final context.ContextOuterClass.OpticalLink DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.ServiceConfigRule) + private static final context.ContextOuterClass.ServiceConfigRule DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLink(); + DEFAULT_INSTANCE = new context.ContextOuterClass.ServiceConfigRule(); } - public static context.ContextOuterClass.OpticalLink getDefaultInstance() { + public static context.ContextOuterClass.ServiceConfigRule getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalLink> PARSER = new com.google.protobuf.AbstractParser<OpticalLink>() { + private static final com.google.protobuf.Parser<ServiceConfigRule> PARSER = new com.google.protobuf.AbstractParser<ServiceConfigRule>() { @java.lang.Override - public OpticalLink parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public ServiceConfigRule parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { Builder builder = newBuilder(); try { builder.mergeFrom(input, extensionRegistry); @@ -76342,17 +80742,17 @@ public final class ContextOuterClass { } }; - public static com.google.protobuf.Parser<OpticalLink> parser() { + public static com.google.protobuf.Parser<ServiceConfigRule> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalLink> getParserForType() { + public com.google.protobuf.Parser<ServiceConfigRule> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalLink getDefaultInstanceForType() { + public context.ContextOuterClass.ServiceConfigRule getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } @@ -76593,6 +80993,10 @@ public final class ContextOuterClass { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_EndPoint_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_EndPoint_CapabilitiesEntry_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_EndPoint_CapabilitiesEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_EndPointName_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_EndPointName_fieldAccessorTable; @@ -76661,6 +81065,14 @@ public final class ContextOuterClass { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_Constraint_Exclusions_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_QoSProfileId_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_QoSProfileId_fieldAccessorTable; + + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_Constraint_QoSProfile_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_Constraint_QoSProfile_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_Constraint_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_Constraint_fieldAccessorTable; @@ -76685,26 +81097,42 @@ public final class ContextOuterClass { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalConfigList_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkId_descriptor; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalConfigEvent_descriptor; - private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkId_fieldAccessorTable; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalConfigEvent_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_FiberId_descriptor; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalEndPointId_descriptor; - private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_FiberId_fieldAccessorTable; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalEndPointId_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_Fiber_descriptor; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkList_descriptor; - private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_Fiber_fieldAccessorTable; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkList_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkDetails_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkDetails_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkDetails_CSlotsEntry_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkDetails_CSlotsEntry_fieldAccessorTable; + + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkDetails_LSlotsEntry_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkDetails_LSlotsEntry_fieldAccessorTable; + + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkDetails_SSlotsEntry_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkDetails_SSlotsEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLink_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLink_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_ServiceConfigRule_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_ServiceConfigRule_fieldAccessorTable; + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } @@ -76712,8 +81140,8 @@ public final class ContextOuterClass { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - java.lang.String[] descriptorData = { "\n\rcontext.proto\022\007context\032\tacl.proto\032\026kpi" + "_sample_types.proto\"\007\n\005Empty\"\024\n\004Uuid\022\014\n\004" + "uuid\030\001 \001(\t\"\036\n\tTimestamp\022\021\n\ttimestamp\030\001 \001" + "(\001\"Z\n\005Event\022%\n\ttimestamp\030\001 \001(\0132\022.context" + ".Timestamp\022*\n\nevent_type\030\002 \001(\0162\026.context" + ".EventTypeEnum\"0\n\tContextId\022#\n\014context_u" + "uid\030\001 \001(\0132\r.context.Uuid\"\351\001\n\007Context\022&\n\n" + "context_id\030\001 \001(\0132\022.context.ContextId\022\014\n\004" + "name\030\002 \001(\t\022)\n\014topology_ids\030\003 \003(\0132\023.conte" + "xt.TopologyId\022\'\n\013service_ids\030\004 \003(\0132\022.con" + "text.ServiceId\022#\n\tslice_ids\030\005 \003(\0132\020.cont" + "ext.SliceId\022/\n\ncontroller\030\006 \001(\0132\033.contex" + "t.TeraFlowController\"8\n\rContextIdList\022\'\n" + "\013context_ids\030\001 \003(\0132\022.context.ContextId\"1" + "\n\013ContextList\022\"\n\010contexts\030\001 \003(\0132\020.contex" + "t.Context\"U\n\014ContextEvent\022\035\n\005event\030\001 \001(\013" + "2\016.context.Event\022&\n\ncontext_id\030\002 \001(\0132\022.c" + "ontext.ContextId\"Z\n\nTopologyId\022&\n\ncontex" + "t_id\030\001 \001(\0132\022.context.ContextId\022$\n\rtopolo" + "gy_uuid\030\002 \001(\0132\r.context.Uuid\"\214\001\n\010Topolog" + "y\022(\n\013topology_id\030\001 \001(\0132\023.context.Topolog" + "yId\022\014\n\004name\030\002 \001(\t\022%\n\ndevice_ids\030\003 \003(\0132\021." + "context.DeviceId\022!\n\010link_ids\030\004 \003(\0132\017.con" + "text.LinkId\"\211\001\n\017TopologyDetails\022(\n\013topol" + "ogy_id\030\001 \001(\0132\023.context.TopologyId\022\014\n\004nam" + "e\030\002 \001(\t\022 \n\007devices\030\003 \003(\0132\017.context.Devic" + "e\022\034\n\005links\030\004 \003(\0132\r.context.Link\";\n\016Topol" + "ogyIdList\022)\n\014topology_ids\030\001 \003(\0132\023.contex" + "t.TopologyId\"5\n\014TopologyList\022%\n\ntopologi" + "es\030\001 \003(\0132\021.context.Topology\"X\n\rTopologyE" + "vent\022\035\n\005event\030\001 \001(\0132\016.context.Event\022(\n\013t" + "opology_id\030\002 \001(\0132\023.context.TopologyId\".\n" + "\010DeviceId\022\"\n\013device_uuid\030\001 \001(\0132\r.context" + ".Uuid\"\372\002\n\006Device\022$\n\tdevice_id\030\001 \001(\0132\021.co" + "ntext.DeviceId\022\014\n\004name\030\002 \001(\t\022\023\n\013device_t" + "ype\030\003 \001(\t\022,\n\rdevice_config\030\004 \001(\0132\025.conte" + "xt.DeviceConfig\022G\n\031device_operational_st" + "atus\030\005 \001(\0162$.context.DeviceOperationalSt" + "atusEnum\0221\n\016device_drivers\030\006 \003(\0162\031.conte" + "xt.DeviceDriverEnum\022+\n\020device_endpoints\030" + "\007 \003(\0132\021.context.EndPoint\022&\n\ncomponents\030\010" + " \003(\0132\022.context.Component\022(\n\rcontroller_i" + "d\030\t \001(\0132\021.context.DeviceId\"\311\001\n\tComponent" + "\022%\n\016component_uuid\030\001 \001(\0132\r.context.Uuid\022" + "\014\n\004name\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\0226\n\nattribute" + "s\030\004 \003(\0132\".context.Component.AttributesEn" + "try\022\016\n\006parent\030\005 \001(\t\0321\n\017AttributesEntry\022\013" + "\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"9\n\014Device" + "Config\022)\n\014config_rules\030\001 \003(\0132\023.context.C" + "onfigRule\"5\n\014DeviceIdList\022%\n\ndevice_ids\030" + "\001 \003(\0132\021.context.DeviceId\".\n\nDeviceList\022 " + "\n\007devices\030\001 \003(\0132\017.context.Device\"\216\001\n\014Dev" + "iceFilter\022)\n\ndevice_ids\030\001 \001(\0132\025.context." + "DeviceIdList\022\031\n\021include_endpoints\030\002 \001(\010\022" + "\034\n\024include_config_rules\030\003 \001(\010\022\032\n\022include" + "_components\030\004 \001(\010\"\200\001\n\013DeviceEvent\022\035\n\005eve" + "nt\030\001 \001(\0132\016.context.Event\022$\n\tdevice_id\030\002 " + "\001(\0132\021.context.DeviceId\022,\n\rdevice_config\030" + "\003 \001(\0132\025.context.DeviceConfig\"*\n\006LinkId\022 " + "\n\tlink_uuid\030\001 \001(\0132\r.context.Uuid\"I\n\016Link" + "Attributes\022\033\n\023total_capacity_gbps\030\001 \001(\002\022" + "\032\n\022used_capacity_gbps\030\002 \001(\002\"\223\001\n\004Link\022 \n\007" + "link_id\030\001 \001(\0132\017.context.LinkId\022\014\n\004name\030\002" + " \001(\t\022.\n\021link_endpoint_ids\030\003 \003(\0132\023.contex" + "t.EndPointId\022+\n\nattributes\030\004 \001(\0132\027.conte" + "xt.LinkAttributes\"/\n\nLinkIdList\022!\n\010link_" + "ids\030\001 \003(\0132\017.context.LinkId\"(\n\010LinkList\022\034" + "\n\005links\030\001 \003(\0132\r.context.Link\"L\n\tLinkEven" + "t\022\035\n\005event\030\001 \001(\0132\016.context.Event\022 \n\007link" + "_id\030\002 \001(\0132\017.context.LinkId\"X\n\tServiceId\022" + "&\n\ncontext_id\030\001 \001(\0132\022.context.ContextId\022" + "#\n\014service_uuid\030\002 \001(\0132\r.context.Uuid\"\333\002\n" + "\007Service\022&\n\nservice_id\030\001 \001(\0132\022.context.S" + "erviceId\022\014\n\004name\030\002 \001(\t\022.\n\014service_type\030\003" + " \001(\0162\030.context.ServiceTypeEnum\0221\n\024servic" + "e_endpoint_ids\030\004 \003(\0132\023.context.EndPointI" + "d\0220\n\023service_constraints\030\005 \003(\0132\023.context" + ".Constraint\022.\n\016service_status\030\006 \001(\0132\026.co" + "ntext.ServiceStatus\022.\n\016service_config\030\007 " + "\001(\0132\026.context.ServiceConfig\022%\n\ttimestamp" + "\030\010 \001(\0132\022.context.Timestamp\"C\n\rServiceSta" + "tus\0222\n\016service_status\030\001 \001(\0162\032.context.Se" + "rviceStatusEnum\":\n\rServiceConfig\022)\n\014conf" + "ig_rules\030\001 \003(\0132\023.context.ConfigRule\"8\n\rS" + "erviceIdList\022\'\n\013service_ids\030\001 \003(\0132\022.cont" + "ext.ServiceId\"1\n\013ServiceList\022\"\n\010services" + "\030\001 \003(\0132\020.context.Service\"\225\001\n\rServiceFilt" + "er\022+\n\013service_ids\030\001 \001(\0132\026.context.Servic" + "eIdList\022\034\n\024include_endpoint_ids\030\002 \001(\010\022\033\n" + "\023include_constraints\030\003 \001(\010\022\034\n\024include_co" + "nfig_rules\030\004 \001(\010\"U\n\014ServiceEvent\022\035\n\005even" + "t\030\001 \001(\0132\016.context.Event\022&\n\nservice_id\030\002 " + "\001(\0132\022.context.ServiceId\"T\n\007SliceId\022&\n\nco" + "ntext_id\030\001 \001(\0132\022.context.ContextId\022!\n\nsl" + "ice_uuid\030\002 \001(\0132\r.context.Uuid\"\240\003\n\005Slice\022" + "\"\n\010slice_id\030\001 \001(\0132\020.context.SliceId\022\014\n\004n" + "ame\030\002 \001(\t\022/\n\022slice_endpoint_ids\030\003 \003(\0132\023." + "context.EndPointId\022.\n\021slice_constraints\030" + "\004 \003(\0132\023.context.Constraint\022-\n\021slice_serv" + "ice_ids\030\005 \003(\0132\022.context.ServiceId\022,\n\022sli" + "ce_subslice_ids\030\006 \003(\0132\020.context.SliceId\022" + "*\n\014slice_status\030\007 \001(\0132\024.context.SliceSta" + "tus\022*\n\014slice_config\030\010 \001(\0132\024.context.Slic" + "eConfig\022(\n\013slice_owner\030\t \001(\0132\023.context.S" + "liceOwner\022%\n\ttimestamp\030\n \001(\0132\022.context.T" + "imestamp\"E\n\nSliceOwner\022!\n\nowner_uuid\030\001 \001" + "(\0132\r.context.Uuid\022\024\n\014owner_string\030\002 \001(\t\"" + "=\n\013SliceStatus\022.\n\014slice_status\030\001 \001(\0162\030.c" + "ontext.SliceStatusEnum\"8\n\013SliceConfig\022)\n" + "\014config_rules\030\001 \003(\0132\023.context.ConfigRule" + "\"2\n\013SliceIdList\022#\n\tslice_ids\030\001 \003(\0132\020.con" + "text.SliceId\"+\n\tSliceList\022\036\n\006slices\030\001 \003(" + "\0132\016.context.Slice\"\312\001\n\013SliceFilter\022\'\n\tsli" + "ce_ids\030\001 \001(\0132\024.context.SliceIdList\022\034\n\024in" + "clude_endpoint_ids\030\002 \001(\010\022\033\n\023include_cons" + "traints\030\003 \001(\010\022\033\n\023include_service_ids\030\004 \001" + "(\010\022\034\n\024include_subslice_ids\030\005 \001(\010\022\034\n\024incl" + "ude_config_rules\030\006 \001(\010\"O\n\nSliceEvent\022\035\n\005" + "event\030\001 \001(\0132\016.context.Event\022\"\n\010slice_id\030" + "\002 \001(\0132\020.context.SliceId\"6\n\014ConnectionId\022" + "&\n\017connection_uuid\030\001 \001(\0132\r.context.Uuid\"" + "2\n\025ConnectionSettings_L0\022\031\n\021lsp_symbolic" + "_name\030\001 \001(\t\"\236\001\n\025ConnectionSettings_L2\022\027\n" + "\017src_mac_address\030\001 \001(\t\022\027\n\017dst_mac_addres" + "s\030\002 \001(\t\022\022\n\nether_type\030\003 \001(\r\022\017\n\007vlan_id\030\004" + " \001(\r\022\022\n\nmpls_label\030\005 \001(\r\022\032\n\022mpls_traffic" + "_class\030\006 \001(\r\"t\n\025ConnectionSettings_L3\022\026\n" + "\016src_ip_address\030\001 \001(\t\022\026\n\016dst_ip_address\030" + "\002 \001(\t\022\014\n\004dscp\030\003 \001(\r\022\020\n\010protocol\030\004 \001(\r\022\013\n" + "\003ttl\030\005 \001(\r\"[\n\025ConnectionSettings_L4\022\020\n\010s" + "rc_port\030\001 \001(\r\022\020\n\010dst_port\030\002 \001(\r\022\021\n\ttcp_f" + "lags\030\003 \001(\r\022\013\n\003ttl\030\004 \001(\r\"\304\001\n\022ConnectionSe" + "ttings\022*\n\002l0\030\001 \001(\0132\036.context.ConnectionS" + "ettings_L0\022*\n\002l2\030\002 \001(\0132\036.context.Connect" + "ionSettings_L2\022*\n\002l3\030\003 \001(\0132\036.context.Con" + "nectionSettings_L3\022*\n\002l4\030\004 \001(\0132\036.context" + ".ConnectionSettings_L4\"\363\001\n\nConnection\022,\n" + "\rconnection_id\030\001 \001(\0132\025.context.Connectio" + "nId\022&\n\nservice_id\030\002 \001(\0132\022.context.Servic" + "eId\0223\n\026path_hops_endpoint_ids\030\003 \003(\0132\023.co" + "ntext.EndPointId\022+\n\017sub_service_ids\030\004 \003(" + "\0132\022.context.ServiceId\022-\n\010settings\030\005 \001(\0132" + "\033.context.ConnectionSettings\"A\n\020Connecti" + "onIdList\022-\n\016connection_ids\030\001 \003(\0132\025.conte" + "xt.ConnectionId\":\n\016ConnectionList\022(\n\013con" + "nections\030\001 \003(\0132\023.context.Connection\"^\n\017C" + "onnectionEvent\022\035\n\005event\030\001 \001(\0132\016.context." + "Event\022,\n\rconnection_id\030\002 \001(\0132\025.context.C" + "onnectionId\"\202\001\n\nEndPointId\022(\n\013topology_i" + "d\030\001 \001(\0132\023.context.TopologyId\022$\n\tdevice_i" + "d\030\002 \001(\0132\021.context.DeviceId\022$\n\rendpoint_u" + "uid\030\003 \001(\0132\r.context.Uuid\"\302\001\n\010EndPoint\022(\n" + "\013endpoint_id\030\001 \001(\0132\023.context.EndPointId\022" + "\014\n\004name\030\002 \001(\t\022\025\n\rendpoint_type\030\003 \001(\t\0229\n\020" + "kpi_sample_types\030\004 \003(\0162\037.kpi_sample_type" + "s.KpiSampleType\022,\n\021endpoint_location\030\005 \001" + "(\0132\021.context.Location\"{\n\014EndPointName\022(\n" + "\013endpoint_id\030\001 \001(\0132\023.context.EndPointId\022" + "\023\n\013device_name\030\002 \001(\t\022\025\n\rendpoint_name\030\003 " + "\001(\t\022\025\n\rendpoint_type\030\004 \001(\t\";\n\016EndPointId" + "List\022)\n\014endpoint_ids\030\001 \003(\0132\023.context.End" + "PointId\"A\n\020EndPointNameList\022-\n\016endpoint_" + "names\030\001 \003(\0132\025.context.EndPointName\"A\n\021Co" + "nfigRule_Custom\022\024\n\014resource_key\030\001 \001(\t\022\026\n" + "\016resource_value\030\002 \001(\t\"]\n\016ConfigRule_ACL\022" + "(\n\013endpoint_id\030\001 \001(\0132\023.context.EndPointI" + "d\022!\n\010rule_set\030\002 \001(\0132\017.acl.AclRuleSet\"\234\001\n" + "\nConfigRule\022)\n\006action\030\001 \001(\0162\031.context.Co" + "nfigActionEnum\022,\n\006custom\030\002 \001(\0132\032.context" + ".ConfigRule_CustomH\000\022&\n\003acl\030\003 \001(\0132\027.cont" + "ext.ConfigRule_ACLH\000B\r\n\013config_rule\"F\n\021C" + "onstraint_Custom\022\027\n\017constraint_type\030\001 \001(" + "\t\022\030\n\020constraint_value\030\002 \001(\t\"E\n\023Constrain" + "t_Schedule\022\027\n\017start_timestamp\030\001 \001(\002\022\025\n\rd" + "uration_days\030\002 \001(\002\"3\n\014GPS_Position\022\020\n\010la" + "titude\030\001 \001(\002\022\021\n\tlongitude\030\002 \001(\002\"W\n\010Locat" + "ion\022\020\n\006region\030\001 \001(\tH\000\022-\n\014gps_position\030\002 " + "\001(\0132\025.context.GPS_PositionH\000B\n\n\010location" + "\"l\n\033Constraint_EndPointLocation\022(\n\013endpo" + "int_id\030\001 \001(\0132\023.context.EndPointId\022#\n\010loc" + "ation\030\002 \001(\0132\021.context.Location\"Y\n\033Constr" + "aint_EndPointPriority\022(\n\013endpoint_id\030\001 \001" + "(\0132\023.context.EndPointId\022\020\n\010priority\030\002 \001(" + "\r\"0\n\026Constraint_SLA_Latency\022\026\n\016e2e_laten" + "cy_ms\030\001 \001(\002\"0\n\027Constraint_SLA_Capacity\022\025" + "\n\rcapacity_gbps\030\001 \001(\002\"c\n\033Constraint_SLA_" + "Availability\022\032\n\022num_disjoint_paths\030\001 \001(\r" + "\022\022\n\nall_active\030\002 \001(\010\022\024\n\014availability\030\003 \001" + "(\002\"V\n\036Constraint_SLA_Isolation_level\0224\n\017" + "isolation_level\030\001 \003(\0162\033.context.Isolatio" + "nLevelEnum\"\242\001\n\025Constraint_Exclusions\022\024\n\014" + "is_permanent\030\001 \001(\010\022%\n\ndevice_ids\030\002 \003(\0132\021" + ".context.DeviceId\022)\n\014endpoint_ids\030\003 \003(\0132" + "\023.context.EndPointId\022!\n\010link_ids\030\004 \003(\0132\017" + ".context.LinkId\"\333\004\n\nConstraint\022-\n\006action" + "\030\001 \001(\0162\035.context.ConstraintActionEnum\022,\n" + "\006custom\030\002 \001(\0132\032.context.Constraint_Custo" + "mH\000\0220\n\010schedule\030\003 \001(\0132\034.context.Constrai" + "nt_ScheduleH\000\022A\n\021endpoint_location\030\004 \001(\013" + "2$.context.Constraint_EndPointLocationH\000" + "\022A\n\021endpoint_priority\030\005 \001(\0132$.context.Co" + "nstraint_EndPointPriorityH\000\0228\n\014sla_capac" + "ity\030\006 \001(\0132 .context.Constraint_SLA_Capac" + "ityH\000\0226\n\013sla_latency\030\007 \001(\0132\037.context.Con" + "straint_SLA_LatencyH\000\022@\n\020sla_availabilit" + "y\030\010 \001(\0132$.context.Constraint_SLA_Availab" + "ilityH\000\022@\n\rsla_isolation\030\t \001(\0132\'.context" + ".Constraint_SLA_Isolation_levelH\000\0224\n\nexc" + "lusions\030\n \001(\0132\036.context.Constraint_Exclu" + "sionsH\000B\014\n\nconstraint\"^\n\022TeraFlowControl" + "ler\022&\n\ncontext_id\030\001 \001(\0132\022.context.Contex" + "tId\022\022\n\nip_address\030\002 \001(\t\022\014\n\004port\030\003 \001(\r\"U\n" + "\024AuthenticationResult\022&\n\ncontext_id\030\001 \001(" + "\0132\022.context.ContextId\022\025\n\rauthenticated\030\002" + " \001(\010\"-\n\017OpticalConfigId\022\032\n\022opticalconfig" + "_uuid\030\001 \001(\t\"S\n\rOpticalConfig\0222\n\020opticalc" + "onfig_id\030\001 \001(\0132\030.context.OpticalConfigId" + "\022\016\n\006config\030\002 \001(\t\"C\n\021OpticalConfigList\022.\n" + "\016opticalconfigs\030\001 \003(\0132\026.context.OpticalC" + "onfig\"9\n\rOpticalLinkId\022(\n\021optical_link_u" + "uid\030\001 \001(\0132\r.context.Uuid\",\n\007FiberId\022!\n\nf" + "iber_uuid\030\001 \001(\0132\r.context.Uuid\"\341\001\n\005Fiber" + "\022\n\n\002ID\030\n \001(\t\022\020\n\010src_port\030\001 \001(\t\022\020\n\010dst_po" + "rt\030\002 \001(\t\022\027\n\017local_peer_port\030\003 \001(\t\022\030\n\020rem" + "ote_peer_port\030\004 \001(\t\022\017\n\007c_slots\030\005 \003(\005\022\017\n\007" + "l_slots\030\006 \003(\005\022\017\n\007s_slots\030\007 \003(\005\022\016\n\006length" + "\030\010 \001(\002\022\014\n\004used\030\t \001(\010\022$\n\nfiber_uuid\030\013 \001(\013" + "2\020.context.FiberId\"d\n\022OpticalLinkDetails" + "\022\016\n\006length\030\001 \001(\002\022\016\n\006source\030\002 \001(\t\022\016\n\006targ" + "et\030\003 \001(\t\022\036\n\006fibers\030\004 \003(\0132\016.context.Fiber" + "\"|\n\013OpticalLink\022\014\n\004name\030\001 \001(\t\022,\n\007details" + "\030\002 \001(\0132\033.context.OpticalLinkDetails\0221\n\021o" + "ptical_link_uuid\030\003 \001(\0132\026.context.Optical" + "LinkId*j\n\rEventTypeEnum\022\027\n\023EVENTTYPE_UND" + "EFINED\020\000\022\024\n\020EVENTTYPE_CREATE\020\001\022\024\n\020EVENTT" + "YPE_UPDATE\020\002\022\024\n\020EVENTTYPE_REMOVE\020\003*\376\002\n\020D" + "eviceDriverEnum\022\032\n\026DEVICEDRIVER_UNDEFINE" + "D\020\000\022\033\n\027DEVICEDRIVER_OPENCONFIG\020\001\022\036\n\032DEVI" + "CEDRIVER_TRANSPORT_API\020\002\022\023\n\017DEVICEDRIVER" + "_P4\020\003\022&\n\"DEVICEDRIVER_IETF_NETWORK_TOPOL" + "OGY\020\004\022\033\n\027DEVICEDRIVER_ONF_TR_532\020\005\022\023\n\017DE" + "VICEDRIVER_XR\020\006\022\033\n\027DEVICEDRIVER_IETF_L2V" + "PN\020\007\022 \n\034DEVICEDRIVER_GNMI_OPENCONFIG\020\010\022\034" + "\n\030DEVICEDRIVER_OPTICAL_TFS\020\t\022\032\n\026DEVICEDR" + "IVER_IETF_ACTN\020\n\022\023\n\017DEVICEDRIVER_OC\020\013\022\024\n" + "\020DEVICEDRIVER_QKD\020\014*\217\001\n\033DeviceOperationa" + "lStatusEnum\022%\n!DEVICEOPERATIONALSTATUS_U" + "NDEFINED\020\000\022$\n DEVICEOPERATIONALSTATUS_DI" + "SABLED\020\001\022#\n\037DEVICEOPERATIONALSTATUS_ENAB" + "LED\020\002*\345\001\n\017ServiceTypeEnum\022\027\n\023SERVICETYPE" + "_UNKNOWN\020\000\022\024\n\020SERVICETYPE_L3NM\020\001\022\024\n\020SERV" + "ICETYPE_L2NM\020\002\022)\n%SERVICETYPE_TAPI_CONNE" + "CTIVITY_SERVICE\020\003\022\022\n\016SERVICETYPE_TE\020\004\022\023\n" + "\017SERVICETYPE_E2E\020\005\022$\n SERVICETYPE_OPTICA" + "L_CONNECTIVITY\020\006\022\023\n\017SERVICETYPE_QKD\020\007*\304\001" + "\n\021ServiceStatusEnum\022\033\n\027SERVICESTATUS_UND" + "EFINED\020\000\022\031\n\025SERVICESTATUS_PLANNED\020\001\022\030\n\024S" + "ERVICESTATUS_ACTIVE\020\002\022\032\n\026SERVICESTATUS_U" + "PDATING\020\003\022!\n\035SERVICESTATUS_PENDING_REMOV" + "AL\020\004\022\036\n\032SERVICESTATUS_SLA_VIOLATED\020\005*\251\001\n" + "\017SliceStatusEnum\022\031\n\025SLICESTATUS_UNDEFINE" + "D\020\000\022\027\n\023SLICESTATUS_PLANNED\020\001\022\024\n\020SLICESTA" + "TUS_INIT\020\002\022\026\n\022SLICESTATUS_ACTIVE\020\003\022\026\n\022SL" + "ICESTATUS_DEINIT\020\004\022\034\n\030SLICESTATUS_SLA_VI" + "OLATED\020\005*]\n\020ConfigActionEnum\022\032\n\026CONFIGAC" + "TION_UNDEFINED\020\000\022\024\n\020CONFIGACTION_SET\020\001\022\027" + "\n\023CONFIGACTION_DELETE\020\002*m\n\024ConstraintAct" + "ionEnum\022\036\n\032CONSTRAINTACTION_UNDEFINED\020\000\022" + "\030\n\024CONSTRAINTACTION_SET\020\001\022\033\n\027CONSTRAINTA" + "CTION_DELETE\020\002*\203\002\n\022IsolationLevelEnum\022\020\n" + "\014NO_ISOLATION\020\000\022\026\n\022PHYSICAL_ISOLATION\020\001\022" + "\025\n\021LOGICAL_ISOLATION\020\002\022\025\n\021PROCESS_ISOLAT" + "ION\020\003\022\035\n\031PHYSICAL_MEMORY_ISOLATION\020\004\022\036\n\032" + "PHYSICAL_NETWORK_ISOLATION\020\005\022\036\n\032VIRTUAL_" + "RESOURCE_ISOLATION\020\006\022\037\n\033NETWORK_FUNCTION" + "S_ISOLATION\020\007\022\025\n\021SERVICE_ISOLATION\020\0102\246\031\n" + "\016ContextService\022:\n\016ListContextIds\022\016.cont" + "ext.Empty\032\026.context.ContextIdList\"\000\0226\n\014L" + "istContexts\022\016.context.Empty\032\024.context.Co" + "ntextList\"\000\0224\n\nGetContext\022\022.context.Cont" + "extId\032\020.context.Context\"\000\0224\n\nSetContext\022" + "\020.context.Context\032\022.context.ContextId\"\000\022" + "5\n\rRemoveContext\022\022.context.ContextId\032\016.c" + "ontext.Empty\"\000\022=\n\020GetContextEvents\022\016.con" + "text.Empty\032\025.context.ContextEvent\"\0000\001\022@\n" + "\017ListTopologyIds\022\022.context.ContextId\032\027.c" + "ontext.TopologyIdList\"\000\022=\n\016ListTopologie" + "s\022\022.context.ContextId\032\025.context.Topology" + "List\"\000\0227\n\013GetTopology\022\023.context.Topology" + "Id\032\021.context.Topology\"\000\022E\n\022GetTopologyDe" + "tails\022\023.context.TopologyId\032\030.context.Top" + "ologyDetails\"\000\0227\n\013SetTopology\022\021.context." + "Topology\032\023.context.TopologyId\"\000\0227\n\016Remov" + "eTopology\022\023.context.TopologyId\032\016.context" + ".Empty\"\000\022?\n\021GetTopologyEvents\022\016.context." + "Empty\032\026.context.TopologyEvent\"\0000\001\0228\n\rLis" + "tDeviceIds\022\016.context.Empty\032\025.context.Dev" + "iceIdList\"\000\0224\n\013ListDevices\022\016.context.Emp" + "ty\032\023.context.DeviceList\"\000\0221\n\tGetDevice\022\021" + ".context.DeviceId\032\017.context.Device\"\000\0221\n\t" + "SetDevice\022\017.context.Device\032\021.context.Dev" + "iceId\"\000\0223\n\014RemoveDevice\022\021.context.Device" + "Id\032\016.context.Empty\"\000\022;\n\017GetDeviceEvents\022" + "\016.context.Empty\032\024.context.DeviceEvent\"\0000" + "\001\022<\n\014SelectDevice\022\025.context.DeviceFilter" + "\032\023.context.DeviceList\"\000\022I\n\021ListEndPointN" + "ames\022\027.context.EndPointIdList\032\031.context." + "EndPointNameList\"\000\0224\n\013ListLinkIds\022\016.cont" + "ext.Empty\032\023.context.LinkIdList\"\000\0220\n\tList" + "Links\022\016.context.Empty\032\021.context.LinkList" + "\"\000\022+\n\007GetLink\022\017.context.LinkId\032\r.context" + ".Link\"\000\022+\n\007SetLink\022\r.context.Link\032\017.cont" + "ext.LinkId\"\000\022/\n\nRemoveLink\022\017.context.Lin" + "kId\032\016.context.Empty\"\000\0227\n\rGetLinkEvents\022\016" + ".context.Empty\032\022.context.LinkEvent\"\0000\001\022>" + "\n\016ListServiceIds\022\022.context.ContextId\032\026.c" + "ontext.ServiceIdList\"\000\022:\n\014ListServices\022\022" + ".context.ContextId\032\024.context.ServiceList" + "\"\000\0224\n\nGetService\022\022.context.ServiceId\032\020.c" + "ontext.Service\"\000\0224\n\nSetService\022\020.context" + ".Service\032\022.context.ServiceId\"\000\0226\n\014UnsetS" + "ervice\022\020.context.Service\032\022.context.Servi" + "ceId\"\000\0225\n\rRemoveService\022\022.context.Servic" + "eId\032\016.context.Empty\"\000\022=\n\020GetServiceEvent" + "s\022\016.context.Empty\032\025.context.ServiceEvent" + "\"\0000\001\022?\n\rSelectService\022\026.context.ServiceF" + "ilter\032\024.context.ServiceList\"\000\022:\n\014ListSli" + "ceIds\022\022.context.ContextId\032\024.context.Slic" + "eIdList\"\000\0226\n\nListSlices\022\022.context.Contex" + "tId\032\022.context.SliceList\"\000\022.\n\010GetSlice\022\020." + "context.SliceId\032\016.context.Slice\"\000\022.\n\010Set" + "Slice\022\016.context.Slice\032\020.context.SliceId\"" + "\000\0220\n\nUnsetSlice\022\016.context.Slice\032\020.contex" + "t.SliceId\"\000\0221\n\013RemoveSlice\022\020.context.Sli" + "ceId\032\016.context.Empty\"\000\0229\n\016GetSliceEvents" + "\022\016.context.Empty\032\023.context.SliceEvent\"\0000" + "\001\0229\n\013SelectSlice\022\024.context.SliceFilter\032\022" + ".context.SliceList\"\000\022D\n\021ListConnectionId" + "s\022\022.context.ServiceId\032\031.context.Connecti" + "onIdList\"\000\022@\n\017ListConnections\022\022.context." + "ServiceId\032\027.context.ConnectionList\"\000\022=\n\r" + "GetConnection\022\025.context.ConnectionId\032\023.c" + "ontext.Connection\"\000\022=\n\rSetConnection\022\023.c" + "ontext.Connection\032\025.context.ConnectionId" + "\"\000\022;\n\020RemoveConnection\022\025.context.Connect" + "ionId\032\016.context.Empty\"\000\022C\n\023GetConnection" + "Events\022\016.context.Empty\032\030.context.Connect" + "ionEvent\"\0000\001\022@\n\020GetOpticalConfig\022\016.conte" + "xt.Empty\032\032.context.OpticalConfigList\"\000\022F" + "\n\020SetOpticalConfig\022\026.context.OpticalConf" + "ig\032\030.context.OpticalConfigId\"\000\022I\n\023Select" + "OpticalConfig\022\030.context.OpticalConfigId\032" + "\026.context.OpticalConfig\"\000\0228\n\016SetOpticalL" + "ink\022\024.context.OpticalLink\032\016.context.Empt" + "y\"\000\022@\n\016GetOpticalLink\022\026.context.OpticalL" + "inkId\032\024.context.OpticalLink\"\000\022.\n\010GetFibe" + "r\022\020.context.FiberId\032\016.context.Fiber\"\000b\006p" + "roto3" }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { acl.Acl.getDescriptor(), kpi_sample_types.KpiSampleTypes.getDescriptor() }); + java.lang.String[] descriptorData = { "\n\rcontext.proto\022\007context\032\031google/protobu" + "f/any.proto\032\tacl.proto\032\026kpi_sample_types" + ".proto\"\007\n\005Empty\"\024\n\004Uuid\022\014\n\004uuid\030\001 \001(\t\"\036\n" + "\tTimestamp\022\021\n\ttimestamp\030\001 \001(\001\"Z\n\005Event\022%" + "\n\ttimestamp\030\001 \001(\0132\022.context.Timestamp\022*\n" + "\nevent_type\030\002 \001(\0162\026.context.EventTypeEnu" + "m\"0\n\tContextId\022#\n\014context_uuid\030\001 \001(\0132\r.c" + "ontext.Uuid\"\351\001\n\007Context\022&\n\ncontext_id\030\001 " + "\001(\0132\022.context.ContextId\022\014\n\004name\030\002 \001(\t\022)\n" + "\014topology_ids\030\003 \003(\0132\023.context.TopologyId" + "\022\'\n\013service_ids\030\004 \003(\0132\022.context.ServiceI" + "d\022#\n\tslice_ids\030\005 \003(\0132\020.context.SliceId\022/" + "\n\ncontroller\030\006 \001(\0132\033.context.TeraFlowCon" + "troller\"8\n\rContextIdList\022\'\n\013context_ids\030" + "\001 \003(\0132\022.context.ContextId\"1\n\013ContextList" + "\022\"\n\010contexts\030\001 \003(\0132\020.context.Context\"U\n\014" + "ContextEvent\022\035\n\005event\030\001 \001(\0132\016.context.Ev" + "ent\022&\n\ncontext_id\030\002 \001(\0132\022.context.Contex" + "tId\"Z\n\nTopologyId\022&\n\ncontext_id\030\001 \001(\0132\022." + "context.ContextId\022$\n\rtopology_uuid\030\002 \001(\013" + "2\r.context.Uuid\"\267\001\n\010Topology\022(\n\013topology" + "_id\030\001 \001(\0132\023.context.TopologyId\022\014\n\004name\030\002" + " \001(\t\022%\n\ndevice_ids\030\003 \003(\0132\021.context.Devic" + "eId\022!\n\010link_ids\030\004 \003(\0132\017.context.LinkId\022)" + "\n\020optical_link_ids\030\005 \003(\0132\017.context.LinkI" + "d\"\266\001\n\017TopologyDetails\022(\n\013topology_id\030\001 \001" + "(\0132\023.context.TopologyId\022\014\n\004name\030\002 \001(\t\022 \n" + "\007devices\030\003 \003(\0132\017.context.Device\022\034\n\005links" + "\030\004 \003(\0132\r.context.Link\022+\n\roptical_links\030\005" + " \003(\0132\024.context.OpticalLink\";\n\016TopologyId" + "List\022)\n\014topology_ids\030\001 \003(\0132\023.context.Top" + "ologyId\"5\n\014TopologyList\022%\n\ntopologies\030\001 " + "\003(\0132\021.context.Topology\"X\n\rTopologyEvent\022" + "\035\n\005event\030\001 \001(\0132\016.context.Event\022(\n\013topolo" + "gy_id\030\002 \001(\0132\023.context.TopologyId\".\n\010Devi" + "ceId\022\"\n\013device_uuid\030\001 \001(\0132\r.context.Uuid" + "\"\372\002\n\006Device\022$\n\tdevice_id\030\001 \001(\0132\021.context" + ".DeviceId\022\014\n\004name\030\002 \001(\t\022\023\n\013device_type\030\003" + " \001(\t\022,\n\rdevice_config\030\004 \001(\0132\025.context.De" + "viceConfig\022G\n\031device_operational_status\030" + "\005 \001(\0162$.context.DeviceOperationalStatusE" + "num\0221\n\016device_drivers\030\006 \003(\0162\031.context.De" + "viceDriverEnum\022+\n\020device_endpoints\030\007 \003(\013" + "2\021.context.EndPoint\022&\n\ncomponents\030\010 \003(\0132" + "\022.context.Component\022(\n\rcontroller_id\030\t \001" + "(\0132\021.context.DeviceId\"\311\001\n\tComponent\022%\n\016c" + "omponent_uuid\030\001 \001(\0132\r.context.Uuid\022\014\n\004na" + "me\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\0226\n\nattributes\030\004 \003" + "(\0132\".context.Component.AttributesEntry\022\016" + "\n\006parent\030\005 \001(\t\0321\n\017AttributesEntry\022\013\n\003key" + "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"9\n\014DeviceConfi" + "g\022)\n\014config_rules\030\001 \003(\0132\023.context.Config" + "Rule\"5\n\014DeviceIdList\022%\n\ndevice_ids\030\001 \003(\013" + "2\021.context.DeviceId\".\n\nDeviceList\022 \n\007dev" + "ices\030\001 \003(\0132\017.context.Device\"\216\001\n\014DeviceFi" + "lter\022)\n\ndevice_ids\030\001 \001(\0132\025.context.Devic" + "eIdList\022\031\n\021include_endpoints\030\002 \001(\010\022\034\n\024in" + "clude_config_rules\030\003 \001(\010\022\032\n\022include_comp" + "onents\030\004 \001(\010\"\200\001\n\013DeviceEvent\022\035\n\005event\030\001 " + "\001(\0132\016.context.Event\022$\n\tdevice_id\030\002 \001(\0132\021" + ".context.DeviceId\022,\n\rdevice_config\030\003 \001(\013" + "2\025.context.DeviceConfig\"*\n\006LinkId\022 \n\tlin" + "k_uuid\030\001 \001(\0132\r.context.Uuid\"I\n\016LinkAttri" + "butes\022\033\n\023total_capacity_gbps\030\001 \001(\002\022\032\n\022us" + "ed_capacity_gbps\030\002 \001(\002\"\275\001\n\004Link\022 \n\007link_" + "id\030\001 \001(\0132\017.context.LinkId\022\014\n\004name\030\002 \001(\t\022" + "(\n\tlink_type\030\003 \001(\0162\025.context.LinkTypeEnu" + "m\022.\n\021link_endpoint_ids\030\004 \003(\0132\023.context.E" + "ndPointId\022+\n\nattributes\030\005 \001(\0132\027.context." + "LinkAttributes\"/\n\nLinkIdList\022!\n\010link_ids" + "\030\001 \003(\0132\017.context.LinkId\"(\n\010LinkList\022\034\n\005l" + "inks\030\001 \003(\0132\r.context.Link\"L\n\tLinkEvent\022\035" + "\n\005event\030\001 \001(\0132\016.context.Event\022 \n\007link_id" + "\030\002 \001(\0132\017.context.LinkId\"X\n\tServiceId\022&\n\n" + "context_id\030\001 \001(\0132\022.context.ContextId\022#\n\014" + "service_uuid\030\002 \001(\0132\r.context.Uuid\"\333\002\n\007Se" + "rvice\022&\n\nservice_id\030\001 \001(\0132\022.context.Serv" + "iceId\022\014\n\004name\030\002 \001(\t\022.\n\014service_type\030\003 \001(" + "\0162\030.context.ServiceTypeEnum\0221\n\024service_e" + "ndpoint_ids\030\004 \003(\0132\023.context.EndPointId\0220" + "\n\023service_constraints\030\005 \003(\0132\023.context.Co" + "nstraint\022.\n\016service_status\030\006 \001(\0132\026.conte" + "xt.ServiceStatus\022.\n\016service_config\030\007 \001(\013" + "2\026.context.ServiceConfig\022%\n\ttimestamp\030\010 " + "\001(\0132\022.context.Timestamp\"C\n\rServiceStatus" + "\0222\n\016service_status\030\001 \001(\0162\032.context.Servi" + "ceStatusEnum\":\n\rServiceConfig\022)\n\014config_" + "rules\030\001 \003(\0132\023.context.ConfigRule\"8\n\rServ" + "iceIdList\022\'\n\013service_ids\030\001 \003(\0132\022.context" + ".ServiceId\"1\n\013ServiceList\022\"\n\010services\030\001 " + "\003(\0132\020.context.Service\"\225\001\n\rServiceFilter\022" + "+\n\013service_ids\030\001 \001(\0132\026.context.ServiceId" + "List\022\034\n\024include_endpoint_ids\030\002 \001(\010\022\033\n\023in" + "clude_constraints\030\003 \001(\010\022\034\n\024include_confi" + "g_rules\030\004 \001(\010\"U\n\014ServiceEvent\022\035\n\005event\030\001" + " \001(\0132\016.context.Event\022&\n\nservice_id\030\002 \001(\013" + "2\022.context.ServiceId\"T\n\007SliceId\022&\n\nconte" + "xt_id\030\001 \001(\0132\022.context.ContextId\022!\n\nslice" + "_uuid\030\002 \001(\0132\r.context.Uuid\"\240\003\n\005Slice\022\"\n\010" + "slice_id\030\001 \001(\0132\020.context.SliceId\022\014\n\004name" + "\030\002 \001(\t\022/\n\022slice_endpoint_ids\030\003 \003(\0132\023.con" + "text.EndPointId\022.\n\021slice_constraints\030\004 \003" + "(\0132\023.context.Constraint\022-\n\021slice_service" + "_ids\030\005 \003(\0132\022.context.ServiceId\022,\n\022slice_" + "subslice_ids\030\006 \003(\0132\020.context.SliceId\022*\n\014" + "slice_status\030\007 \001(\0132\024.context.SliceStatus" + "\022*\n\014slice_config\030\010 \001(\0132\024.context.SliceCo" + "nfig\022(\n\013slice_owner\030\t \001(\0132\023.context.Slic" + "eOwner\022%\n\ttimestamp\030\n \001(\0132\022.context.Time" + "stamp\"E\n\nSliceOwner\022!\n\nowner_uuid\030\001 \001(\0132" + "\r.context.Uuid\022\024\n\014owner_string\030\002 \001(\t\"=\n\013" + "SliceStatus\022.\n\014slice_status\030\001 \001(\0162\030.cont" + "ext.SliceStatusEnum\"8\n\013SliceConfig\022)\n\014co" + "nfig_rules\030\001 \003(\0132\023.context.ConfigRule\"2\n" + "\013SliceIdList\022#\n\tslice_ids\030\001 \003(\0132\020.contex" + "t.SliceId\"+\n\tSliceList\022\036\n\006slices\030\001 \003(\0132\016" + ".context.Slice\"\312\001\n\013SliceFilter\022\'\n\tslice_" + "ids\030\001 \001(\0132\024.context.SliceIdList\022\034\n\024inclu" + "de_endpoint_ids\030\002 \001(\010\022\033\n\023include_constra" + "ints\030\003 \001(\010\022\033\n\023include_service_ids\030\004 \001(\010\022" + "\034\n\024include_subslice_ids\030\005 \001(\010\022\034\n\024include" + "_config_rules\030\006 \001(\010\"O\n\nSliceEvent\022\035\n\005eve" + "nt\030\001 \001(\0132\016.context.Event\022\"\n\010slice_id\030\002 \001" + "(\0132\020.context.SliceId\"6\n\014ConnectionId\022&\n\017" + "connection_uuid\030\001 \001(\0132\r.context.Uuid\"2\n\025" + "ConnectionSettings_L0\022\031\n\021lsp_symbolic_na" + "me\030\001 \001(\t\"\236\001\n\025ConnectionSettings_L2\022\027\n\017sr" + "c_mac_address\030\001 \001(\t\022\027\n\017dst_mac_address\030\002" + " \001(\t\022\022\n\nether_type\030\003 \001(\r\022\017\n\007vlan_id\030\004 \001(" + "\r\022\022\n\nmpls_label\030\005 \001(\r\022\032\n\022mpls_traffic_cl" + "ass\030\006 \001(\r\"t\n\025ConnectionSettings_L3\022\026\n\016sr" + "c_ip_address\030\001 \001(\t\022\026\n\016dst_ip_address\030\002 \001" + "(\t\022\014\n\004dscp\030\003 \001(\r\022\020\n\010protocol\030\004 \001(\r\022\013\n\003tt" + "l\030\005 \001(\r\"[\n\025ConnectionSettings_L4\022\020\n\010src_" + "port\030\001 \001(\r\022\020\n\010dst_port\030\002 \001(\r\022\021\n\ttcp_flag" + "s\030\003 \001(\r\022\013\n\003ttl\030\004 \001(\r\"\304\001\n\022ConnectionSetti" + "ngs\022*\n\002l0\030\001 \001(\0132\036.context.ConnectionSett" + "ings_L0\022*\n\002l2\030\002 \001(\0132\036.context.Connection" + "Settings_L2\022*\n\002l3\030\003 \001(\0132\036.context.Connec" + "tionSettings_L3\022*\n\002l4\030\004 \001(\0132\036.context.Co" + "nnectionSettings_L4\"\363\001\n\nConnection\022,\n\rco" + "nnection_id\030\001 \001(\0132\025.context.ConnectionId" + "\022&\n\nservice_id\030\002 \001(\0132\022.context.ServiceId" + "\0223\n\026path_hops_endpoint_ids\030\003 \003(\0132\023.conte" + "xt.EndPointId\022+\n\017sub_service_ids\030\004 \003(\0132\022" + ".context.ServiceId\022-\n\010settings\030\005 \001(\0132\033.c" + "ontext.ConnectionSettings\"A\n\020ConnectionI" + "dList\022-\n\016connection_ids\030\001 \003(\0132\025.context." + "ConnectionId\":\n\016ConnectionList\022(\n\013connec" + "tions\030\001 \003(\0132\023.context.Connection\"^\n\017Conn" + "ectionEvent\022\035\n\005event\030\001 \001(\0132\016.context.Eve" + "nt\022,\n\rconnection_id\030\002 \001(\0132\025.context.Conn" + "ectionId\"\202\001\n\nEndPointId\022(\n\013topology_id\030\001" + " \001(\0132\023.context.TopologyId\022$\n\tdevice_id\030\002" + " \001(\0132\021.context.DeviceId\022$\n\rendpoint_uuid" + "\030\003 \001(\0132\r.context.Uuid\"\310\002\n\010EndPoint\022(\n\013en" + "dpoint_id\030\001 \001(\0132\023.context.EndPointId\022\014\n\004" + "name\030\002 \001(\t\022\025\n\rendpoint_type\030\003 \001(\t\0229\n\020kpi" + "_sample_types\030\004 \003(\0162\037.kpi_sample_types.K" + "piSampleType\022,\n\021endpoint_location\030\005 \001(\0132" + "\021.context.Location\0229\n\014capabilities\030\006 \003(\013" + "2#.context.EndPoint.CapabilitiesEntry\032I\n" + "\021CapabilitiesEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value" + "\030\002 \001(\0132\024.google.protobuf.Any:\0028\001\"{\n\014EndP" + "ointName\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022\023\n\013device_name\030\002 \001(\t\022\025\n\rendpo" + "int_name\030\003 \001(\t\022\025\n\rendpoint_type\030\004 \001(\t\";\n" + "\016EndPointIdList\022)\n\014endpoint_ids\030\001 \003(\0132\023." + "context.EndPointId\"A\n\020EndPointNameList\022-" + "\n\016endpoint_names\030\001 \003(\0132\025.context.EndPoin" + "tName\"A\n\021ConfigRule_Custom\022\024\n\014resource_k" + "ey\030\001 \001(\t\022\026\n\016resource_value\030\002 \001(\t\"]\n\016Conf" + "igRule_ACL\022(\n\013endpoint_id\030\001 \001(\0132\023.contex" + "t.EndPointId\022!\n\010rule_set\030\002 \001(\0132\017.acl.Acl" + "RuleSet\"\234\001\n\nConfigRule\022)\n\006action\030\001 \001(\0162\031" + ".context.ConfigActionEnum\022,\n\006custom\030\002 \001(" + "\0132\032.context.ConfigRule_CustomH\000\022&\n\003acl\030\003" + " \001(\0132\027.context.ConfigRule_ACLH\000B\r\n\013confi" + "g_rule\"F\n\021Constraint_Custom\022\027\n\017constrain" + "t_type\030\001 \001(\t\022\030\n\020constraint_value\030\002 \001(\t\"E" + "\n\023Constraint_Schedule\022\027\n\017start_timestamp" + "\030\001 \001(\001\022\025\n\rduration_days\030\002 \001(\002\"3\n\014GPS_Pos" + "ition\022\020\n\010latitude\030\001 \001(\002\022\021\n\tlongitude\030\002 \001" + "(\002\"\204\001\n\010Location\022\020\n\006region\030\001 \001(\tH\000\022-\n\014gps" + "_position\030\002 \001(\0132\025.context.GPS_PositionH\000" + "\022\023\n\tinterface\030\003 \001(\tH\000\022\026\n\014circuit_pack\030\004 " + "\001(\tH\000B\n\n\010location\"l\n\033Constraint_EndPoint" + "Location\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022#\n\010location\030\002 \001(\0132\021.context.L" + "ocation\"Y\n\033Constraint_EndPointPriority\022(" + "\n\013endpoint_id\030\001 \001(\0132\023.context.EndPointId" + "\022\020\n\010priority\030\002 \001(\r\"0\n\026Constraint_SLA_Lat" + "ency\022\026\n\016e2e_latency_ms\030\001 \001(\002\"0\n\027Constrai" + "nt_SLA_Capacity\022\025\n\rcapacity_gbps\030\001 \001(\002\"c" + "\n\033Constraint_SLA_Availability\022\032\n\022num_dis" + "joint_paths\030\001 \001(\r\022\022\n\nall_active\030\002 \001(\010\022\024\n" + "\014availability\030\003 \001(\002\"V\n\036Constraint_SLA_Is" + "olation_level\0224\n\017isolation_level\030\001 \003(\0162\033" + ".context.IsolationLevelEnum\"\242\001\n\025Constrai" + "nt_Exclusions\022\024\n\014is_permanent\030\001 \001(\010\022%\n\nd" + "evice_ids\030\002 \003(\0132\021.context.DeviceId\022)\n\014en" + "dpoint_ids\030\003 \003(\0132\023.context.EndPointId\022!\n" + "\010link_ids\030\004 \003(\0132\017.context.LinkId\"5\n\014QoSP" + "rofileId\022%\n\016qos_profile_id\030\001 \001(\0132\r.conte" + "xt.Uuid\"`\n\025Constraint_QoSProfile\022-\n\016qos_" + "profile_id\030\001 \001(\0132\025.context.QoSProfileId\022" + "\030\n\020qos_profile_name\030\002 \001(\t\"\222\005\n\nConstraint" + "\022-\n\006action\030\001 \001(\0162\035.context.ConstraintAct" + "ionEnum\022,\n\006custom\030\002 \001(\0132\032.context.Constr" + "aint_CustomH\000\0220\n\010schedule\030\003 \001(\0132\034.contex" + "t.Constraint_ScheduleH\000\022A\n\021endpoint_loca" + "tion\030\004 \001(\0132$.context.Constraint_EndPoint" + "LocationH\000\022A\n\021endpoint_priority\030\005 \001(\0132$." + "context.Constraint_EndPointPriorityH\000\0228\n" + "\014sla_capacity\030\006 \001(\0132 .context.Constraint" + "_SLA_CapacityH\000\0226\n\013sla_latency\030\007 \001(\0132\037.c" + "ontext.Constraint_SLA_LatencyH\000\022@\n\020sla_a" + "vailability\030\010 \001(\0132$.context.Constraint_S" + "LA_AvailabilityH\000\022@\n\rsla_isolation\030\t \001(\013" + "2\'.context.Constraint_SLA_Isolation_leve" + "lH\000\0224\n\nexclusions\030\n \001(\0132\036.context.Constr" + "aint_ExclusionsH\000\0225\n\013qos_profile\030\013 \001(\0132\036" + ".context.Constraint_QoSProfileH\000B\014\n\ncons" + "traint\"^\n\022TeraFlowController\022&\n\ncontext_" + "id\030\001 \001(\0132\022.context.ContextId\022\022\n\nip_addre" + "ss\030\002 \001(\t\022\014\n\004port\030\003 \001(\r\"U\n\024Authentication" + "Result\022&\n\ncontext_id\030\001 \001(\0132\022.context.Con" + "textId\022\025\n\rauthenticated\030\002 \001(\010\"-\n\017Optical" + "ConfigId\022\032\n\022opticalconfig_uuid\030\001 \001(\t\"y\n\r" + "OpticalConfig\0222\n\020opticalconfig_id\030\001 \001(\0132" + "\030.context.OpticalConfigId\022\016\n\006config\030\002 \001(" + "\t\022$\n\tdevice_id\030\003 \001(\0132\021.context.DeviceId\"" + "C\n\021OpticalConfigList\022.\n\016opticalconfigs\030\001" + " \003(\0132\026.context.OpticalConfig\"g\n\022OpticalC" + "onfigEvent\022\035\n\005event\030\001 \001(\0132\016.context.Even" + "t\0222\n\020opticalconfig_id\030\002 \001(\0132\030.context.Op" + "ticalConfigId\"_\n\021OpticalEndPointId\022$\n\tde" + "vice_id\030\002 \001(\0132\021.context.DeviceId\022$\n\rendp" + "oint_uuid\030\003 \001(\0132\r.context.Uuid\">\n\017Optica" + "lLinkList\022+\n\roptical_links\030\001 \003(\0132\024.conte" + "xt.OpticalLink\"\304\003\n\022OpticalLinkDetails\022\016\n" + "\006length\030\001 \001(\002\022\020\n\010src_port\030\002 \001(\t\022\020\n\010dst_p" + "ort\030\003 \001(\t\022\027\n\017local_peer_port\030\004 \001(\t\022\030\n\020re" + "mote_peer_port\030\005 \001(\t\022\014\n\004used\030\006 \001(\010\0228\n\007c_" + "slots\030\007 \003(\0132\'.context.OpticalLinkDetails" + ".CSlotsEntry\0228\n\007l_slots\030\010 \003(\0132\'.context." + "OpticalLinkDetails.LSlotsEntry\0228\n\007s_slot" + "s\030\t \003(\0132\'.context.OpticalLinkDetails.SSl" + "otsEntry\032-\n\013CSlotsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" + "value\030\002 \001(\005:\0028\001\032-\n\013LSlotsEntry\022\013\n\003key\030\001 " + "\001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\032-\n\013SSlotsEntry\022\013\n" + "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\"\243\001\n\013Optica" + "lLink\022\014\n\004name\030\001 \001(\t\0224\n\017optical_details\030\002" + " \001(\0132\033.context.OpticalLinkDetails\022 \n\007lin" + "k_id\030\003 \001(\0132\017.context.LinkId\022.\n\021link_endp" + "oint_ids\030\004 \003(\0132\023.context.EndPointId\"r\n\021S" + "erviceConfigRule\022&\n\nservice_id\030\001 \001(\0132\022.c" + "ontext.ServiceId\0225\n\021configrule_custom\030\002 " + "\001(\0132\032.context.ConfigRule_Custom*j\n\rEvent" + "TypeEnum\022\027\n\023EVENTTYPE_UNDEFINED\020\000\022\024\n\020EVE" + "NTTYPE_CREATE\020\001\022\024\n\020EVENTTYPE_UPDATE\020\002\022\024\n" + "\020EVENTTYPE_REMOVE\020\003*\351\003\n\020DeviceDriverEnum" + "\022\032\n\026DEVICEDRIVER_UNDEFINED\020\000\022\033\n\027DEVICEDR" + "IVER_OPENCONFIG\020\001\022\036\n\032DEVICEDRIVER_TRANSP" + "ORT_API\020\002\022\023\n\017DEVICEDRIVER_P4\020\003\022&\n\"DEVICE" + "DRIVER_IETF_NETWORK_TOPOLOGY\020\004\022\033\n\027DEVICE" + "DRIVER_ONF_TR_532\020\005\022\023\n\017DEVICEDRIVER_XR\020\006" + "\022\033\n\027DEVICEDRIVER_IETF_L2VPN\020\007\022 \n\034DEVICED" + "RIVER_GNMI_OPENCONFIG\020\010\022\034\n\030DEVICEDRIVER_" + "OPTICAL_TFS\020\t\022\032\n\026DEVICEDRIVER_IETF_ACTN\020" + "\n\022\023\n\017DEVICEDRIVER_OC\020\013\022\024\n\020DEVICEDRIVER_Q" + "KD\020\014\022\033\n\027DEVICEDRIVER_IETF_L3VPN\020\r\022\033\n\027DEV" + "ICEDRIVER_IETF_SLICE\020\016\022\024\n\020DEVICEDRIVER_N" + "CE\020\017\022\031\n\025DEVICEDRIVER_SMARTNIC\020\020*\217\001\n\033Devi" + "ceOperationalStatusEnum\022%\n!DEVICEOPERATI" + "ONALSTATUS_UNDEFINED\020\000\022$\n DEVICEOPERATIO" + "NALSTATUS_DISABLED\020\001\022#\n\037DEVICEOPERATIONA" + "LSTATUS_ENABLED\020\002*w\n\014LinkTypeEnum\022\024\n\020LIN" + "KTYPE_UNKNOWN\020\000\022\023\n\017LINKTYPE_COPPER\020\001\022\022\n\016" + "LINKTYPE_FIBER\020\002\022\022\n\016LINKTYPE_RADIO\020\003\022\024\n\020" + "LINKTYPE_VIRTUAL\020\004*\345\001\n\017ServiceTypeEnum\022\027" + "\n\023SERVICETYPE_UNKNOWN\020\000\022\024\n\020SERVICETYPE_L" + "3NM\020\001\022\024\n\020SERVICETYPE_L2NM\020\002\022)\n%SERVICETY" + "PE_TAPI_CONNECTIVITY_SERVICE\020\003\022\022\n\016SERVIC" + "ETYPE_TE\020\004\022\023\n\017SERVICETYPE_E2E\020\005\022$\n SERVI" + "CETYPE_OPTICAL_CONNECTIVITY\020\006\022\023\n\017SERVICE" + "TYPE_QKD\020\007*\304\001\n\021ServiceStatusEnum\022\033\n\027SERV" + "ICESTATUS_UNDEFINED\020\000\022\031\n\025SERVICESTATUS_P" + "LANNED\020\001\022\030\n\024SERVICESTATUS_ACTIVE\020\002\022\032\n\026SE" + "RVICESTATUS_UPDATING\020\003\022!\n\035SERVICESTATUS_" + "PENDING_REMOVAL\020\004\022\036\n\032SERVICESTATUS_SLA_V" + "IOLATED\020\005*\251\001\n\017SliceStatusEnum\022\031\n\025SLICEST" + "ATUS_UNDEFINED\020\000\022\027\n\023SLICESTATUS_PLANNED\020" + "\001\022\024\n\020SLICESTATUS_INIT\020\002\022\026\n\022SLICESTATUS_A" + "CTIVE\020\003\022\026\n\022SLICESTATUS_DEINIT\020\004\022\034\n\030SLICE" + "STATUS_SLA_VIOLATED\020\005*]\n\020ConfigActionEnu" + "m\022\032\n\026CONFIGACTION_UNDEFINED\020\000\022\024\n\020CONFIGA" + "CTION_SET\020\001\022\027\n\023CONFIGACTION_DELETE\020\002*m\n\024" + "ConstraintActionEnum\022\036\n\032CONSTRAINTACTION" + "_UNDEFINED\020\000\022\030\n\024CONSTRAINTACTION_SET\020\001\022\033" + "\n\027CONSTRAINTACTION_DELETE\020\002*\203\002\n\022Isolatio" + "nLevelEnum\022\020\n\014NO_ISOLATION\020\000\022\026\n\022PHYSICAL" + "_ISOLATION\020\001\022\025\n\021LOGICAL_ISOLATION\020\002\022\025\n\021P" + "ROCESS_ISOLATION\020\003\022\035\n\031PHYSICAL_MEMORY_IS" + "OLATION\020\004\022\036\n\032PHYSICAL_NETWORK_ISOLATION\020" + "\005\022\036\n\032VIRTUAL_RESOURCE_ISOLATION\020\006\022\037\n\033NET" + "WORK_FUNCTIONS_ISOLATION\020\007\022\025\n\021SERVICE_IS" + "OLATION\020\0102\202\034\n\016ContextService\022:\n\016ListCont" + "extIds\022\016.context.Empty\032\026.context.Context" + "IdList\"\000\0226\n\014ListContexts\022\016.context.Empty" + "\032\024.context.ContextList\"\000\0224\n\nGetContext\022\022" + ".context.ContextId\032\020.context.Context\"\000\0224" + "\n\nSetContext\022\020.context.Context\032\022.context" + ".ContextId\"\000\0225\n\rRemoveContext\022\022.context." + "ContextId\032\016.context.Empty\"\000\022=\n\020GetContex" + "tEvents\022\016.context.Empty\032\025.context.Contex" + "tEvent\"\0000\001\022@\n\017ListTopologyIds\022\022.context." + "ContextId\032\027.context.TopologyIdList\"\000\022=\n\016" + "ListTopologies\022\022.context.ContextId\032\025.con" + "text.TopologyList\"\000\0227\n\013GetTopology\022\023.con" + "text.TopologyId\032\021.context.Topology\"\000\022E\n\022" + "GetTopologyDetails\022\023.context.TopologyId\032" + "\030.context.TopologyDetails\"\000\0227\n\013SetTopolo" + "gy\022\021.context.Topology\032\023.context.Topology" + "Id\"\000\0227\n\016RemoveTopology\022\023.context.Topolog" + "yId\032\016.context.Empty\"\000\022?\n\021GetTopologyEven" + "ts\022\016.context.Empty\032\026.context.TopologyEve" + "nt\"\0000\001\0228\n\rListDeviceIds\022\016.context.Empty\032" + "\025.context.DeviceIdList\"\000\0224\n\013ListDevices\022" + "\016.context.Empty\032\023.context.DeviceList\"\000\0221" + "\n\tGetDevice\022\021.context.DeviceId\032\017.context" + ".Device\"\000\0221\n\tSetDevice\022\017.context.Device\032" + "\021.context.DeviceId\"\000\0223\n\014RemoveDevice\022\021.c" + "ontext.DeviceId\032\016.context.Empty\"\000\022;\n\017Get" + "DeviceEvents\022\016.context.Empty\032\024.context.D" + "eviceEvent\"\0000\001\022<\n\014SelectDevice\022\025.context" + ".DeviceFilter\032\023.context.DeviceList\"\000\022I\n\021" + "ListEndPointNames\022\027.context.EndPointIdLi" + "st\032\031.context.EndPointNameList\"\000\0224\n\013ListL" + "inkIds\022\016.context.Empty\032\023.context.LinkIdL" + "ist\"\000\0220\n\tListLinks\022\016.context.Empty\032\021.con" + "text.LinkList\"\000\022+\n\007GetLink\022\017.context.Lin" + "kId\032\r.context.Link\"\000\022+\n\007SetLink\022\r.contex" + "t.Link\032\017.context.LinkId\"\000\022/\n\nRemoveLink\022" + "\017.context.LinkId\032\016.context.Empty\"\000\0227\n\rGe" + "tLinkEvents\022\016.context.Empty\032\022.context.Li" + "nkEvent\"\0000\001\022>\n\016ListServiceIds\022\022.context." + "ContextId\032\026.context.ServiceIdList\"\000\022:\n\014L" + "istServices\022\022.context.ContextId\032\024.contex" + "t.ServiceList\"\000\0224\n\nGetService\022\022.context." + "ServiceId\032\020.context.Service\"\000\0224\n\nSetServ" + "ice\022\020.context.Service\032\022.context.ServiceI" + "d\"\000\0226\n\014UnsetService\022\020.context.Service\032\022." + "context.ServiceId\"\000\0225\n\rRemoveService\022\022.c" + "ontext.ServiceId\032\016.context.Empty\"\000\022=\n\020Ge" + "tServiceEvents\022\016.context.Empty\032\025.context" + ".ServiceEvent\"\0000\001\022?\n\rSelectService\022\026.con" + "text.ServiceFilter\032\024.context.ServiceList" + "\"\000\022:\n\014ListSliceIds\022\022.context.ContextId\032\024" + ".context.SliceIdList\"\000\0226\n\nListSlices\022\022.c" + "ontext.ContextId\032\022.context.SliceList\"\000\022." + "\n\010GetSlice\022\020.context.SliceId\032\016.context.S" + "lice\"\000\022.\n\010SetSlice\022\016.context.Slice\032\020.con" + "text.SliceId\"\000\0220\n\nUnsetSlice\022\016.context.S" + "lice\032\020.context.SliceId\"\000\0221\n\013RemoveSlice\022" + "\020.context.SliceId\032\016.context.Empty\"\000\0229\n\016G" + "etSliceEvents\022\016.context.Empty\032\023.context." + "SliceEvent\"\0000\001\0229\n\013SelectSlice\022\024.context." + "SliceFilter\032\022.context.SliceList\"\000\022D\n\021Lis" + "tConnectionIds\022\022.context.ServiceId\032\031.con" + "text.ConnectionIdList\"\000\022@\n\017ListConnectio" + "ns\022\022.context.ServiceId\032\027.context.Connect" + "ionList\"\000\022=\n\rGetConnection\022\025.context.Con" + "nectionId\032\023.context.Connection\"\000\022=\n\rSetC" + "onnection\022\023.context.Connection\032\025.context" + ".ConnectionId\"\000\022;\n\020RemoveConnection\022\025.co" + "ntext.ConnectionId\032\016.context.Empty\"\000\022C\n\023" + "GetConnectionEvents\022\016.context.Empty\032\030.co" + "ntext.ConnectionEvent\"\0000\001\022@\n\020GetOpticalC" + "onfig\022\016.context.Empty\032\032.context.OpticalC" + "onfigList\"\000\022F\n\020SetOpticalConfig\022\026.contex" + "t.OpticalConfig\032\030.context.OpticalConfigI" + "d\"\000\022I\n\023UpdateOpticalConfig\022\026.context.Opt" + "icalConfig\032\030.context.OpticalConfigId\"\000\022I" + "\n\023SelectOpticalConfig\022\030.context.OpticalC" + "onfigId\032\026.context.OpticalConfig\"\000\022A\n\023Del" + "eteOpticalConfig\022\030.context.OpticalConfig" + "Id\032\016.context.Empty\"\000\022@\n\024DeleteOpticalCha" + "nnel\022\026.context.OpticalConfig\032\016.context.E" + "mpty\"\000\0228\n\016SetOpticalLink\022\024.context.Optic" + "alLink\032\016.context.Empty\"\000\0229\n\016GetOpticalLi" + "nk\022\017.context.LinkId\032\024.context.OpticalLin" + "k\"\000\0226\n\021DeleteOpticalLink\022\017.context.LinkI" + "d\032\016.context.Empty\"\000\022@\n\022GetOpticalLinkLis" + "t\022\016.context.Empty\032\030.context.OpticalLinkL" + "ist\"\000\022G\n\027DeleteServiceConfigRule\022\032.conte" + "xt.ServiceConfigRule\032\016.context.Empty\"\000b\006" + "proto3" }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.protobuf.AnyProto.getDescriptor(), acl.Acl.getDescriptor(), kpi_sample_types.KpiSampleTypes.getDescriptor() }); internal_static_context_Empty_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_context_Empty_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Empty_descriptor, new java.lang.String[] {}); internal_static_context_Uuid_descriptor = getDescriptor().getMessageTypes().get(1); @@ -76735,9 +81163,9 @@ public final class ContextOuterClass { internal_static_context_TopologyId_descriptor = getDescriptor().getMessageTypes().get(9); internal_static_context_TopologyId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_TopologyId_descriptor, new java.lang.String[] { "ContextId", "TopologyUuid" }); internal_static_context_Topology_descriptor = getDescriptor().getMessageTypes().get(10); - internal_static_context_Topology_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Topology_descriptor, new java.lang.String[] { "TopologyId", "Name", "DeviceIds", "LinkIds" }); + internal_static_context_Topology_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Topology_descriptor, new java.lang.String[] { "TopologyId", "Name", "DeviceIds", "LinkIds", "OpticalLinkIds" }); internal_static_context_TopologyDetails_descriptor = getDescriptor().getMessageTypes().get(11); - internal_static_context_TopologyDetails_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_TopologyDetails_descriptor, new java.lang.String[] { "TopologyId", "Name", "Devices", "Links" }); + internal_static_context_TopologyDetails_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_TopologyDetails_descriptor, new java.lang.String[] { "TopologyId", "Name", "Devices", "Links", "OpticalLinks" }); internal_static_context_TopologyIdList_descriptor = getDescriptor().getMessageTypes().get(12); internal_static_context_TopologyIdList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_TopologyIdList_descriptor, new java.lang.String[] { "TopologyIds" }); internal_static_context_TopologyList_descriptor = getDescriptor().getMessageTypes().get(13); @@ -76767,7 +81195,7 @@ public final class ContextOuterClass { internal_static_context_LinkAttributes_descriptor = getDescriptor().getMessageTypes().get(24); internal_static_context_LinkAttributes_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_LinkAttributes_descriptor, new java.lang.String[] { "TotalCapacityGbps", "UsedCapacityGbps" }); internal_static_context_Link_descriptor = getDescriptor().getMessageTypes().get(25); - internal_static_context_Link_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Link_descriptor, new java.lang.String[] { "LinkId", "Name", "LinkEndpointIds", "Attributes" }); + internal_static_context_Link_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Link_descriptor, new java.lang.String[] { "LinkId", "Name", "LinkType", "LinkEndpointIds", "Attributes" }); internal_static_context_LinkIdList_descriptor = getDescriptor().getMessageTypes().get(26); internal_static_context_LinkIdList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_LinkIdList_descriptor, new java.lang.String[] { "LinkIds" }); internal_static_context_LinkList_descriptor = getDescriptor().getMessageTypes().get(27); @@ -76831,7 +81259,9 @@ public final class ContextOuterClass { internal_static_context_EndPointId_descriptor = getDescriptor().getMessageTypes().get(56); internal_static_context_EndPointId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_EndPointId_descriptor, new java.lang.String[] { "TopologyId", "DeviceId", "EndpointUuid" }); internal_static_context_EndPoint_descriptor = getDescriptor().getMessageTypes().get(57); - internal_static_context_EndPoint_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_EndPoint_descriptor, new java.lang.String[] { "EndpointId", "Name", "EndpointType", "KpiSampleTypes", "EndpointLocation" }); + internal_static_context_EndPoint_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_EndPoint_descriptor, new java.lang.String[] { "EndpointId", "Name", "EndpointType", "KpiSampleTypes", "EndpointLocation", "Capabilities" }); + internal_static_context_EndPoint_CapabilitiesEntry_descriptor = internal_static_context_EndPoint_descriptor.getNestedTypes().get(0); + internal_static_context_EndPoint_CapabilitiesEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_EndPoint_CapabilitiesEntry_descriptor, new java.lang.String[] { "Key", "Value" }); internal_static_context_EndPointName_descriptor = getDescriptor().getMessageTypes().get(58); internal_static_context_EndPointName_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_EndPointName_descriptor, new java.lang.String[] { "EndpointId", "DeviceName", "EndpointName", "EndpointType" }); internal_static_context_EndPointIdList_descriptor = getDescriptor().getMessageTypes().get(59); @@ -76851,7 +81281,7 @@ public final class ContextOuterClass { internal_static_context_GPS_Position_descriptor = getDescriptor().getMessageTypes().get(66); internal_static_context_GPS_Position_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_GPS_Position_descriptor, new java.lang.String[] { "Latitude", "Longitude" }); internal_static_context_Location_descriptor = getDescriptor().getMessageTypes().get(67); - internal_static_context_Location_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Location_descriptor, new java.lang.String[] { "Region", "GpsPosition", "Location" }); + internal_static_context_Location_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Location_descriptor, new java.lang.String[] { "Region", "GpsPosition", "Interface", "CircuitPack", "Location" }); internal_static_context_Constraint_EndPointLocation_descriptor = getDescriptor().getMessageTypes().get(68); internal_static_context_Constraint_EndPointLocation_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_EndPointLocation_descriptor, new java.lang.String[] { "EndpointId", "Location" }); internal_static_context_Constraint_EndPointPriority_descriptor = getDescriptor().getMessageTypes().get(69); @@ -76866,28 +81296,41 @@ public final class ContextOuterClass { internal_static_context_Constraint_SLA_Isolation_level_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_SLA_Isolation_level_descriptor, new java.lang.String[] { "IsolationLevel" }); internal_static_context_Constraint_Exclusions_descriptor = getDescriptor().getMessageTypes().get(74); internal_static_context_Constraint_Exclusions_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_Exclusions_descriptor, new java.lang.String[] { "IsPermanent", "DeviceIds", "EndpointIds", "LinkIds" }); - internal_static_context_Constraint_descriptor = getDescriptor().getMessageTypes().get(75); - internal_static_context_Constraint_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_descriptor, new java.lang.String[] { "Action", "Custom", "Schedule", "EndpointLocation", "EndpointPriority", "SlaCapacity", "SlaLatency", "SlaAvailability", "SlaIsolation", "Exclusions", "Constraint" }); - internal_static_context_TeraFlowController_descriptor = getDescriptor().getMessageTypes().get(76); + internal_static_context_QoSProfileId_descriptor = getDescriptor().getMessageTypes().get(75); + internal_static_context_QoSProfileId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_QoSProfileId_descriptor, new java.lang.String[] { "QosProfileId" }); + internal_static_context_Constraint_QoSProfile_descriptor = getDescriptor().getMessageTypes().get(76); + internal_static_context_Constraint_QoSProfile_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_QoSProfile_descriptor, new java.lang.String[] { "QosProfileId", "QosProfileName" }); + internal_static_context_Constraint_descriptor = getDescriptor().getMessageTypes().get(77); + internal_static_context_Constraint_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_descriptor, new java.lang.String[] { "Action", "Custom", "Schedule", "EndpointLocation", "EndpointPriority", "SlaCapacity", "SlaLatency", "SlaAvailability", "SlaIsolation", "Exclusions", "QosProfile", "Constraint" }); + internal_static_context_TeraFlowController_descriptor = getDescriptor().getMessageTypes().get(78); internal_static_context_TeraFlowController_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_TeraFlowController_descriptor, new java.lang.String[] { "ContextId", "IpAddress", "Port" }); - internal_static_context_AuthenticationResult_descriptor = getDescriptor().getMessageTypes().get(77); + internal_static_context_AuthenticationResult_descriptor = getDescriptor().getMessageTypes().get(79); internal_static_context_AuthenticationResult_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_AuthenticationResult_descriptor, new java.lang.String[] { "ContextId", "Authenticated" }); - internal_static_context_OpticalConfigId_descriptor = getDescriptor().getMessageTypes().get(78); + internal_static_context_OpticalConfigId_descriptor = getDescriptor().getMessageTypes().get(80); internal_static_context_OpticalConfigId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalConfigId_descriptor, new java.lang.String[] { "OpticalconfigUuid" }); - internal_static_context_OpticalConfig_descriptor = getDescriptor().getMessageTypes().get(79); - internal_static_context_OpticalConfig_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalConfig_descriptor, new java.lang.String[] { "OpticalconfigId", "Config" }); - internal_static_context_OpticalConfigList_descriptor = getDescriptor().getMessageTypes().get(80); + internal_static_context_OpticalConfig_descriptor = getDescriptor().getMessageTypes().get(81); + internal_static_context_OpticalConfig_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalConfig_descriptor, new java.lang.String[] { "OpticalconfigId", "Config", "DeviceId" }); + internal_static_context_OpticalConfigList_descriptor = getDescriptor().getMessageTypes().get(82); internal_static_context_OpticalConfigList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalConfigList_descriptor, new java.lang.String[] { "Opticalconfigs" }); - internal_static_context_OpticalLinkId_descriptor = getDescriptor().getMessageTypes().get(81); - internal_static_context_OpticalLinkId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkId_descriptor, new java.lang.String[] { "OpticalLinkUuid" }); - internal_static_context_FiberId_descriptor = getDescriptor().getMessageTypes().get(82); - internal_static_context_FiberId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_FiberId_descriptor, new java.lang.String[] { "FiberUuid" }); - internal_static_context_Fiber_descriptor = getDescriptor().getMessageTypes().get(83); - internal_static_context_Fiber_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Fiber_descriptor, new java.lang.String[] { "ID", "SrcPort", "DstPort", "LocalPeerPort", "RemotePeerPort", "CSlots", "LSlots", "SSlots", "Length", "Used", "FiberUuid" }); - internal_static_context_OpticalLinkDetails_descriptor = getDescriptor().getMessageTypes().get(84); - internal_static_context_OpticalLinkDetails_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkDetails_descriptor, new java.lang.String[] { "Length", "Source", "Target", "Fibers" }); - internal_static_context_OpticalLink_descriptor = getDescriptor().getMessageTypes().get(85); - internal_static_context_OpticalLink_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLink_descriptor, new java.lang.String[] { "Name", "Details", "OpticalLinkUuid" }); + internal_static_context_OpticalConfigEvent_descriptor = getDescriptor().getMessageTypes().get(83); + internal_static_context_OpticalConfigEvent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalConfigEvent_descriptor, new java.lang.String[] { "Event", "OpticalconfigId" }); + internal_static_context_OpticalEndPointId_descriptor = getDescriptor().getMessageTypes().get(84); + internal_static_context_OpticalEndPointId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalEndPointId_descriptor, new java.lang.String[] { "DeviceId", "EndpointUuid" }); + internal_static_context_OpticalLinkList_descriptor = getDescriptor().getMessageTypes().get(85); + internal_static_context_OpticalLinkList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkList_descriptor, new java.lang.String[] { "OpticalLinks" }); + internal_static_context_OpticalLinkDetails_descriptor = getDescriptor().getMessageTypes().get(86); + internal_static_context_OpticalLinkDetails_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkDetails_descriptor, new java.lang.String[] { "Length", "SrcPort", "DstPort", "LocalPeerPort", "RemotePeerPort", "Used", "CSlots", "LSlots", "SSlots" }); + internal_static_context_OpticalLinkDetails_CSlotsEntry_descriptor = internal_static_context_OpticalLinkDetails_descriptor.getNestedTypes().get(0); + internal_static_context_OpticalLinkDetails_CSlotsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkDetails_CSlotsEntry_descriptor, new java.lang.String[] { "Key", "Value" }); + internal_static_context_OpticalLinkDetails_LSlotsEntry_descriptor = internal_static_context_OpticalLinkDetails_descriptor.getNestedTypes().get(1); + internal_static_context_OpticalLinkDetails_LSlotsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkDetails_LSlotsEntry_descriptor, new java.lang.String[] { "Key", "Value" }); + internal_static_context_OpticalLinkDetails_SSlotsEntry_descriptor = internal_static_context_OpticalLinkDetails_descriptor.getNestedTypes().get(2); + internal_static_context_OpticalLinkDetails_SSlotsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkDetails_SSlotsEntry_descriptor, new java.lang.String[] { "Key", "Value" }); + internal_static_context_OpticalLink_descriptor = getDescriptor().getMessageTypes().get(87); + internal_static_context_OpticalLink_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLink_descriptor, new java.lang.String[] { "Name", "OpticalDetails", "LinkId", "LinkEndpointIds" }); + internal_static_context_ServiceConfigRule_descriptor = getDescriptor().getMessageTypes().get(88); + internal_static_context_ServiceConfigRule_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_ServiceConfigRule_descriptor, new java.lang.String[] { "ServiceId", "ConfigruleCustom" }); + com.google.protobuf.AnyProto.getDescriptor(); acl.Acl.getDescriptor(); kpi_sample_types.KpiSampleTypes.getDescriptor(); } diff --git a/src/policy/target/generated-sources/grpc/context/ContextService.java b/src/policy/target/generated-sources/grpc/context/ContextService.java index 32544e6be..d953e779f 100644 --- a/src/policy/target/generated-sources/grpc/context/ContextService.java +++ b/src/policy/target/generated-sources/grpc/context/ContextService.java @@ -98,13 +98,23 @@ public interface ContextService extends MutinyService { io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> setOpticalConfig(context.ContextOuterClass.OpticalConfig request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request); + + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request); - io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request); + + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request); + + io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request); - io.smallrye.mutiny.Uni<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request); io.smallrye.mutiny.Multi<context.ContextOuterClass.ContextEvent> getContextEvents(context.ContextOuterClass.Empty request); diff --git a/src/policy/target/generated-sources/grpc/context/ContextServiceBean.java b/src/policy/target/generated-sources/grpc/context/ContextServiceBean.java index d3c1b6285..3809f8afb 100644 --- a/src/policy/target/generated-sources/grpc/context/ContextServiceBean.java +++ b/src/policy/target/generated-sources/grpc/context/ContextServiceBean.java @@ -409,6 +409,15 @@ public class ContextServiceBean extends MutinyContextServiceGrpc.ContextServiceI } } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + try { + return delegate.updateOpticalConfig(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + @Override public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { try { @@ -418,6 +427,24 @@ public class ContextServiceBean extends MutinyContextServiceGrpc.ContextServiceI } } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + try { + return delegate.deleteOpticalConfig(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + try { + return delegate.deleteOpticalChannel(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + @Override public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request) { try { @@ -428,7 +455,7 @@ public class ContextServiceBean extends MutinyContextServiceGrpc.ContextServiceI } @Override - public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request) { try { return delegate.getOpticalLink(request); } catch (UnsupportedOperationException e) { @@ -437,9 +464,27 @@ public class ContextServiceBean extends MutinyContextServiceGrpc.ContextServiceI } @Override - public io.smallrye.mutiny.Uni<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request) { + try { + return delegate.deleteOpticalLink(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request) { + try { + return delegate.getOpticalLinkList(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { try { - return delegate.getFiber(request); + return delegate.deleteServiceConfigRule(request); } catch (UnsupportedOperationException e) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } diff --git a/src/policy/target/generated-sources/grpc/context/ContextServiceClient.java b/src/policy/target/generated-sources/grpc/context/ContextServiceClient.java index b1773578d..00e56c4f4 100644 --- a/src/policy/target/generated-sources/grpc/context/ContextServiceClient.java +++ b/src/policy/target/generated-sources/grpc/context/ContextServiceClient.java @@ -245,24 +245,49 @@ public class ContextServiceClient implements ContextService, MutinyClient<Mutiny return stub.setOpticalConfig(request); } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + return stub.updateOpticalConfig(request); + } + @Override public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { return stub.selectOpticalConfig(request); } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + return stub.deleteOpticalConfig(request); + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + return stub.deleteOpticalChannel(request); + } + @Override public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request) { return stub.setOpticalLink(request); } @Override - public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request) { return stub.getOpticalLink(request); } @Override - public io.smallrye.mutiny.Uni<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request) { - return stub.getFiber(request); + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request) { + return stub.deleteOpticalLink(request); + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request) { + return stub.getOpticalLinkList(request); + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { + return stub.deleteServiceConfigRule(request); } @Override diff --git a/src/policy/target/generated-sources/grpc/context/ContextServiceGrpc.java b/src/policy/target/generated-sources/grpc/context/ContextServiceGrpc.java index 233312dd7..73a440e7a 100644 --- a/src/policy/target/generated-sources/grpc/context/ContextServiceGrpc.java +++ b/src/policy/target/generated-sources/grpc/context/ContextServiceGrpc.java @@ -779,6 +779,21 @@ public final class ContextServiceGrpc { return getSetOpticalConfigMethod; } + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId> getUpdateOpticalConfigMethod; + + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "UpdateOpticalConfig", requestType = context.ContextOuterClass.OpticalConfig.class, responseType = context.ContextOuterClass.OpticalConfigId.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId> getUpdateOpticalConfigMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId> getUpdateOpticalConfigMethod; + if ((getUpdateOpticalConfigMethod = ContextServiceGrpc.getUpdateOpticalConfigMethod) == null) { + synchronized (ContextServiceGrpc.class) { + if ((getUpdateOpticalConfigMethod = ContextServiceGrpc.getUpdateOpticalConfigMethod) == null) { + ContextServiceGrpc.getUpdateOpticalConfigMethod = getUpdateOpticalConfigMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "UpdateOpticalConfig")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalConfig.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalConfigId.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("UpdateOpticalConfig")).build(); + } + } + } + return getUpdateOpticalConfigMethod; + } + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfig> getSelectOpticalConfigMethod; @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "SelectOpticalConfig", requestType = context.ContextOuterClass.OpticalConfigId.class, responseType = context.ContextOuterClass.OpticalConfig.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) @@ -794,6 +809,36 @@ public final class ContextServiceGrpc { return getSelectOpticalConfigMethod; } + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty> getDeleteOpticalConfigMethod; + + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "DeleteOpticalConfig", requestType = context.ContextOuterClass.OpticalConfigId.class, responseType = context.ContextOuterClass.Empty.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty> getDeleteOpticalConfigMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty> getDeleteOpticalConfigMethod; + if ((getDeleteOpticalConfigMethod = ContextServiceGrpc.getDeleteOpticalConfigMethod) == null) { + synchronized (ContextServiceGrpc.class) { + if ((getDeleteOpticalConfigMethod = ContextServiceGrpc.getDeleteOpticalConfigMethod) == null) { + ContextServiceGrpc.getDeleteOpticalConfigMethod = getDeleteOpticalConfigMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteOpticalConfig")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalConfigId.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Empty.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("DeleteOpticalConfig")).build(); + } + } + } + return getDeleteOpticalConfigMethod; + } + + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty> getDeleteOpticalChannelMethod; + + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "DeleteOpticalChannel", requestType = context.ContextOuterClass.OpticalConfig.class, responseType = context.ContextOuterClass.Empty.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty> getDeleteOpticalChannelMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty> getDeleteOpticalChannelMethod; + if ((getDeleteOpticalChannelMethod = ContextServiceGrpc.getDeleteOpticalChannelMethod) == null) { + synchronized (ContextServiceGrpc.class) { + if ((getDeleteOpticalChannelMethod = ContextServiceGrpc.getDeleteOpticalChannelMethod) == null) { + ContextServiceGrpc.getDeleteOpticalChannelMethod = getDeleteOpticalChannelMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteOpticalChannel")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalConfig.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Empty.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("DeleteOpticalChannel")).build(); + } + } + } + return getDeleteOpticalChannelMethod; + } + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.Empty> getSetOpticalLinkMethod; @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "SetOpticalLink", requestType = context.ContextOuterClass.OpticalLink.class, responseType = context.ContextOuterClass.Empty.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) @@ -809,34 +854,64 @@ public final class ContextServiceGrpc { return getSetOpticalLinkMethod; } - private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod; + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod; - @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "GetOpticalLink", requestType = context.ContextOuterClass.OpticalLinkId.class, responseType = context.ContextOuterClass.OpticalLink.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) - public static io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod() { - io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod; + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "GetOpticalLink", requestType = context.ContextOuterClass.LinkId.class, responseType = context.ContextOuterClass.OpticalLink.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod; if ((getGetOpticalLinkMethod = ContextServiceGrpc.getGetOpticalLinkMethod) == null) { synchronized (ContextServiceGrpc.class) { if ((getGetOpticalLinkMethod = ContextServiceGrpc.getGetOpticalLinkMethod) == null) { - ContextServiceGrpc.getGetOpticalLinkMethod = getGetOpticalLinkMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetOpticalLink")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalLinkId.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalLink.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("GetOpticalLink")).build(); + ContextServiceGrpc.getGetOpticalLinkMethod = getGetOpticalLinkMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetOpticalLink")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.LinkId.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalLink.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("GetOpticalLink")).build(); } } } return getGetOpticalLinkMethod; } - private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber> getGetFiberMethod; + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty> getDeleteOpticalLinkMethod; + + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "DeleteOpticalLink", requestType = context.ContextOuterClass.LinkId.class, responseType = context.ContextOuterClass.Empty.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty> getDeleteOpticalLinkMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty> getDeleteOpticalLinkMethod; + if ((getDeleteOpticalLinkMethod = ContextServiceGrpc.getDeleteOpticalLinkMethod) == null) { + synchronized (ContextServiceGrpc.class) { + if ((getDeleteOpticalLinkMethod = ContextServiceGrpc.getDeleteOpticalLinkMethod) == null) { + ContextServiceGrpc.getDeleteOpticalLinkMethod = getDeleteOpticalLinkMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteOpticalLink")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.LinkId.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Empty.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("DeleteOpticalLink")).build(); + } + } + } + return getDeleteOpticalLinkMethod; + } + + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList> getGetOpticalLinkListMethod; - @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "GetFiber", requestType = context.ContextOuterClass.FiberId.class, responseType = context.ContextOuterClass.Fiber.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) - public static io.grpc.MethodDescriptor<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber> getGetFiberMethod() { - io.grpc.MethodDescriptor<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber> getGetFiberMethod; - if ((getGetFiberMethod = ContextServiceGrpc.getGetFiberMethod) == null) { + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "GetOpticalLinkList", requestType = context.ContextOuterClass.Empty.class, responseType = context.ContextOuterClass.OpticalLinkList.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList> getGetOpticalLinkListMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList> getGetOpticalLinkListMethod; + if ((getGetOpticalLinkListMethod = ContextServiceGrpc.getGetOpticalLinkListMethod) == null) { synchronized (ContextServiceGrpc.class) { - if ((getGetFiberMethod = ContextServiceGrpc.getGetFiberMethod) == null) { - ContextServiceGrpc.getGetFiberMethod = getGetFiberMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetFiber")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.FiberId.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Fiber.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("GetFiber")).build(); + if ((getGetOpticalLinkListMethod = ContextServiceGrpc.getGetOpticalLinkListMethod) == null) { + ContextServiceGrpc.getGetOpticalLinkListMethod = getGetOpticalLinkListMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetOpticalLinkList")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Empty.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalLinkList.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("GetOpticalLinkList")).build(); } } } - return getGetFiberMethod; + return getGetOpticalLinkListMethod; + } + + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty> getDeleteServiceConfigRuleMethod; + + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "DeleteServiceConfigRule", requestType = context.ContextOuterClass.ServiceConfigRule.class, responseType = context.ContextOuterClass.Empty.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty> getDeleteServiceConfigRuleMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty> getDeleteServiceConfigRuleMethod; + if ((getDeleteServiceConfigRuleMethod = ContextServiceGrpc.getDeleteServiceConfigRuleMethod) == null) { + synchronized (ContextServiceGrpc.class) { + if ((getDeleteServiceConfigRuleMethod = ContextServiceGrpc.getDeleteServiceConfigRuleMethod) == null) { + ContextServiceGrpc.getDeleteServiceConfigRuleMethod = getDeleteServiceConfigRuleMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteServiceConfigRule")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.ServiceConfigRule.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Empty.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("DeleteServiceConfigRule")).build(); + } + } + } + return getDeleteServiceConfigRuleMethod; } /** @@ -1194,12 +1269,30 @@ public final class ContextServiceGrpc { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetOpticalConfigMethod(), responseObserver); } + /** + */ + default void updateOpticalConfig(context.ContextOuterClass.OpticalConfig request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUpdateOpticalConfigMethod(), responseObserver); + } + /** */ default void selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfig> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSelectOpticalConfigMethod(), responseObserver); } + /** + */ + default void deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteOpticalConfigMethod(), responseObserver); + } + + /** + */ + default void deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteOpticalChannelMethod(), responseObserver); + } + /** */ default void setOpticalLink(context.ContextOuterClass.OpticalLink request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { @@ -1208,14 +1301,26 @@ public final class ContextServiceGrpc { /** */ - default void getOpticalLink(context.ContextOuterClass.OpticalLinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink> responseObserver) { + default void getOpticalLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetOpticalLinkMethod(), responseObserver); } /** */ - default void getFiber(context.ContextOuterClass.FiberId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Fiber> responseObserver) { - io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetFiberMethod(), responseObserver); + default void deleteOpticalLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteOpticalLinkMethod(), responseObserver); + } + + /** + */ + default void getOpticalLinkList(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLinkList> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetOpticalLinkListMethod(), responseObserver); + } + + /** + */ + default void deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteServiceConfigRuleMethod(), responseObserver); } } @@ -1553,12 +1658,30 @@ public final class ContextServiceGrpc { io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getSetOpticalConfigMethod(), getCallOptions()), request, responseObserver); } + /** + */ + public void updateOpticalConfig(context.ContextOuterClass.OpticalConfig request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getUpdateOpticalConfigMethod(), getCallOptions()), request, responseObserver); + } + /** */ public void selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfig> responseObserver) { io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getSelectOpticalConfigMethod(), getCallOptions()), request, responseObserver); } + /** + */ + public void deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getDeleteOpticalConfigMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getDeleteOpticalChannelMethod(), getCallOptions()), request, responseObserver); + } + /** */ public void setOpticalLink(context.ContextOuterClass.OpticalLink request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { @@ -1567,14 +1690,26 @@ public final class ContextServiceGrpc { /** */ - public void getOpticalLink(context.ContextOuterClass.OpticalLinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink> responseObserver) { + public void getOpticalLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink> responseObserver) { io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getGetOpticalLinkMethod(), getCallOptions()), request, responseObserver); } /** */ - public void getFiber(context.ContextOuterClass.FiberId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Fiber> responseObserver) { - io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getGetFiberMethod(), getCallOptions()), request, responseObserver); + public void deleteOpticalLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getDeleteOpticalLinkMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void getOpticalLinkList(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLinkList> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getGetOpticalLinkListMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getDeleteServiceConfigRuleMethod(), getCallOptions()), request, responseObserver); } } @@ -1901,12 +2036,30 @@ public final class ContextServiceGrpc { return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getSetOpticalConfigMethod(), getCallOptions(), request); } + /** + */ + public context.ContextOuterClass.OpticalConfigId updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getUpdateOpticalConfigMethod(), getCallOptions(), request); + } + /** */ public context.ContextOuterClass.OpticalConfig selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getSelectOpticalConfigMethod(), getCallOptions(), request); } + /** + */ + public context.ContextOuterClass.Empty deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getDeleteOpticalConfigMethod(), getCallOptions(), request); + } + + /** + */ + public context.ContextOuterClass.Empty deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getDeleteOpticalChannelMethod(), getCallOptions(), request); + } + /** */ public context.ContextOuterClass.Empty setOpticalLink(context.ContextOuterClass.OpticalLink request) { @@ -1915,14 +2068,26 @@ public final class ContextServiceGrpc { /** */ - public context.ContextOuterClass.OpticalLink getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public context.ContextOuterClass.OpticalLink getOpticalLink(context.ContextOuterClass.LinkId request) { return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getGetOpticalLinkMethod(), getCallOptions(), request); } /** */ - public context.ContextOuterClass.Fiber getFiber(context.ContextOuterClass.FiberId request) { - return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getGetFiberMethod(), getCallOptions(), request); + public context.ContextOuterClass.Empty deleteOpticalLink(context.ContextOuterClass.LinkId request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getDeleteOpticalLinkMethod(), getCallOptions(), request); + } + + /** + */ + public context.ContextOuterClass.OpticalLinkList getOpticalLinkList(context.ContextOuterClass.Empty request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getGetOpticalLinkListMethod(), getCallOptions(), request); + } + + /** + */ + public context.ContextOuterClass.Empty deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getDeleteServiceConfigRuleMethod(), getCallOptions(), request); } } @@ -2207,12 +2372,30 @@ public final class ContextServiceGrpc { return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getSetOpticalConfigMethod(), getCallOptions()), request); } + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getUpdateOpticalConfigMethod(), getCallOptions()), request); + } + /** */ public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getSelectOpticalConfigMethod(), getCallOptions()), request); } + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getDeleteOpticalConfigMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getDeleteOpticalChannelMethod(), getCallOptions()), request); + } + /** */ public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request) { @@ -2221,14 +2404,26 @@ public final class ContextServiceGrpc { /** */ - public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request) { return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getGetOpticalLinkMethod(), getCallOptions()), request); } /** */ - public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request) { - return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getGetFiberMethod(), getCallOptions()), request); + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getDeleteOpticalLinkMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getGetOpticalLinkListMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getDeleteServiceConfigRuleMethod(), getCallOptions()), request); } } @@ -2334,13 +2529,23 @@ public final class ContextServiceGrpc { private static final int METHODID_SET_OPTICAL_CONFIG = 50; - private static final int METHODID_SELECT_OPTICAL_CONFIG = 51; + private static final int METHODID_UPDATE_OPTICAL_CONFIG = 51; + + private static final int METHODID_SELECT_OPTICAL_CONFIG = 52; + + private static final int METHODID_DELETE_OPTICAL_CONFIG = 53; + + private static final int METHODID_DELETE_OPTICAL_CHANNEL = 54; - private static final int METHODID_SET_OPTICAL_LINK = 52; + private static final int METHODID_SET_OPTICAL_LINK = 55; - private static final int METHODID_GET_OPTICAL_LINK = 53; + private static final int METHODID_GET_OPTICAL_LINK = 56; - private static final int METHODID_GET_FIBER = 54; + private static final int METHODID_DELETE_OPTICAL_LINK = 57; + + private static final int METHODID_GET_OPTICAL_LINK_LIST = 58; + + private static final int METHODID_DELETE_SERVICE_CONFIG_RULE = 59; private static final class MethodHandlers<Req, Resp> implements io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>, io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>, io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>, io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> { @@ -2510,17 +2715,32 @@ public final class ContextServiceGrpc { case METHODID_SET_OPTICAL_CONFIG: serviceImpl.setOpticalConfig((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId>) responseObserver); break; + case METHODID_UPDATE_OPTICAL_CONFIG: + serviceImpl.updateOpticalConfig((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId>) responseObserver); + break; case METHODID_SELECT_OPTICAL_CONFIG: serviceImpl.selectOpticalConfig((context.ContextOuterClass.OpticalConfigId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfig>) responseObserver); break; + case METHODID_DELETE_OPTICAL_CONFIG: + serviceImpl.deleteOpticalConfig((context.ContextOuterClass.OpticalConfigId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); + break; + case METHODID_DELETE_OPTICAL_CHANNEL: + serviceImpl.deleteOpticalChannel((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); + break; case METHODID_SET_OPTICAL_LINK: serviceImpl.setOpticalLink((context.ContextOuterClass.OpticalLink) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); break; case METHODID_GET_OPTICAL_LINK: - serviceImpl.getOpticalLink((context.ContextOuterClass.OpticalLinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink>) responseObserver); + serviceImpl.getOpticalLink((context.ContextOuterClass.LinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink>) responseObserver); + break; + case METHODID_DELETE_OPTICAL_LINK: + serviceImpl.deleteOpticalLink((context.ContextOuterClass.LinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); + break; + case METHODID_GET_OPTICAL_LINK_LIST: + serviceImpl.getOpticalLinkList((context.ContextOuterClass.Empty) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLinkList>) responseObserver); break; - case METHODID_GET_FIBER: - serviceImpl.getFiber((context.ContextOuterClass.FiberId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Fiber>) responseObserver); + case METHODID_DELETE_SERVICE_CONFIG_RULE: + serviceImpl.deleteServiceConfigRule((context.ContextOuterClass.ServiceConfigRule) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); break; default: throw new AssertionError(); @@ -2538,7 +2758,7 @@ public final class ContextServiceGrpc { } public static io.grpc.ServerServiceDefinition bindService(AsyncService service) { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()).addMethod(getListContextIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextIdList>(service, METHODID_LIST_CONTEXT_IDS))).addMethod(getListContextsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextList>(service, METHODID_LIST_CONTEXTS))).addMethod(getGetContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Context>(service, METHODID_GET_CONTEXT))).addMethod(getSetContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Context, context.ContextOuterClass.ContextId>(service, METHODID_SET_CONTEXT))).addMethod(getRemoveContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_CONTEXT))).addMethod(getGetContextEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextEvent>(service, METHODID_GET_CONTEXT_EVENTS))).addMethod(getListTopologyIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyIdList>(service, METHODID_LIST_TOPOLOGY_IDS))).addMethod(getListTopologiesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyList>(service, METHODID_LIST_TOPOLOGIES))).addMethod(getGetTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Topology>(service, METHODID_GET_TOPOLOGY))).addMethod(getGetTopologyDetailsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyDetails>(service, METHODID_GET_TOPOLOGY_DETAILS))).addMethod(getSetTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Topology, context.ContextOuterClass.TopologyId>(service, METHODID_SET_TOPOLOGY))).addMethod(getRemoveTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_TOPOLOGY))).addMethod(getGetTopologyEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.TopologyEvent>(service, METHODID_GET_TOPOLOGY_EVENTS))).addMethod(getListDeviceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceIdList>(service, METHODID_LIST_DEVICE_IDS))).addMethod(getListDevicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceList>(service, METHODID_LIST_DEVICES))).addMethod(getGetDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Device>(service, METHODID_GET_DEVICE))).addMethod(getSetDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(service, METHODID_SET_DEVICE))).addMethod(getRemoveDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_DEVICE))).addMethod(getGetDeviceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceEvent>(service, METHODID_GET_DEVICE_EVENTS))).addMethod(getSelectDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceFilter, context.ContextOuterClass.DeviceList>(service, METHODID_SELECT_DEVICE))).addMethod(getListEndPointNamesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.EndPointIdList, context.ContextOuterClass.EndPointNameList>(service, METHODID_LIST_END_POINT_NAMES))).addMethod(getListLinkIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkIdList>(service, METHODID_LIST_LINK_IDS))).addMethod(getListLinksMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkList>(service, METHODID_LIST_LINKS))).addMethod(getGetLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Link>(service, METHODID_GET_LINK))).addMethod(getSetLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Link, context.ContextOuterClass.LinkId>(service, METHODID_SET_LINK))).addMethod(getRemoveLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_LINK))).addMethod(getGetLinkEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkEvent>(service, METHODID_GET_LINK_EVENTS))).addMethod(getListServiceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceIdList>(service, METHODID_LIST_SERVICE_IDS))).addMethod(getListServicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceList>(service, METHODID_LIST_SERVICES))).addMethod(getGetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Service>(service, METHODID_GET_SERVICE))).addMethod(getSetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(service, METHODID_SET_SERVICE))).addMethod(getUnsetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(service, METHODID_UNSET_SERVICE))).addMethod(getRemoveServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_SERVICE))).addMethod(getGetServiceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ServiceEvent>(service, METHODID_GET_SERVICE_EVENTS))).addMethod(getSelectServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceFilter, context.ContextOuterClass.ServiceList>(service, METHODID_SELECT_SERVICE))).addMethod(getListSliceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceIdList>(service, METHODID_LIST_SLICE_IDS))).addMethod(getListSlicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceList>(service, METHODID_LIST_SLICES))).addMethod(getGetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Slice>(service, METHODID_GET_SLICE))).addMethod(getSetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(service, METHODID_SET_SLICE))).addMethod(getUnsetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(service, METHODID_UNSET_SLICE))).addMethod(getRemoveSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_SLICE))).addMethod(getGetSliceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.SliceEvent>(service, METHODID_GET_SLICE_EVENTS))).addMethod(getSelectSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceFilter, context.ContextOuterClass.SliceList>(service, METHODID_SELECT_SLICE))).addMethod(getListConnectionIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionIdList>(service, METHODID_LIST_CONNECTION_IDS))).addMethod(getListConnectionsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionList>(service, METHODID_LIST_CONNECTIONS))).addMethod(getGetConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Connection>(service, METHODID_GET_CONNECTION))).addMethod(getSetConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Connection, context.ContextOuterClass.ConnectionId>(service, METHODID_SET_CONNECTION))).addMethod(getRemoveConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_CONNECTION))).addMethod(getGetConnectionEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ConnectionEvent>(service, METHODID_GET_CONNECTION_EVENTS))).addMethod(getGetOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalConfigList>(service, METHODID_GET_OPTICAL_CONFIG))).addMethod(getSetOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(service, METHODID_SET_OPTICAL_CONFIG))).addMethod(getSelectOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfig>(service, METHODID_SELECT_OPTICAL_CONFIG))).addMethod(getSetOpticalLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.Empty>(service, METHODID_SET_OPTICAL_LINK))).addMethod(getGetOpticalLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink>(service, METHODID_GET_OPTICAL_LINK))).addMethod(getGetFiberMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber>(service, METHODID_GET_FIBER))).build(); + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()).addMethod(getListContextIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextIdList>(service, METHODID_LIST_CONTEXT_IDS))).addMethod(getListContextsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextList>(service, METHODID_LIST_CONTEXTS))).addMethod(getGetContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Context>(service, METHODID_GET_CONTEXT))).addMethod(getSetContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Context, context.ContextOuterClass.ContextId>(service, METHODID_SET_CONTEXT))).addMethod(getRemoveContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_CONTEXT))).addMethod(getGetContextEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextEvent>(service, METHODID_GET_CONTEXT_EVENTS))).addMethod(getListTopologyIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyIdList>(service, METHODID_LIST_TOPOLOGY_IDS))).addMethod(getListTopologiesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyList>(service, METHODID_LIST_TOPOLOGIES))).addMethod(getGetTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Topology>(service, METHODID_GET_TOPOLOGY))).addMethod(getGetTopologyDetailsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyDetails>(service, METHODID_GET_TOPOLOGY_DETAILS))).addMethod(getSetTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Topology, context.ContextOuterClass.TopologyId>(service, METHODID_SET_TOPOLOGY))).addMethod(getRemoveTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_TOPOLOGY))).addMethod(getGetTopologyEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.TopologyEvent>(service, METHODID_GET_TOPOLOGY_EVENTS))).addMethod(getListDeviceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceIdList>(service, METHODID_LIST_DEVICE_IDS))).addMethod(getListDevicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceList>(service, METHODID_LIST_DEVICES))).addMethod(getGetDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Device>(service, METHODID_GET_DEVICE))).addMethod(getSetDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(service, METHODID_SET_DEVICE))).addMethod(getRemoveDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_DEVICE))).addMethod(getGetDeviceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceEvent>(service, METHODID_GET_DEVICE_EVENTS))).addMethod(getSelectDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceFilter, context.ContextOuterClass.DeviceList>(service, METHODID_SELECT_DEVICE))).addMethod(getListEndPointNamesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.EndPointIdList, context.ContextOuterClass.EndPointNameList>(service, METHODID_LIST_END_POINT_NAMES))).addMethod(getListLinkIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkIdList>(service, METHODID_LIST_LINK_IDS))).addMethod(getListLinksMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkList>(service, METHODID_LIST_LINKS))).addMethod(getGetLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Link>(service, METHODID_GET_LINK))).addMethod(getSetLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Link, context.ContextOuterClass.LinkId>(service, METHODID_SET_LINK))).addMethod(getRemoveLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_LINK))).addMethod(getGetLinkEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkEvent>(service, METHODID_GET_LINK_EVENTS))).addMethod(getListServiceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceIdList>(service, METHODID_LIST_SERVICE_IDS))).addMethod(getListServicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceList>(service, METHODID_LIST_SERVICES))).addMethod(getGetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Service>(service, METHODID_GET_SERVICE))).addMethod(getSetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(service, METHODID_SET_SERVICE))).addMethod(getUnsetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(service, METHODID_UNSET_SERVICE))).addMethod(getRemoveServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_SERVICE))).addMethod(getGetServiceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ServiceEvent>(service, METHODID_GET_SERVICE_EVENTS))).addMethod(getSelectServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceFilter, context.ContextOuterClass.ServiceList>(service, METHODID_SELECT_SERVICE))).addMethod(getListSliceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceIdList>(service, METHODID_LIST_SLICE_IDS))).addMethod(getListSlicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceList>(service, METHODID_LIST_SLICES))).addMethod(getGetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Slice>(service, METHODID_GET_SLICE))).addMethod(getSetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(service, METHODID_SET_SLICE))).addMethod(getUnsetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(service, METHODID_UNSET_SLICE))).addMethod(getRemoveSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_SLICE))).addMethod(getGetSliceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.SliceEvent>(service, METHODID_GET_SLICE_EVENTS))).addMethod(getSelectSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceFilter, context.ContextOuterClass.SliceList>(service, METHODID_SELECT_SLICE))).addMethod(getListConnectionIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionIdList>(service, METHODID_LIST_CONNECTION_IDS))).addMethod(getListConnectionsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionList>(service, METHODID_LIST_CONNECTIONS))).addMethod(getGetConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Connection>(service, METHODID_GET_CONNECTION))).addMethod(getSetConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Connection, context.ContextOuterClass.ConnectionId>(service, METHODID_SET_CONNECTION))).addMethod(getRemoveConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_CONNECTION))).addMethod(getGetConnectionEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ConnectionEvent>(service, METHODID_GET_CONNECTION_EVENTS))).addMethod(getGetOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalConfigList>(service, METHODID_GET_OPTICAL_CONFIG))).addMethod(getSetOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(service, METHODID_SET_OPTICAL_CONFIG))).addMethod(getUpdateOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(service, METHODID_UPDATE_OPTICAL_CONFIG))).addMethod(getSelectOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfig>(service, METHODID_SELECT_OPTICAL_CONFIG))).addMethod(getDeleteOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty>(service, METHODID_DELETE_OPTICAL_CONFIG))).addMethod(getDeleteOpticalChannelMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty>(service, METHODID_DELETE_OPTICAL_CHANNEL))).addMethod(getSetOpticalLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.Empty>(service, METHODID_SET_OPTICAL_LINK))).addMethod(getGetOpticalLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink>(service, METHODID_GET_OPTICAL_LINK))).addMethod(getDeleteOpticalLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(service, METHODID_DELETE_OPTICAL_LINK))).addMethod(getGetOpticalLinkListMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList>(service, METHODID_GET_OPTICAL_LINK_LIST))).addMethod(getDeleteServiceConfigRuleMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty>(service, METHODID_DELETE_SERVICE_CONFIG_RULE))).build(); } private static abstract class ContextServiceBaseDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { @@ -2585,7 +2805,7 @@ public final class ContextServiceGrpc { synchronized (ContextServiceGrpc.class) { result = serviceDescriptor; if (result == null) { - serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME).setSchemaDescriptor(new ContextServiceFileDescriptorSupplier()).addMethod(getListContextIdsMethod()).addMethod(getListContextsMethod()).addMethod(getGetContextMethod()).addMethod(getSetContextMethod()).addMethod(getRemoveContextMethod()).addMethod(getGetContextEventsMethod()).addMethod(getListTopologyIdsMethod()).addMethod(getListTopologiesMethod()).addMethod(getGetTopologyMethod()).addMethod(getGetTopologyDetailsMethod()).addMethod(getSetTopologyMethod()).addMethod(getRemoveTopologyMethod()).addMethod(getGetTopologyEventsMethod()).addMethod(getListDeviceIdsMethod()).addMethod(getListDevicesMethod()).addMethod(getGetDeviceMethod()).addMethod(getSetDeviceMethod()).addMethod(getRemoveDeviceMethod()).addMethod(getGetDeviceEventsMethod()).addMethod(getSelectDeviceMethod()).addMethod(getListEndPointNamesMethod()).addMethod(getListLinkIdsMethod()).addMethod(getListLinksMethod()).addMethod(getGetLinkMethod()).addMethod(getSetLinkMethod()).addMethod(getRemoveLinkMethod()).addMethod(getGetLinkEventsMethod()).addMethod(getListServiceIdsMethod()).addMethod(getListServicesMethod()).addMethod(getGetServiceMethod()).addMethod(getSetServiceMethod()).addMethod(getUnsetServiceMethod()).addMethod(getRemoveServiceMethod()).addMethod(getGetServiceEventsMethod()).addMethod(getSelectServiceMethod()).addMethod(getListSliceIdsMethod()).addMethod(getListSlicesMethod()).addMethod(getGetSliceMethod()).addMethod(getSetSliceMethod()).addMethod(getUnsetSliceMethod()).addMethod(getRemoveSliceMethod()).addMethod(getGetSliceEventsMethod()).addMethod(getSelectSliceMethod()).addMethod(getListConnectionIdsMethod()).addMethod(getListConnectionsMethod()).addMethod(getGetConnectionMethod()).addMethod(getSetConnectionMethod()).addMethod(getRemoveConnectionMethod()).addMethod(getGetConnectionEventsMethod()).addMethod(getGetOpticalConfigMethod()).addMethod(getSetOpticalConfigMethod()).addMethod(getSelectOpticalConfigMethod()).addMethod(getSetOpticalLinkMethod()).addMethod(getGetOpticalLinkMethod()).addMethod(getGetFiberMethod()).build(); + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME).setSchemaDescriptor(new ContextServiceFileDescriptorSupplier()).addMethod(getListContextIdsMethod()).addMethod(getListContextsMethod()).addMethod(getGetContextMethod()).addMethod(getSetContextMethod()).addMethod(getRemoveContextMethod()).addMethod(getGetContextEventsMethod()).addMethod(getListTopologyIdsMethod()).addMethod(getListTopologiesMethod()).addMethod(getGetTopologyMethod()).addMethod(getGetTopologyDetailsMethod()).addMethod(getSetTopologyMethod()).addMethod(getRemoveTopologyMethod()).addMethod(getGetTopologyEventsMethod()).addMethod(getListDeviceIdsMethod()).addMethod(getListDevicesMethod()).addMethod(getGetDeviceMethod()).addMethod(getSetDeviceMethod()).addMethod(getRemoveDeviceMethod()).addMethod(getGetDeviceEventsMethod()).addMethod(getSelectDeviceMethod()).addMethod(getListEndPointNamesMethod()).addMethod(getListLinkIdsMethod()).addMethod(getListLinksMethod()).addMethod(getGetLinkMethod()).addMethod(getSetLinkMethod()).addMethod(getRemoveLinkMethod()).addMethod(getGetLinkEventsMethod()).addMethod(getListServiceIdsMethod()).addMethod(getListServicesMethod()).addMethod(getGetServiceMethod()).addMethod(getSetServiceMethod()).addMethod(getUnsetServiceMethod()).addMethod(getRemoveServiceMethod()).addMethod(getGetServiceEventsMethod()).addMethod(getSelectServiceMethod()).addMethod(getListSliceIdsMethod()).addMethod(getListSlicesMethod()).addMethod(getGetSliceMethod()).addMethod(getSetSliceMethod()).addMethod(getUnsetSliceMethod()).addMethod(getRemoveSliceMethod()).addMethod(getGetSliceEventsMethod()).addMethod(getSelectSliceMethod()).addMethod(getListConnectionIdsMethod()).addMethod(getListConnectionsMethod()).addMethod(getGetConnectionMethod()).addMethod(getSetConnectionMethod()).addMethod(getRemoveConnectionMethod()).addMethod(getGetConnectionEventsMethod()).addMethod(getGetOpticalConfigMethod()).addMethod(getSetOpticalConfigMethod()).addMethod(getUpdateOpticalConfigMethod()).addMethod(getSelectOpticalConfigMethod()).addMethod(getDeleteOpticalConfigMethod()).addMethod(getDeleteOpticalChannelMethod()).addMethod(getSetOpticalLinkMethod()).addMethod(getGetOpticalLinkMethod()).addMethod(getDeleteOpticalLinkMethod()).addMethod(getGetOpticalLinkListMethod()).addMethod(getDeleteServiceConfigRuleMethod()).build(); } } } diff --git a/src/policy/target/generated-sources/grpc/context/MutinyContextServiceGrpc.java b/src/policy/target/generated-sources/grpc/context/MutinyContextServiceGrpc.java index c6dbb1e92..b97952a61 100644 --- a/src/policy/target/generated-sources/grpc/context/MutinyContextServiceGrpc.java +++ b/src/policy/target/generated-sources/grpc/context/MutinyContextServiceGrpc.java @@ -216,20 +216,40 @@ public final class MutinyContextServiceGrpc implements io.quarkus.grpc.MutinyGrp return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::setOpticalConfig); } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::updateOpticalConfig); + } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::selectOpticalConfig); } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::deleteOpticalConfig); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::deleteOpticalChannel); + } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request) { return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::setOpticalLink); } - public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request) { return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::getOpticalLink); } - public io.smallrye.mutiny.Uni<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request) { - return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::getFiber); + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::deleteOpticalLink); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::getOpticalLinkList); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::deleteServiceConfigRule); } public io.smallrye.mutiny.Multi<context.ContextOuterClass.ContextEvent> getContextEvents(context.ContextOuterClass.Empty request) { @@ -456,19 +476,39 @@ public final class MutinyContextServiceGrpc implements io.quarkus.grpc.MutinyGrp throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } - public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } - public io.smallrye.mutiny.Uni<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } @@ -502,7 +542,7 @@ public final class MutinyContextServiceGrpc implements io.quarkus.grpc.MutinyGrp @java.lang.Override public io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()).addMethod(context.ContextServiceGrpc.getListContextIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextIdList>(this, METHODID_LIST_CONTEXT_IDS, compression))).addMethod(context.ContextServiceGrpc.getListContextsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextList>(this, METHODID_LIST_CONTEXTS, compression))).addMethod(context.ContextServiceGrpc.getGetContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Context>(this, METHODID_GET_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getSetContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Context, context.ContextOuterClass.ContextId>(this, METHODID_SET_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getRemoveContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getGetContextEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextEvent>(this, METHODID_GET_CONTEXT_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListTopologyIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyIdList>(this, METHODID_LIST_TOPOLOGY_IDS, compression))).addMethod(context.ContextServiceGrpc.getListTopologiesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyList>(this, METHODID_LIST_TOPOLOGIES, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Topology>(this, METHODID_GET_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyDetailsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyDetails>(this, METHODID_GET_TOPOLOGY_DETAILS, compression))).addMethod(context.ContextServiceGrpc.getSetTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Topology, context.ContextOuterClass.TopologyId>(this, METHODID_SET_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getRemoveTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.TopologyEvent>(this, METHODID_GET_TOPOLOGY_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListDeviceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceIdList>(this, METHODID_LIST_DEVICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListDevicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceList>(this, METHODID_LIST_DEVICES, compression))).addMethod(context.ContextServiceGrpc.getGetDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Device>(this, METHODID_GET_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getSetDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(this, METHODID_SET_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getGetDeviceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceEvent>(this, METHODID_GET_DEVICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceFilter, context.ContextOuterClass.DeviceList>(this, METHODID_SELECT_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getListEndPointNamesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.EndPointIdList, context.ContextOuterClass.EndPointNameList>(this, METHODID_LIST_END_POINT_NAMES, compression))).addMethod(context.ContextServiceGrpc.getListLinkIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkIdList>(this, METHODID_LIST_LINK_IDS, compression))).addMethod(context.ContextServiceGrpc.getListLinksMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkList>(this, METHODID_LIST_LINKS, compression))).addMethod(context.ContextServiceGrpc.getGetLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Link>(this, METHODID_GET_LINK, compression))).addMethod(context.ContextServiceGrpc.getSetLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Link, context.ContextOuterClass.LinkId>(this, METHODID_SET_LINK, compression))).addMethod(context.ContextServiceGrpc.getRemoveLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetLinkEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkEvent>(this, METHODID_GET_LINK_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListServiceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceIdList>(this, METHODID_LIST_SERVICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListServicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceList>(this, METHODID_LIST_SERVICES, compression))).addMethod(context.ContextServiceGrpc.getGetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Service>(this, METHODID_GET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getSetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(this, METHODID_SET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getUnsetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(this, METHODID_UNSET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getGetServiceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ServiceEvent>(this, METHODID_GET_SERVICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceFilter, context.ContextOuterClass.ServiceList>(this, METHODID_SELECT_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getListSliceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceIdList>(this, METHODID_LIST_SLICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListSlicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceList>(this, METHODID_LIST_SLICES, compression))).addMethod(context.ContextServiceGrpc.getGetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Slice>(this, METHODID_GET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getSetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(this, METHODID_SET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getUnsetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(this, METHODID_UNSET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_SLICE, compression))).addMethod(context.ContextServiceGrpc.getGetSliceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.SliceEvent>(this, METHODID_GET_SLICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceFilter, context.ContextOuterClass.SliceList>(this, METHODID_SELECT_SLICE, compression))).addMethod(context.ContextServiceGrpc.getListConnectionIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionIdList>(this, METHODID_LIST_CONNECTION_IDS, compression))).addMethod(context.ContextServiceGrpc.getListConnectionsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionList>(this, METHODID_LIST_CONNECTIONS, compression))).addMethod(context.ContextServiceGrpc.getGetConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Connection>(this, METHODID_GET_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getSetConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Connection, context.ContextOuterClass.ConnectionId>(this, METHODID_SET_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getRemoveConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getGetConnectionEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ConnectionEvent>(this, METHODID_GET_CONNECTION_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getGetOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalConfigList>(this, METHODID_GET_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getSetOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(this, METHODID_SET_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getSelectOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfig>(this, METHODID_SELECT_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getSetOpticalLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.Empty>(this, METHODID_SET_OPTICAL_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetOpticalLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink>(this, METHODID_GET_OPTICAL_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetFiberMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber>(this, METHODID_GET_FIBER, compression))).build(); + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()).addMethod(context.ContextServiceGrpc.getListContextIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextIdList>(this, METHODID_LIST_CONTEXT_IDS, compression))).addMethod(context.ContextServiceGrpc.getListContextsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextList>(this, METHODID_LIST_CONTEXTS, compression))).addMethod(context.ContextServiceGrpc.getGetContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Context>(this, METHODID_GET_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getSetContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Context, context.ContextOuterClass.ContextId>(this, METHODID_SET_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getRemoveContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getGetContextEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextEvent>(this, METHODID_GET_CONTEXT_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListTopologyIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyIdList>(this, METHODID_LIST_TOPOLOGY_IDS, compression))).addMethod(context.ContextServiceGrpc.getListTopologiesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyList>(this, METHODID_LIST_TOPOLOGIES, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Topology>(this, METHODID_GET_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyDetailsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyDetails>(this, METHODID_GET_TOPOLOGY_DETAILS, compression))).addMethod(context.ContextServiceGrpc.getSetTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Topology, context.ContextOuterClass.TopologyId>(this, METHODID_SET_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getRemoveTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.TopologyEvent>(this, METHODID_GET_TOPOLOGY_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListDeviceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceIdList>(this, METHODID_LIST_DEVICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListDevicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceList>(this, METHODID_LIST_DEVICES, compression))).addMethod(context.ContextServiceGrpc.getGetDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Device>(this, METHODID_GET_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getSetDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(this, METHODID_SET_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getGetDeviceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceEvent>(this, METHODID_GET_DEVICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceFilter, context.ContextOuterClass.DeviceList>(this, METHODID_SELECT_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getListEndPointNamesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.EndPointIdList, context.ContextOuterClass.EndPointNameList>(this, METHODID_LIST_END_POINT_NAMES, compression))).addMethod(context.ContextServiceGrpc.getListLinkIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkIdList>(this, METHODID_LIST_LINK_IDS, compression))).addMethod(context.ContextServiceGrpc.getListLinksMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkList>(this, METHODID_LIST_LINKS, compression))).addMethod(context.ContextServiceGrpc.getGetLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Link>(this, METHODID_GET_LINK, compression))).addMethod(context.ContextServiceGrpc.getSetLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Link, context.ContextOuterClass.LinkId>(this, METHODID_SET_LINK, compression))).addMethod(context.ContextServiceGrpc.getRemoveLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetLinkEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkEvent>(this, METHODID_GET_LINK_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListServiceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceIdList>(this, METHODID_LIST_SERVICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListServicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceList>(this, METHODID_LIST_SERVICES, compression))).addMethod(context.ContextServiceGrpc.getGetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Service>(this, METHODID_GET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getSetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(this, METHODID_SET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getUnsetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(this, METHODID_UNSET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getGetServiceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ServiceEvent>(this, METHODID_GET_SERVICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceFilter, context.ContextOuterClass.ServiceList>(this, METHODID_SELECT_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getListSliceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceIdList>(this, METHODID_LIST_SLICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListSlicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceList>(this, METHODID_LIST_SLICES, compression))).addMethod(context.ContextServiceGrpc.getGetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Slice>(this, METHODID_GET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getSetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(this, METHODID_SET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getUnsetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(this, METHODID_UNSET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_SLICE, compression))).addMethod(context.ContextServiceGrpc.getGetSliceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.SliceEvent>(this, METHODID_GET_SLICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceFilter, context.ContextOuterClass.SliceList>(this, METHODID_SELECT_SLICE, compression))).addMethod(context.ContextServiceGrpc.getListConnectionIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionIdList>(this, METHODID_LIST_CONNECTION_IDS, compression))).addMethod(context.ContextServiceGrpc.getListConnectionsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionList>(this, METHODID_LIST_CONNECTIONS, compression))).addMethod(context.ContextServiceGrpc.getGetConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Connection>(this, METHODID_GET_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getSetConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Connection, context.ContextOuterClass.ConnectionId>(this, METHODID_SET_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getRemoveConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getGetConnectionEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ConnectionEvent>(this, METHODID_GET_CONNECTION_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getGetOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalConfigList>(this, METHODID_GET_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getSetOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(this, METHODID_SET_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getUpdateOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(this, METHODID_UPDATE_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getSelectOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfig>(this, METHODID_SELECT_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getDeleteOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty>(this, METHODID_DELETE_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getDeleteOpticalChannelMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty>(this, METHODID_DELETE_OPTICAL_CHANNEL, compression))).addMethod(context.ContextServiceGrpc.getSetOpticalLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.Empty>(this, METHODID_SET_OPTICAL_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetOpticalLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink>(this, METHODID_GET_OPTICAL_LINK, compression))).addMethod(context.ContextServiceGrpc.getDeleteOpticalLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(this, METHODID_DELETE_OPTICAL_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetOpticalLinkListMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList>(this, METHODID_GET_OPTICAL_LINK_LIST, compression))).addMethod(context.ContextServiceGrpc.getDeleteServiceConfigRuleMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty>(this, METHODID_DELETE_SERVICE_CONFIG_RULE, compression))).build(); } } @@ -608,13 +648,23 @@ public final class MutinyContextServiceGrpc implements io.quarkus.grpc.MutinyGrp private static final int METHODID_SET_OPTICAL_CONFIG = 50; - private static final int METHODID_SELECT_OPTICAL_CONFIG = 51; + private static final int METHODID_UPDATE_OPTICAL_CONFIG = 51; + + private static final int METHODID_SELECT_OPTICAL_CONFIG = 52; + + private static final int METHODID_DELETE_OPTICAL_CONFIG = 53; - private static final int METHODID_SET_OPTICAL_LINK = 52; + private static final int METHODID_DELETE_OPTICAL_CHANNEL = 54; - private static final int METHODID_GET_OPTICAL_LINK = 53; + private static final int METHODID_SET_OPTICAL_LINK = 55; - private static final int METHODID_GET_FIBER = 54; + private static final int METHODID_GET_OPTICAL_LINK = 56; + + private static final int METHODID_DELETE_OPTICAL_LINK = 57; + + private static final int METHODID_GET_OPTICAL_LINK_LIST = 58; + + private static final int METHODID_DELETE_SERVICE_CONFIG_RULE = 59; private static final class MethodHandlers<Req, Resp> implements io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>, io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>, io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>, io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> { @@ -787,17 +837,32 @@ public final class MutinyContextServiceGrpc implements io.quarkus.grpc.MutinyGrp case METHODID_SET_OPTICAL_CONFIG: io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId>) responseObserver, compression, serviceImpl::setOpticalConfig); break; + case METHODID_UPDATE_OPTICAL_CONFIG: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId>) responseObserver, compression, serviceImpl::updateOpticalConfig); + break; case METHODID_SELECT_OPTICAL_CONFIG: io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalConfigId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfig>) responseObserver, compression, serviceImpl::selectOpticalConfig); break; + case METHODID_DELETE_OPTICAL_CONFIG: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalConfigId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, compression, serviceImpl::deleteOpticalConfig); + break; + case METHODID_DELETE_OPTICAL_CHANNEL: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, compression, serviceImpl::deleteOpticalChannel); + break; case METHODID_SET_OPTICAL_LINK: io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalLink) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, compression, serviceImpl::setOpticalLink); break; case METHODID_GET_OPTICAL_LINK: - io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalLinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink>) responseObserver, compression, serviceImpl::getOpticalLink); + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.LinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink>) responseObserver, compression, serviceImpl::getOpticalLink); + break; + case METHODID_DELETE_OPTICAL_LINK: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.LinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, compression, serviceImpl::deleteOpticalLink); + break; + case METHODID_GET_OPTICAL_LINK_LIST: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.Empty) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLinkList>) responseObserver, compression, serviceImpl::getOpticalLinkList); break; - case METHODID_GET_FIBER: - io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.FiberId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Fiber>) responseObserver, compression, serviceImpl::getFiber); + case METHODID_DELETE_SERVICE_CONFIG_RULE: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.ServiceConfigRule) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, compression, serviceImpl::deleteServiceConfigRule); break; default: throw new java.lang.AssertionError(); diff --git a/src/policy/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java b/src/policy/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java index 9621efb4b..2a8a62593 100644 --- a/src/policy/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java +++ b/src/policy/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java @@ -95,6 +95,38 @@ public final class KpiSampleTypes { * <code>KPISAMPLETYPE_SERVICE_LATENCY_MS = 701;</code> */ KPISAMPLETYPE_SERVICE_LATENCY_MS(701), + /** + * <pre> + * output KPIs + * </pre> + * + * <code>KPISAMPLETYPE_PACKETS_TRANSMITTED_AGG_OUTPUT = 1101;</code> + */ + KPISAMPLETYPE_PACKETS_TRANSMITTED_AGG_OUTPUT(1101), + /** + * <code>KPISAMPLETYPE_PACKETS_RECEIVED_AGG_OUTPUT = 1102;</code> + */ + KPISAMPLETYPE_PACKETS_RECEIVED_AGG_OUTPUT(1102), + /** + * <code>KPISAMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT = 1103;</code> + */ + KPISAMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT(1103), + /** + * <code>KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_OUTPUT = 1201;</code> + */ + KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_OUTPUT(1201), + /** + * <code>KPISAMPLETYPE_BYTES_RECEIVED_AGG_OUTPUT = 1202;</code> + */ + KPISAMPLETYPE_BYTES_RECEIVED_AGG_OUTPUT(1202), + /** + * <code>KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT = 1203;</code> + */ + KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT(1203), + /** + * <code>KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT = 1701;</code> + */ + KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT(1701), UNRECOGNIZED(-1); /** @@ -190,6 +222,45 @@ public final class KpiSampleTypes { */ public static final int KPISAMPLETYPE_SERVICE_LATENCY_MS_VALUE = 701; + /** + * <pre> + * output KPIs + * </pre> + * + * <code>KPISAMPLETYPE_PACKETS_TRANSMITTED_AGG_OUTPUT = 1101;</code> + */ + public static final int KPISAMPLETYPE_PACKETS_TRANSMITTED_AGG_OUTPUT_VALUE = 1101; + + /** + * <code>KPISAMPLETYPE_PACKETS_RECEIVED_AGG_OUTPUT = 1102;</code> + */ + public static final int KPISAMPLETYPE_PACKETS_RECEIVED_AGG_OUTPUT_VALUE = 1102; + + /** + * <code>KPISAMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT = 1103;</code> + */ + public static final int KPISAMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT_VALUE = 1103; + + /** + * <code>KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_OUTPUT = 1201;</code> + */ + public static final int KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_OUTPUT_VALUE = 1201; + + /** + * <code>KPISAMPLETYPE_BYTES_RECEIVED_AGG_OUTPUT = 1202;</code> + */ + public static final int KPISAMPLETYPE_BYTES_RECEIVED_AGG_OUTPUT_VALUE = 1202; + + /** + * <code>KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT = 1203;</code> + */ + public static final int KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT_VALUE = 1203; + + /** + * <code>KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT = 1701;</code> + */ + public static final int KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT_VALUE = 1701; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); @@ -247,6 +318,20 @@ public final class KpiSampleTypes { return KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO; case 701: return KPISAMPLETYPE_SERVICE_LATENCY_MS; + case 1101: + return KPISAMPLETYPE_PACKETS_TRANSMITTED_AGG_OUTPUT; + case 1102: + return KPISAMPLETYPE_PACKETS_RECEIVED_AGG_OUTPUT; + case 1103: + return KPISAMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT; + case 1201: + return KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_OUTPUT; + case 1202: + return KPISAMPLETYPE_BYTES_RECEIVED_AGG_OUTPUT; + case 1203: + return KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT; + case 1701: + return KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT; default: return null; } @@ -304,7 +389,7 @@ public final class KpiSampleTypes { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - java.lang.String[] descriptorData = { "\n\026kpi_sample_types.proto\022\020kpi_sample_typ" + "es*\260\005\n\rKpiSampleType\022\031\n\025KPISAMPLETYPE_UN" + "KNOWN\020\000\022%\n!KPISAMPLETYPE_PACKETS_TRANSMI" + "TTED\020e\022\"\n\036KPISAMPLETYPE_PACKETS_RECEIVED" + "\020f\022!\n\035KPISAMPLETYPE_PACKETS_DROPPED\020g\022$\n" + "\037KPISAMPLETYPE_BYTES_TRANSMITTED\020\311\001\022!\n\034K" + "PISAMPLETYPE_BYTES_RECEIVED\020\312\001\022 \n\033KPISAM" + "PLETYPE_BYTES_DROPPED\020\313\001\022+\n&KPISAMPLETYP" + "E_LINK_TOTAL_CAPACITY_GBPS\020\255\002\022*\n%KPISAMP" + "LETYPE_LINK_USED_CAPACITY_GBPS\020\256\002\022 \n\033KPI" + "SAMPLETYPE_ML_CONFIDENCE\020\221\003\022*\n%KPISAMPLE" + "TYPE_OPTICAL_SECURITY_STATUS\020\365\003\022)\n$KPISA" + "MPLETYPE_L3_UNIQUE_ATTACK_CONNS\020\331\004\022*\n%KP" + "ISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS\020\332\004\022&" + "\n!KPISAMPLETYPE_L3_UNIQUE_ATTACKERS\020\333\004\0220" + "\n+KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CL" + "IENTS\020\334\004\022,\n\'KPISAMPLETYPE_L3_SECURITY_ST" + "ATUS_CRYPTO\020\335\004\022%\n KPISAMPLETYPE_SERVICE_" + "LATENCY_MS\020\275\005b\006proto3" }; + java.lang.String[] descriptorData = { "\n\026kpi_sample_types.proto\022\020kpi_sample_typ" + "es*\200\010\n\rKpiSampleType\022\031\n\025KPISAMPLETYPE_UN" + "KNOWN\020\000\022%\n!KPISAMPLETYPE_PACKETS_TRANSMI" + "TTED\020e\022\"\n\036KPISAMPLETYPE_PACKETS_RECEIVED" + "\020f\022!\n\035KPISAMPLETYPE_PACKETS_DROPPED\020g\022$\n" + "\037KPISAMPLETYPE_BYTES_TRANSMITTED\020\311\001\022!\n\034K" + "PISAMPLETYPE_BYTES_RECEIVED\020\312\001\022 \n\033KPISAM" + "PLETYPE_BYTES_DROPPED\020\313\001\022+\n&KPISAMPLETYP" + "E_LINK_TOTAL_CAPACITY_GBPS\020\255\002\022*\n%KPISAMP" + "LETYPE_LINK_USED_CAPACITY_GBPS\020\256\002\022 \n\033KPI" + "SAMPLETYPE_ML_CONFIDENCE\020\221\003\022*\n%KPISAMPLE" + "TYPE_OPTICAL_SECURITY_STATUS\020\365\003\022)\n$KPISA" + "MPLETYPE_L3_UNIQUE_ATTACK_CONNS\020\331\004\022*\n%KP" + "ISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS\020\332\004\022&" + "\n!KPISAMPLETYPE_L3_UNIQUE_ATTACKERS\020\333\004\0220" + "\n+KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CL" + "IENTS\020\334\004\022,\n\'KPISAMPLETYPE_L3_SECURITY_ST" + "ATUS_CRYPTO\020\335\004\022%\n KPISAMPLETYPE_SERVICE_" + "LATENCY_MS\020\275\005\0221\n,KPISAMPLETYPE_PACKETS_T" + "RANSMITTED_AGG_OUTPUT\020\315\010\022.\n)KPISAMPLETYP" + "E_PACKETS_RECEIVED_AGG_OUTPUT\020\316\010\022-\n(KPIS" + "AMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT\020\317\010\022" + "/\n*KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_O" + "UTPUT\020\261\t\022,\n\'KPISAMPLETYPE_BYTES_RECEIVED" + "_AGG_OUTPUT\020\262\t\022+\n&KPISAMPLETYPE_BYTES_DR" + "OPPED_AGG_OUTPUT\020\263\t\0220\n+KPISAMPLETYPE_SER" + "VICE_LATENCY_MS_AGG_OUTPUT\020\245\rb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); } // @@protoc_insertion_point(outer_class_scope) diff --git a/src/policy/target/kubernetes/kubernetes.yml b/src/policy/target/kubernetes/kubernetes.yml new file mode 100644 index 000000000..327338b7e --- /dev/null +++ b/src/policy/target/kubernetes/kubernetes.yml @@ -0,0 +1,135 @@ +--- +apiVersion: v1 +kind: Service +metadata: + annotations: + app.quarkus.io/commit-id: 4a4c9dae464ba1919bca69eb213009c24385a759 + app.quarkus.io/build-timestamp: 2025-04-10 - 15:55:21 +0000 + prometheus.io/scrape: "true" + prometheus.io/path: /q/metrics + prometheus.io/port: "8080" + prometheus.io/scheme: http + labels: + app.kubernetes.io/name: policyservice + app.kubernetes.io/version: 0.1.0 + app: policyservice + app.kubernetes.io/managed-by: quarkus + name: policyservice +spec: + ports: + - name: http + port: 9192 + protocol: TCP + targetPort: 8080 + - name: https + port: 443 + protocol: TCP + targetPort: 8443 + - name: grpc + port: 6060 + protocol: TCP + targetPort: 6060 + selector: + app.kubernetes.io/name: policyservice + type: ClusterIP +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + app.quarkus.io/commit-id: 4a4c9dae464ba1919bca69eb213009c24385a759 + app.quarkus.io/build-timestamp: 2025-04-10 - 15:55:21 +0000 + prometheus.io/scrape: "true" + prometheus.io/path: /q/metrics + prometheus.io/port: "8080" + prometheus.io/scheme: http + labels: + app: policyservice + app.kubernetes.io/managed-by: quarkus + app.kubernetes.io/version: 0.1.0 + app.kubernetes.io/name: policyservice + name: policyservice +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: policyservice + template: + metadata: + annotations: + app.quarkus.io/commit-id: 4a4c9dae464ba1919bca69eb213009c24385a759 + app.quarkus.io/build-timestamp: 2025-04-10 - 15:55:21 +0000 + prometheus.io/scrape: "true" + prometheus.io/path: /q/metrics + prometheus.io/port: "8080" + prometheus.io/scheme: http + labels: + app: policyservice + app.kubernetes.io/managed-by: quarkus + app.kubernetes.io/version: 0.1.0 + app.kubernetes.io/name: policyservice + spec: + containers: + - env: + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: SERVICE_SERVICE_HOST + value: serviceservice + - name: CONTEXT_SERVICE_HOST + value: contextservice + - name: MONITORING_SERVICE_HOST + value: monitoringservice + - name: KAFKA_BROKER_HOST + value: kafka-service.kafka.svc.cluster.local + image: labs.etsi.org:5050/tfs/controller/policy:0.1.0 + imagePullPolicy: Always + livenessProbe: + failureThreshold: 3 + httpGet: + path: /q/health/live + port: 8080 + scheme: HTTP + initialDelaySeconds: 2 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + name: policyservice + ports: + - containerPort: 8080 + name: http + protocol: TCP + - containerPort: 8443 + name: https + protocol: TCP + - containerPort: 6060 + name: grpc + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /q/health/ready + port: 8080 + scheme: HTTP + initialDelaySeconds: 2 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + resources: + limits: + cpu: 500m + memory: 2048Mi + requests: + cpu: 50m + memory: 512Mi + startupProbe: + failureThreshold: 3 + httpGet: + path: /q/health/started + port: 8080 + scheme: HTTP + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 diff --git a/src/ztp/target/generated-sources/grpc/acl/Acl.java b/src/ztp/target/generated-sources/grpc/acl/Acl.java index f1895fa72..037bd3858 100644 --- a/src/ztp/target/generated-sources/grpc/acl/Acl.java +++ b/src/ztp/target/generated-sources/grpc/acl/Acl.java @@ -459,6 +459,18 @@ public final class Acl { * @return The endMplsLabel. */ int getEndMplsLabel(); + + /** + * <code>string tcp_flags = 9;</code> + * @return The tcpFlags. + */ + java.lang.String getTcpFlags(); + + /** + * <code>string tcp_flags = 9;</code> + * @return The bytes for tcpFlags. + */ + com.google.protobuf.ByteString getTcpFlagsBytes(); } /** @@ -477,6 +489,7 @@ public final class Acl { private AclMatch() { srcAddress_ = ""; dstAddress_ = ""; + tcpFlags_ = ""; } @java.lang.Override @@ -485,86 +498,6 @@ public final class Acl { return new AclMatch(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private AclMatch(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - dscp_ = input.readUInt32(); - break; - } - case 16: - { - protocol_ = input.readUInt32(); - break; - } - case 26: - { - java.lang.String s = input.readStringRequireUtf8(); - srcAddress_ = s; - break; - } - case 34: - { - java.lang.String s = input.readStringRequireUtf8(); - dstAddress_ = s; - break; - } - case 40: - { - srcPort_ = input.readUInt32(); - break; - } - case 48: - { - dstPort_ = input.readUInt32(); - break; - } - case 56: - { - startMplsLabel_ = input.readUInt32(); - break; - } - case 64: - { - endMplsLabel_ = input.readUInt32(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return acl.Acl.internal_static_acl_AclMatch_descriptor; } @@ -576,7 +509,7 @@ public final class Acl { public static final int DSCP_FIELD_NUMBER = 1; - private int dscp_; + private int dscp_ = 0; /** * <code>uint32 dscp = 1;</code> @@ -589,7 +522,7 @@ public final class Acl { public static final int PROTOCOL_FIELD_NUMBER = 2; - private int protocol_; + private int protocol_ = 0; /** * <code>uint32 protocol = 2;</code> @@ -602,7 +535,8 @@ public final class Acl { public static final int SRC_ADDRESS_FIELD_NUMBER = 3; - private volatile java.lang.Object srcAddress_; + @SuppressWarnings("serial") + private volatile java.lang.Object srcAddress_ = ""; /** * <code>string src_address = 3;</code> @@ -639,7 +573,8 @@ public final class Acl { public static final int DST_ADDRESS_FIELD_NUMBER = 4; - private volatile java.lang.Object dstAddress_; + @SuppressWarnings("serial") + private volatile java.lang.Object dstAddress_ = ""; /** * <code>string dst_address = 4;</code> @@ -676,7 +611,7 @@ public final class Acl { public static final int SRC_PORT_FIELD_NUMBER = 5; - private int srcPort_; + private int srcPort_ = 0; /** * <code>uint32 src_port = 5;</code> @@ -689,7 +624,7 @@ public final class Acl { public static final int DST_PORT_FIELD_NUMBER = 6; - private int dstPort_; + private int dstPort_ = 0; /** * <code>uint32 dst_port = 6;</code> @@ -702,7 +637,7 @@ public final class Acl { public static final int START_MPLS_LABEL_FIELD_NUMBER = 7; - private int startMplsLabel_; + private int startMplsLabel_ = 0; /** * <code>uint32 start_mpls_label = 7;</code> @@ -715,7 +650,7 @@ public final class Acl { public static final int END_MPLS_LABEL_FIELD_NUMBER = 8; - private int endMplsLabel_; + private int endMplsLabel_ = 0; /** * <code>uint32 end_mpls_label = 8;</code> @@ -726,6 +661,44 @@ public final class Acl { return endMplsLabel_; } + public static final int TCP_FLAGS_FIELD_NUMBER = 9; + + @SuppressWarnings("serial") + private volatile java.lang.Object tcpFlags_ = ""; + + /** + * <code>string tcp_flags = 9;</code> + * @return The tcpFlags. + */ + @java.lang.Override + public java.lang.String getTcpFlags() { + java.lang.Object ref = tcpFlags_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + tcpFlags_ = s; + return s; + } + } + + /** + * <code>string tcp_flags = 9;</code> + * @return The bytes for tcpFlags. + */ + @java.lang.Override + public com.google.protobuf.ByteString getTcpFlagsBytes() { + java.lang.Object ref = tcpFlags_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + tcpFlags_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -747,10 +720,10 @@ public final class Acl { if (protocol_ != 0) { output.writeUInt32(2, protocol_); } - if (!getSrcAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcAddress_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, srcAddress_); } - if (!getDstAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstAddress_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 4, dstAddress_); } if (srcPort_ != 0) { @@ -765,7 +738,10 @@ public final class Acl { if (endMplsLabel_ != 0) { output.writeUInt32(8, endMplsLabel_); } - unknownFields.writeTo(output); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tcpFlags_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 9, tcpFlags_); + } + getUnknownFields().writeTo(output); } @java.lang.Override @@ -780,10 +756,10 @@ public final class Acl { if (protocol_ != 0) { size += com.google.protobuf.CodedOutputStream.computeUInt32Size(2, protocol_); } - if (!getSrcAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcAddress_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, srcAddress_); } - if (!getDstAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstAddress_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, dstAddress_); } if (srcPort_ != 0) { @@ -798,7 +774,10 @@ public final class Acl { if (endMplsLabel_ != 0) { size += com.google.protobuf.CodedOutputStream.computeUInt32Size(8, endMplsLabel_); } - size += unknownFields.getSerializedSize(); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(tcpFlags_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, tcpFlags_); + } + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -828,7 +807,9 @@ public final class Acl { return false; if (getEndMplsLabel() != other.getEndMplsLabel()) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getTcpFlags().equals(other.getTcpFlags())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -856,7 +837,9 @@ public final class Acl { hash = (53 * hash) + getStartMplsLabel(); hash = (37 * hash) + END_MPLS_LABEL_FIELD_NUMBER; hash = (53 * hash) + getEndMplsLabel(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (37 * hash) + TCP_FLAGS_FIELD_NUMBER; + hash = (53 * hash) + getTcpFlags().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -950,22 +933,16 @@ public final class Acl { // Construct using acl.Acl.AclMatch.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; dscp_ = 0; protocol_ = 0; srcAddress_ = ""; @@ -974,6 +951,7 @@ public final class Acl { dstPort_ = 0; startMplsLabel_ = 0; endMplsLabel_ = 0; + tcpFlags_ = ""; return this; } @@ -999,46 +977,42 @@ public final class Acl { @java.lang.Override public acl.Acl.AclMatch buildPartial() { acl.Acl.AclMatch result = new acl.Acl.AclMatch(this); - result.dscp_ = dscp_; - result.protocol_ = protocol_; - result.srcAddress_ = srcAddress_; - result.dstAddress_ = dstAddress_; - result.srcPort_ = srcPort_; - result.dstPort_ = dstPort_; - result.startMplsLabel_ = startMplsLabel_; - result.endMplsLabel_ = endMplsLabel_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(acl.Acl.AclMatch result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.dscp_ = dscp_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.protocol_ = protocol_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.srcAddress_ = srcAddress_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.dstAddress_ = dstAddress_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.srcPort_ = srcPort_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.dstPort_ = dstPort_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.startMplsLabel_ = startMplsLabel_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.endMplsLabel_ = endMplsLabel_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.tcpFlags_ = tcpFlags_; + } } @java.lang.Override @@ -1062,10 +1036,12 @@ public final class Acl { } if (!other.getSrcAddress().isEmpty()) { srcAddress_ = other.srcAddress_; + bitField0_ |= 0x00000004; onChanged(); } if (!other.getDstAddress().isEmpty()) { dstAddress_ = other.dstAddress_; + bitField0_ |= 0x00000008; onChanged(); } if (other.getSrcPort() != 0) { @@ -1080,7 +1056,12 @@ public final class Acl { if (other.getEndMplsLabel() != 0) { setEndMplsLabel(other.getEndMplsLabel()); } - this.mergeUnknownFields(other.unknownFields); + if (!other.getTcpFlags().isEmpty()) { + tcpFlags_ = other.tcpFlags_; + bitField0_ |= 0x00000100; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -1092,20 +1073,103 @@ public final class Acl { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - acl.Acl.AclMatch parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + dscp_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 16: + { + protocol_ = input.readUInt32(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 26: + { + srcAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + dstAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } + // case 34 + case 40: + { + srcPort_ = input.readUInt32(); + bitField0_ |= 0x00000010; + break; + } + // case 40 + case 48: + { + dstPort_ = input.readUInt32(); + bitField0_ |= 0x00000020; + break; + } + // case 48 + case 56: + { + startMplsLabel_ = input.readUInt32(); + bitField0_ |= 0x00000040; + break; + } + // case 56 + case 64: + { + endMplsLabel_ = input.readUInt32(); + bitField0_ |= 0x00000080; + break; + } + // case 64 + case 74: + { + tcpFlags_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } + // case 74 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (acl.Acl.AclMatch) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private int dscp_; /** @@ -1124,6 +1188,7 @@ public final class Acl { */ public Builder setDscp(int value) { dscp_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -1133,6 +1198,7 @@ public final class Acl { * @return This builder for chaining. */ public Builder clearDscp() { + bitField0_ = (bitField0_ & ~0x00000001); dscp_ = 0; onChanged(); return this; @@ -1156,6 +1222,7 @@ public final class Acl { */ public Builder setProtocol(int value) { protocol_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -1165,6 +1232,7 @@ public final class Acl { * @return This builder for chaining. */ public Builder clearProtocol() { + bitField0_ = (bitField0_ & ~0x00000002); protocol_ = 0; onChanged(); return this; @@ -1213,6 +1281,7 @@ public final class Acl { throw new NullPointerException(); } srcAddress_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -1223,6 +1292,7 @@ public final class Acl { */ public Builder clearSrcAddress() { srcAddress_ = getDefaultInstance().getSrcAddress(); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } @@ -1238,6 +1308,7 @@ public final class Acl { } checkByteStringIsUtf8(value); srcAddress_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -1285,6 +1356,7 @@ public final class Acl { throw new NullPointerException(); } dstAddress_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -1295,6 +1367,7 @@ public final class Acl { */ public Builder clearDstAddress() { dstAddress_ = getDefaultInstance().getDstAddress(); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); return this; } @@ -1310,6 +1383,7 @@ public final class Acl { } checkByteStringIsUtf8(value); dstAddress_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -1332,6 +1406,7 @@ public final class Acl { */ public Builder setSrcPort(int value) { srcPort_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -1341,6 +1416,7 @@ public final class Acl { * @return This builder for chaining. */ public Builder clearSrcPort() { + bitField0_ = (bitField0_ & ~0x00000010); srcPort_ = 0; onChanged(); return this; @@ -1364,6 +1440,7 @@ public final class Acl { */ public Builder setDstPort(int value) { dstPort_ = value; + bitField0_ |= 0x00000020; onChanged(); return this; } @@ -1373,6 +1450,7 @@ public final class Acl { * @return This builder for chaining. */ public Builder clearDstPort() { + bitField0_ = (bitField0_ & ~0x00000020); dstPort_ = 0; onChanged(); return this; @@ -1396,6 +1474,7 @@ public final class Acl { */ public Builder setStartMplsLabel(int value) { startMplsLabel_ = value; + bitField0_ |= 0x00000040; onChanged(); return this; } @@ -1405,6 +1484,7 @@ public final class Acl { * @return This builder for chaining. */ public Builder clearStartMplsLabel() { + bitField0_ = (bitField0_ & ~0x00000040); startMplsLabel_ = 0; onChanged(); return this; @@ -1428,6 +1508,7 @@ public final class Acl { */ public Builder setEndMplsLabel(int value) { endMplsLabel_ = value; + bitField0_ |= 0x00000080; onChanged(); return this; } @@ -1437,11 +1518,87 @@ public final class Acl { * @return This builder for chaining. */ public Builder clearEndMplsLabel() { + bitField0_ = (bitField0_ & ~0x00000080); endMplsLabel_ = 0; onChanged(); return this; } + private java.lang.Object tcpFlags_ = ""; + + /** + * <code>string tcp_flags = 9;</code> + * @return The tcpFlags. + */ + public java.lang.String getTcpFlags() { + java.lang.Object ref = tcpFlags_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + tcpFlags_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * <code>string tcp_flags = 9;</code> + * @return The bytes for tcpFlags. + */ + public com.google.protobuf.ByteString getTcpFlagsBytes() { + java.lang.Object ref = tcpFlags_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + tcpFlags_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * <code>string tcp_flags = 9;</code> + * @param value The tcpFlags to set. + * @return This builder for chaining. + */ + public Builder setTcpFlags(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + tcpFlags_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + /** + * <code>string tcp_flags = 9;</code> + * @return This builder for chaining. + */ + public Builder clearTcpFlags() { + tcpFlags_ = getDefaultInstance().getTcpFlags(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + + /** + * <code>string tcp_flags = 9;</code> + * @param value The bytes for tcpFlags to set. + * @return This builder for chaining. + */ + public Builder setTcpFlagsBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + tcpFlags_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); @@ -1469,7 +1626,17 @@ public final class Acl { @java.lang.Override public AclMatch parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new AclMatch(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -1540,56 +1707,6 @@ public final class Acl { return new AclAction(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private AclAction(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - int rawValue = input.readEnum(); - forwardAction_ = rawValue; - break; - } - case 16: - { - int rawValue = input.readEnum(); - logAction_ = rawValue; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return acl.Acl.internal_static_acl_AclAction_descriptor; } @@ -1601,7 +1718,7 @@ public final class Acl { public static final int FORWARD_ACTION_FIELD_NUMBER = 1; - private int forwardAction_; + private int forwardAction_ = 0; /** * <code>.acl.AclForwardActionEnum forward_action = 1;</code> @@ -1618,14 +1735,13 @@ public final class Acl { */ @java.lang.Override public acl.Acl.AclForwardActionEnum getForwardAction() { - @SuppressWarnings("deprecation") - acl.Acl.AclForwardActionEnum result = acl.Acl.AclForwardActionEnum.valueOf(forwardAction_); + acl.Acl.AclForwardActionEnum result = acl.Acl.AclForwardActionEnum.forNumber(forwardAction_); return result == null ? acl.Acl.AclForwardActionEnum.UNRECOGNIZED : result; } public static final int LOG_ACTION_FIELD_NUMBER = 2; - private int logAction_; + private int logAction_ = 0; /** * <code>.acl.AclLogActionEnum log_action = 2;</code> @@ -1642,8 +1758,7 @@ public final class Acl { */ @java.lang.Override public acl.Acl.AclLogActionEnum getLogAction() { - @SuppressWarnings("deprecation") - acl.Acl.AclLogActionEnum result = acl.Acl.AclLogActionEnum.valueOf(logAction_); + acl.Acl.AclLogActionEnum result = acl.Acl.AclLogActionEnum.forNumber(logAction_); return result == null ? acl.Acl.AclLogActionEnum.UNRECOGNIZED : result; } @@ -1668,7 +1783,7 @@ public final class Acl { if (logAction_ != acl.Acl.AclLogActionEnum.ACLLOGACTION_UNDEFINED.getNumber()) { output.writeEnum(2, logAction_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -1683,7 +1798,7 @@ public final class Acl { if (logAction_ != acl.Acl.AclLogActionEnum.ACLLOGACTION_UNDEFINED.getNumber()) { size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, logAction_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -1701,7 +1816,7 @@ public final class Acl { return false; if (logAction_ != other.logAction_) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -1717,7 +1832,7 @@ public final class Acl { hash = (53 * hash) + forwardAction_; hash = (37 * hash) + LOG_ACTION_FIELD_NUMBER; hash = (53 * hash) + logAction_; - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -1811,22 +1926,16 @@ public final class Acl { // Construct using acl.Acl.AclAction.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; forwardAction_ = 0; logAction_ = 0; return this; @@ -1854,40 +1963,21 @@ public final class Acl { @java.lang.Override public acl.Acl.AclAction buildPartial() { acl.Acl.AclAction result = new acl.Acl.AclAction(this); - result.forwardAction_ = forwardAction_; - result.logAction_ = logAction_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(acl.Acl.AclAction result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.forwardAction_ = forwardAction_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.logAction_ = logAction_; + } } @java.lang.Override @@ -1909,7 +1999,7 @@ public final class Acl { if (other.logAction_ != 0) { setLogActionValue(other.getLogActionValue()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -1921,20 +2011,54 @@ public final class Acl { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - acl.Acl.AclAction parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + forwardAction_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 16: + { + logAction_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (acl.Acl.AclAction) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private int forwardAction_ = 0; /** @@ -1953,6 +2077,7 @@ public final class Acl { */ public Builder setForwardActionValue(int value) { forwardAction_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -1963,8 +2088,7 @@ public final class Acl { */ @java.lang.Override public acl.Acl.AclForwardActionEnum getForwardAction() { - @SuppressWarnings("deprecation") - acl.Acl.AclForwardActionEnum result = acl.Acl.AclForwardActionEnum.valueOf(forwardAction_); + acl.Acl.AclForwardActionEnum result = acl.Acl.AclForwardActionEnum.forNumber(forwardAction_); return result == null ? acl.Acl.AclForwardActionEnum.UNRECOGNIZED : result; } @@ -1977,6 +2101,7 @@ public final class Acl { if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000001; forwardAction_ = value.getNumber(); onChanged(); return this; @@ -1987,6 +2112,7 @@ public final class Acl { * @return This builder for chaining. */ public Builder clearForwardAction() { + bitField0_ = (bitField0_ & ~0x00000001); forwardAction_ = 0; onChanged(); return this; @@ -2010,6 +2136,7 @@ public final class Acl { */ public Builder setLogActionValue(int value) { logAction_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -2020,8 +2147,7 @@ public final class Acl { */ @java.lang.Override public acl.Acl.AclLogActionEnum getLogAction() { - @SuppressWarnings("deprecation") - acl.Acl.AclLogActionEnum result = acl.Acl.AclLogActionEnum.valueOf(logAction_); + acl.Acl.AclLogActionEnum result = acl.Acl.AclLogActionEnum.forNumber(logAction_); return result == null ? acl.Acl.AclLogActionEnum.UNRECOGNIZED : result; } @@ -2034,6 +2160,7 @@ public final class Acl { if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000002; logAction_ = value.getNumber(); onChanged(); return this; @@ -2044,6 +2171,7 @@ public final class Acl { * @return This builder for chaining. */ public Builder clearLogAction() { + bitField0_ = (bitField0_ & ~0x00000002); logAction_ = 0; onChanged(); return this; @@ -2076,7 +2204,17 @@ public final class Acl { @java.lang.Override public AclAction parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new AclAction(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -2174,81 +2312,6 @@ public final class Acl { return new AclEntry(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private AclEntry(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - sequenceId_ = input.readUInt32(); - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - description_ = s; - break; - } - case 26: - { - acl.Acl.AclMatch.Builder subBuilder = null; - if (match_ != null) { - subBuilder = match_.toBuilder(); - } - match_ = input.readMessage(acl.Acl.AclMatch.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(match_); - match_ = subBuilder.buildPartial(); - } - break; - } - case 34: - { - acl.Acl.AclAction.Builder subBuilder = null; - if (action_ != null) { - subBuilder = action_.toBuilder(); - } - action_ = input.readMessage(acl.Acl.AclAction.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(action_); - action_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return acl.Acl.internal_static_acl_AclEntry_descriptor; } @@ -2260,7 +2323,7 @@ public final class Acl { public static final int SEQUENCE_ID_FIELD_NUMBER = 1; - private int sequenceId_; + private int sequenceId_ = 0; /** * <code>uint32 sequence_id = 1;</code> @@ -2273,7 +2336,8 @@ public final class Acl { public static final int DESCRIPTION_FIELD_NUMBER = 2; - private volatile java.lang.Object description_; + @SuppressWarnings("serial") + private volatile java.lang.Object description_ = ""; /** * <code>string description = 2;</code> @@ -2335,7 +2399,7 @@ public final class Acl { */ @java.lang.Override public acl.Acl.AclMatchOrBuilder getMatchOrBuilder() { - return getMatch(); + return match_ == null ? acl.Acl.AclMatch.getDefaultInstance() : match_; } public static final int ACTION_FIELD_NUMBER = 4; @@ -2365,7 +2429,7 @@ public final class Acl { */ @java.lang.Override public acl.Acl.AclActionOrBuilder getActionOrBuilder() { - return getAction(); + return action_ == null ? acl.Acl.AclAction.getDefaultInstance() : action_; } private byte memoizedIsInitialized = -1; @@ -2386,7 +2450,7 @@ public final class Acl { if (sequenceId_ != 0) { output.writeUInt32(1, sequenceId_); } - if (!getDescriptionBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, description_); } if (match_ != null) { @@ -2395,7 +2459,7 @@ public final class Acl { if (action_ != null) { output.writeMessage(4, getAction()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -2407,7 +2471,7 @@ public final class Acl { if (sequenceId_ != 0) { size += com.google.protobuf.CodedOutputStream.computeUInt32Size(1, sequenceId_); } - if (!getDescriptionBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, description_); } if (match_ != null) { @@ -2416,7 +2480,7 @@ public final class Acl { if (action_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getAction()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -2446,7 +2510,7 @@ public final class Acl { if (!getAction().equals(other.getAction())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -2470,7 +2534,7 @@ public final class Acl { hash = (37 * hash) + ACTION_FIELD_NUMBER; hash = (53 * hash) + getAction().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -2564,34 +2628,26 @@ public final class Acl { // Construct using acl.Acl.AclEntry.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; sequenceId_ = 0; description_ = ""; - if (matchBuilder_ == null) { - match_ = null; - } else { - match_ = null; + match_ = null; + if (matchBuilder_ != null) { + matchBuilder_.dispose(); matchBuilder_ = null; } - if (actionBuilder_ == null) { - action_ = null; - } else { - action_ = null; + action_ = null; + if (actionBuilder_ != null) { + actionBuilder_.dispose(); actionBuilder_ = null; } return this; @@ -2619,50 +2675,27 @@ public final class Acl { @java.lang.Override public acl.Acl.AclEntry buildPartial() { acl.Acl.AclEntry result = new acl.Acl.AclEntry(this); - result.sequenceId_ = sequenceId_; - result.description_ = description_; - if (matchBuilder_ == null) { - result.match_ = match_; - } else { - result.match_ = matchBuilder_.build(); - } - if (actionBuilder_ == null) { - result.action_ = action_; - } else { - result.action_ = actionBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(acl.Acl.AclEntry result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceId_ = sequenceId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.description_ = description_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.match_ = matchBuilder_ == null ? match_ : matchBuilder_.build(); + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.action_ = actionBuilder_ == null ? action_ : actionBuilder_.build(); + } } @java.lang.Override @@ -2683,6 +2716,7 @@ public final class Acl { } if (!other.getDescription().isEmpty()) { description_ = other.description_; + bitField0_ |= 0x00000002; onChanged(); } if (other.hasMatch()) { @@ -2691,7 +2725,7 @@ public final class Acl { if (other.hasAction()) { mergeAction(other.getAction()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -2703,20 +2737,68 @@ public final class Acl { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - acl.Acl.AclEntry parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + sequenceId_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 18: + { + description_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getMatchFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + input.readMessage(getActionFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (acl.Acl.AclEntry) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private int sequenceId_; /** @@ -2735,6 +2817,7 @@ public final class Acl { */ public Builder setSequenceId(int value) { sequenceId_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -2744,6 +2827,7 @@ public final class Acl { * @return This builder for chaining. */ public Builder clearSequenceId() { + bitField0_ = (bitField0_ & ~0x00000001); sequenceId_ = 0; onChanged(); return this; @@ -2792,6 +2876,7 @@ public final class Acl { throw new NullPointerException(); } description_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -2802,6 +2887,7 @@ public final class Acl { */ public Builder clearDescription() { description_ = getDefaultInstance().getDescription(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -2817,6 +2903,7 @@ public final class Acl { } checkByteStringIsUtf8(value); description_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -2830,7 +2917,7 @@ public final class Acl { * @return Whether the match field is set. */ public boolean hasMatch() { - return matchBuilder_ != null || match_ != null; + return ((bitField0_ & 0x00000004) != 0); } /** @@ -2854,10 +2941,11 @@ public final class Acl { throw new NullPointerException(); } match_ = value; - onChanged(); } else { matchBuilder_.setMessage(value); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -2867,10 +2955,11 @@ public final class Acl { public Builder setMatch(acl.Acl.AclMatch.Builder builderForValue) { if (matchBuilder_ == null) { match_ = builderForValue.build(); - onChanged(); } else { matchBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -2879,15 +2968,16 @@ public final class Acl { */ public Builder mergeMatch(acl.Acl.AclMatch value) { if (matchBuilder_ == null) { - if (match_ != null) { - match_ = acl.Acl.AclMatch.newBuilder(match_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000004) != 0) && match_ != null && match_ != acl.Acl.AclMatch.getDefaultInstance()) { + getMatchBuilder().mergeFrom(value); } else { match_ = value; } - onChanged(); } else { matchBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -2895,13 +2985,13 @@ public final class Acl { * <code>.acl.AclMatch match = 3;</code> */ public Builder clearMatch() { - if (matchBuilder_ == null) { - match_ = null; - onChanged(); - } else { - match_ = null; + bitField0_ = (bitField0_ & ~0x00000004); + match_ = null; + if (matchBuilder_ != null) { + matchBuilder_.dispose(); matchBuilder_ = null; } + onChanged(); return this; } @@ -2909,6 +2999,7 @@ public final class Acl { * <code>.acl.AclMatch match = 3;</code> */ public acl.Acl.AclMatch.Builder getMatchBuilder() { + bitField0_ |= 0x00000004; onChanged(); return getMatchFieldBuilder().getBuilder(); } @@ -2944,7 +3035,7 @@ public final class Acl { * @return Whether the action field is set. */ public boolean hasAction() { - return actionBuilder_ != null || action_ != null; + return ((bitField0_ & 0x00000008) != 0); } /** @@ -2968,10 +3059,11 @@ public final class Acl { throw new NullPointerException(); } action_ = value; - onChanged(); } else { actionBuilder_.setMessage(value); } + bitField0_ |= 0x00000008; + onChanged(); return this; } @@ -2981,10 +3073,11 @@ public final class Acl { public Builder setAction(acl.Acl.AclAction.Builder builderForValue) { if (actionBuilder_ == null) { action_ = builderForValue.build(); - onChanged(); } else { actionBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000008; + onChanged(); return this; } @@ -2993,15 +3086,16 @@ public final class Acl { */ public Builder mergeAction(acl.Acl.AclAction value) { if (actionBuilder_ == null) { - if (action_ != null) { - action_ = acl.Acl.AclAction.newBuilder(action_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000008) != 0) && action_ != null && action_ != acl.Acl.AclAction.getDefaultInstance()) { + getActionBuilder().mergeFrom(value); } else { action_ = value; } - onChanged(); } else { actionBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000008; + onChanged(); return this; } @@ -3009,13 +3103,13 @@ public final class Acl { * <code>.acl.AclAction action = 4;</code> */ public Builder clearAction() { - if (actionBuilder_ == null) { - action_ = null; - onChanged(); - } else { - action_ = null; + bitField0_ = (bitField0_ & ~0x00000008); + action_ = null; + if (actionBuilder_ != null) { + actionBuilder_.dispose(); actionBuilder_ = null; } + onChanged(); return this; } @@ -3023,6 +3117,7 @@ public final class Acl { * <code>.acl.AclAction action = 4;</code> */ public acl.Acl.AclAction.Builder getActionBuilder() { + bitField0_ |= 0x00000008; onChanged(); return getActionFieldBuilder().getBuilder(); } @@ -3076,7 +3171,17 @@ public final class Acl { @java.lang.Override public AclEntry parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new AclEntry(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -3199,81 +3304,6 @@ public final class Acl { return new AclRuleSet(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private AclRuleSet(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 16: - { - int rawValue = input.readEnum(); - type_ = rawValue; - break; - } - case 26: - { - java.lang.String s = input.readStringRequireUtf8(); - description_ = s; - break; - } - case 34: - { - java.lang.String s = input.readStringRequireUtf8(); - userId_ = s; - break; - } - case 42: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - entries_ = new java.util.ArrayList<acl.Acl.AclEntry>(); - mutable_bitField0_ |= 0x00000001; - } - entries_.add(input.readMessage(acl.Acl.AclEntry.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - entries_ = java.util.Collections.unmodifiableList(entries_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return acl.Acl.internal_static_acl_AclRuleSet_descriptor; } @@ -3285,7 +3315,8 @@ public final class Acl { public static final int NAME_FIELD_NUMBER = 1; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * <code>string name = 1;</code> @@ -3322,7 +3353,7 @@ public final class Acl { public static final int TYPE_FIELD_NUMBER = 2; - private int type_; + private int type_ = 0; /** * <code>.acl.AclRuleTypeEnum type = 2;</code> @@ -3339,14 +3370,14 @@ public final class Acl { */ @java.lang.Override public acl.Acl.AclRuleTypeEnum getType() { - @SuppressWarnings("deprecation") - acl.Acl.AclRuleTypeEnum result = acl.Acl.AclRuleTypeEnum.valueOf(type_); + acl.Acl.AclRuleTypeEnum result = acl.Acl.AclRuleTypeEnum.forNumber(type_); return result == null ? acl.Acl.AclRuleTypeEnum.UNRECOGNIZED : result; } public static final int DESCRIPTION_FIELD_NUMBER = 3; - private volatile java.lang.Object description_; + @SuppressWarnings("serial") + private volatile java.lang.Object description_ = ""; /** * <code>string description = 3;</code> @@ -3383,7 +3414,8 @@ public final class Acl { public static final int USER_ID_FIELD_NUMBER = 4; - private volatile java.lang.Object userId_; + @SuppressWarnings("serial") + private volatile java.lang.Object userId_ = ""; /** * <code>string user_id = 4;</code> @@ -3420,6 +3452,7 @@ public final class Acl { public static final int ENTRIES_FIELD_NUMBER = 5; + @SuppressWarnings("serial") private java.util.List<acl.Acl.AclEntry> entries_; /** @@ -3477,22 +3510,22 @@ public final class Acl { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } if (type_ != acl.Acl.AclRuleTypeEnum.ACLRULETYPE_UNDEFINED.getNumber()) { output.writeEnum(2, type_); } - if (!getDescriptionBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, description_); } - if (!getUserIdBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userId_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 4, userId_); } for (int i = 0; i < entries_.size(); i++) { output.writeMessage(5, entries_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -3501,22 +3534,22 @@ public final class Acl { if (size != -1) return size; size = 0; - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } if (type_ != acl.Acl.AclRuleTypeEnum.ACLRULETYPE_UNDEFINED.getNumber()) { size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, type_); } - if (!getDescriptionBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, description_); } - if (!getUserIdBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(userId_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, userId_); } for (int i = 0; i < entries_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, entries_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -3540,7 +3573,7 @@ public final class Acl { return false; if (!getEntriesList().equals(other.getEntriesList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -3564,7 +3597,7 @@ public final class Acl { hash = (37 * hash) + ENTRIES_FIELD_NUMBER; hash = (53 * hash) + getEntriesList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -3658,33 +3691,27 @@ public final class Acl { // Construct using acl.Acl.AclRuleSet.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getEntriesFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; name_ = ""; type_ = 0; description_ = ""; userId_ = ""; if (entriesBuilder_ == null) { entries_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + entries_ = null; entriesBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -3710,52 +3737,40 @@ public final class Acl { @java.lang.Override public acl.Acl.AclRuleSet buildPartial() { acl.Acl.AclRuleSet result = new acl.Acl.AclRuleSet(this); - int from_bitField0_ = bitField0_; - result.name_ = name_; - result.type_ = type_; - result.description_ = description_; - result.userId_ = userId_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(acl.Acl.AclRuleSet result) { if (entriesBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000010) != 0)) { entries_ = java.util.Collections.unmodifiableList(entries_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000010); } result.entries_ = entries_; } else { result.entries_ = entriesBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); } - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(acl.Acl.AclRuleSet result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.type_ = type_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.description_ = description_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.userId_ = userId_; + } } @java.lang.Override @@ -3773,6 +3788,7 @@ public final class Acl { return this; if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000001; onChanged(); } if (other.type_ != 0) { @@ -3780,17 +3796,19 @@ public final class Acl { } if (!other.getDescription().isEmpty()) { description_ = other.description_; + bitField0_ |= 0x00000004; onChanged(); } if (!other.getUserId().isEmpty()) { userId_ = other.userId_; + bitField0_ |= 0x00000008; onChanged(); } if (entriesBuilder_ == null) { if (!other.entries_.isEmpty()) { if (entries_.isEmpty()) { entries_ = other.entries_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000010); } else { ensureEntriesIsMutable(); entries_.addAll(other.entries_); @@ -3803,14 +3821,14 @@ public final class Acl { entriesBuilder_.dispose(); entriesBuilder_ = null; entries_ = other.entries_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000010); entriesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getEntriesFieldBuilder() : null; } else { entriesBuilder_.addAllMessages(other.entries_); } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -3822,17 +3840,75 @@ public final class Acl { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - acl.Acl.AclRuleSet parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + type_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 26: + { + description_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + userId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } + // case 34 + case 42: + { + acl.Acl.AclEntry m = input.readMessage(acl.Acl.AclEntry.parser(), extensionRegistry); + if (entriesBuilder_ == null) { + ensureEntriesIsMutable(); + entries_.add(m); + } else { + entriesBuilder_.addMessage(m); + } + break; + } + // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (acl.Acl.AclRuleSet) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -3881,6 +3957,7 @@ public final class Acl { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -3891,6 +3968,7 @@ public final class Acl { */ public Builder clearName() { name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } @@ -3906,6 +3984,7 @@ public final class Acl { } checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -3928,6 +4007,7 @@ public final class Acl { */ public Builder setTypeValue(int value) { type_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -3938,8 +4018,7 @@ public final class Acl { */ @java.lang.Override public acl.Acl.AclRuleTypeEnum getType() { - @SuppressWarnings("deprecation") - acl.Acl.AclRuleTypeEnum result = acl.Acl.AclRuleTypeEnum.valueOf(type_); + acl.Acl.AclRuleTypeEnum result = acl.Acl.AclRuleTypeEnum.forNumber(type_); return result == null ? acl.Acl.AclRuleTypeEnum.UNRECOGNIZED : result; } @@ -3952,6 +4031,7 @@ public final class Acl { if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000002; type_ = value.getNumber(); onChanged(); return this; @@ -3962,6 +4042,7 @@ public final class Acl { * @return This builder for chaining. */ public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000002); type_ = 0; onChanged(); return this; @@ -4010,6 +4091,7 @@ public final class Acl { throw new NullPointerException(); } description_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -4020,6 +4102,7 @@ public final class Acl { */ public Builder clearDescription() { description_ = getDefaultInstance().getDescription(); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } @@ -4035,6 +4118,7 @@ public final class Acl { } checkByteStringIsUtf8(value); description_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -4082,6 +4166,7 @@ public final class Acl { throw new NullPointerException(); } userId_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -4092,6 +4177,7 @@ public final class Acl { */ public Builder clearUserId() { userId_ = getDefaultInstance().getUserId(); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); return this; } @@ -4107,6 +4193,7 @@ public final class Acl { } checkByteStringIsUtf8(value); userId_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -4114,9 +4201,9 @@ public final class Acl { private java.util.List<acl.Acl.AclEntry> entries_ = java.util.Collections.emptyList(); private void ensureEntriesIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000010) != 0)) { entries_ = new java.util.ArrayList<acl.Acl.AclEntry>(entries_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000010; } } @@ -4268,7 +4355,7 @@ public final class Acl { public Builder clearEntries() { if (entriesBuilder_ == null) { entries_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { entriesBuilder_.clear(); @@ -4342,7 +4429,7 @@ public final class Acl { private com.google.protobuf.RepeatedFieldBuilderV3<acl.Acl.AclEntry, acl.Acl.AclEntry.Builder, acl.Acl.AclEntryOrBuilder> getEntriesFieldBuilder() { if (entriesBuilder_ == null) { - entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<acl.Acl.AclEntry, acl.Acl.AclEntry.Builder, acl.Acl.AclEntryOrBuilder>(entries_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + entriesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<acl.Acl.AclEntry, acl.Acl.AclEntry.Builder, acl.Acl.AclEntryOrBuilder>(entries_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); entries_ = null; } return entriesBuilder_; @@ -4375,7 +4462,17 @@ public final class Acl { @java.lang.Override public AclRuleSet parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new AclRuleSet(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -4417,10 +4514,10 @@ public final class Acl { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - java.lang.String[] descriptorData = { "\n\tacl.proto\022\003acl\"\252\001\n\010AclMatch\022\014\n\004dscp\030\001 " + "\001(\r\022\020\n\010protocol\030\002 \001(\r\022\023\n\013src_address\030\003 \001" + "(\t\022\023\n\013dst_address\030\004 \001(\t\022\020\n\010src_port\030\005 \001(" + "\r\022\020\n\010dst_port\030\006 \001(\r\022\030\n\020start_mpls_label\030" + "\007 \001(\r\022\026\n\016end_mpls_label\030\010 \001(\r\"i\n\tAclActi" + "on\0221\n\016forward_action\030\001 \001(\0162\031.acl.AclForw" + "ardActionEnum\022)\n\nlog_action\030\002 \001(\0162\025.acl." + "AclLogActionEnum\"r\n\010AclEntry\022\023\n\013sequence" + "_id\030\001 \001(\r\022\023\n\013description\030\002 \001(\t\022\034\n\005match\030" + "\003 \001(\0132\r.acl.AclMatch\022\036\n\006action\030\004 \001(\0132\016.a" + "cl.AclAction\"\204\001\n\nAclRuleSet\022\014\n\004name\030\001 \001(" + "\t\022\"\n\004type\030\002 \001(\0162\024.acl.AclRuleTypeEnum\022\023\n" + "\013description\030\003 \001(\t\022\017\n\007user_id\030\004 \001(\t\022\036\n\007e" + "ntries\030\005 \003(\0132\r.acl.AclEntry*\231\001\n\017AclRuleT" + "ypeEnum\022\031\n\025ACLRULETYPE_UNDEFINED\020\000\022\024\n\020AC" + "LRULETYPE_IPV4\020\001\022\024\n\020ACLRULETYPE_IPV6\020\002\022\022" + "\n\016ACLRULETYPE_L2\020\003\022\024\n\020ACLRULETYPE_MPLS\020\004" + "\022\025\n\021ACLRULETYPE_MIXED\020\005*\227\001\n\024AclForwardAc" + "tionEnum\022!\n\035ACLFORWARDINGACTION_UNDEFINE" + "D\020\000\022\034\n\030ACLFORWARDINGACTION_DROP\020\001\022\036\n\032ACL" + "FORWARDINGACTION_ACCEPT\020\002\022\036\n\032ACLFORWARDI" + "NGACTION_REJECT\020\003*_\n\020AclLogActionEnum\022\032\n" + "\026ACLLOGACTION_UNDEFINED\020\000\022\026\n\022ACLLOGACTIO" + "N_NOLOG\020\001\022\027\n\023ACLLOGACTION_SYSLOG\020\002b\006prot" + "o3" }; + java.lang.String[] descriptorData = { "\n\tacl.proto\022\003acl\"\275\001\n\010AclMatch\022\014\n\004dscp\030\001 " + "\001(\r\022\020\n\010protocol\030\002 \001(\r\022\023\n\013src_address\030\003 \001" + "(\t\022\023\n\013dst_address\030\004 \001(\t\022\020\n\010src_port\030\005 \001(" + "\r\022\020\n\010dst_port\030\006 \001(\r\022\030\n\020start_mpls_label\030" + "\007 \001(\r\022\026\n\016end_mpls_label\030\010 \001(\r\022\021\n\ttcp_fla" + "gs\030\t \001(\t\"i\n\tAclAction\0221\n\016forward_action\030" + "\001 \001(\0162\031.acl.AclForwardActionEnum\022)\n\nlog_" + "action\030\002 \001(\0162\025.acl.AclLogActionEnum\"r\n\010A" + "clEntry\022\023\n\013sequence_id\030\001 \001(\r\022\023\n\013descript" + "ion\030\002 \001(\t\022\034\n\005match\030\003 \001(\0132\r.acl.AclMatch\022" + "\036\n\006action\030\004 \001(\0132\016.acl.AclAction\"\204\001\n\nAclR" + "uleSet\022\014\n\004name\030\001 \001(\t\022\"\n\004type\030\002 \001(\0162\024.acl" + ".AclRuleTypeEnum\022\023\n\013description\030\003 \001(\t\022\017\n" + "\007user_id\030\004 \001(\t\022\036\n\007entries\030\005 \003(\0132\r.acl.Ac" + "lEntry*\231\001\n\017AclRuleTypeEnum\022\031\n\025ACLRULETYP" + "E_UNDEFINED\020\000\022\024\n\020ACLRULETYPE_IPV4\020\001\022\024\n\020A" + "CLRULETYPE_IPV6\020\002\022\022\n\016ACLRULETYPE_L2\020\003\022\024\n" + "\020ACLRULETYPE_MPLS\020\004\022\025\n\021ACLRULETYPE_MIXED" + "\020\005*\227\001\n\024AclForwardActionEnum\022!\n\035ACLFORWAR" + "DINGACTION_UNDEFINED\020\000\022\034\n\030ACLFORWARDINGA" + "CTION_DROP\020\001\022\036\n\032ACLFORWARDINGACTION_ACCE" + "PT\020\002\022\036\n\032ACLFORWARDINGACTION_REJECT\020\003*_\n\020" + "AclLogActionEnum\022\032\n\026ACLLOGACTION_UNDEFIN" + "ED\020\000\022\026\n\022ACLLOGACTION_NOLOG\020\001\022\027\n\023ACLLOGAC" + "TION_SYSLOG\020\002b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); internal_static_acl_AclMatch_descriptor = getDescriptor().getMessageTypes().get(0); - internal_static_acl_AclMatch_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_acl_AclMatch_descriptor, new java.lang.String[] { "Dscp", "Protocol", "SrcAddress", "DstAddress", "SrcPort", "DstPort", "StartMplsLabel", "EndMplsLabel" }); + internal_static_acl_AclMatch_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_acl_AclMatch_descriptor, new java.lang.String[] { "Dscp", "Protocol", "SrcAddress", "DstAddress", "SrcPort", "DstPort", "StartMplsLabel", "EndMplsLabel", "TcpFlags" }); internal_static_acl_AclAction_descriptor = getDescriptor().getMessageTypes().get(1); internal_static_acl_AclAction_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_acl_AclAction_descriptor, new java.lang.String[] { "ForwardAction", "LogAction" }); internal_static_acl_AclEntry_descriptor = getDescriptor().getMessageTypes().get(2); diff --git a/src/ztp/target/generated-sources/grpc/context/ContextOuterClass.java b/src/ztp/target/generated-sources/grpc/context/ContextOuterClass.java index 459377049..d85f89f6f 100644 --- a/src/ztp/target/generated-sources/grpc/context/ContextOuterClass.java +++ b/src/ztp/target/generated-sources/grpc/context/ContextOuterClass.java @@ -195,6 +195,26 @@ public final class ContextOuterClass { * <code>DEVICEDRIVER_OC = 11;</code> */ DEVICEDRIVER_OC(11), + /** + * <code>DEVICEDRIVER_QKD = 12;</code> + */ + DEVICEDRIVER_QKD(12), + /** + * <code>DEVICEDRIVER_IETF_L3VPN = 13;</code> + */ + DEVICEDRIVER_IETF_L3VPN(13), + /** + * <code>DEVICEDRIVER_IETF_SLICE = 14;</code> + */ + DEVICEDRIVER_IETF_SLICE(14), + /** + * <code>DEVICEDRIVER_NCE = 15;</code> + */ + DEVICEDRIVER_NCE(15), + /** + * <code>DEVICEDRIVER_SMARTNIC = 16;</code> + */ + DEVICEDRIVER_SMARTNIC(16), UNRECOGNIZED(-1); /** @@ -261,6 +281,31 @@ public final class ContextOuterClass { */ public static final int DEVICEDRIVER_OC_VALUE = 11; + /** + * <code>DEVICEDRIVER_QKD = 12;</code> + */ + public static final int DEVICEDRIVER_QKD_VALUE = 12; + + /** + * <code>DEVICEDRIVER_IETF_L3VPN = 13;</code> + */ + public static final int DEVICEDRIVER_IETF_L3VPN_VALUE = 13; + + /** + * <code>DEVICEDRIVER_IETF_SLICE = 14;</code> + */ + public static final int DEVICEDRIVER_IETF_SLICE_VALUE = 14; + + /** + * <code>DEVICEDRIVER_NCE = 15;</code> + */ + public static final int DEVICEDRIVER_NCE_VALUE = 15; + + /** + * <code>DEVICEDRIVER_SMARTNIC = 16;</code> + */ + public static final int DEVICEDRIVER_SMARTNIC_VALUE = 16; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); @@ -308,6 +353,16 @@ public final class ContextOuterClass { return DEVICEDRIVER_IETF_ACTN; case 11: return DEVICEDRIVER_OC; + case 12: + return DEVICEDRIVER_QKD; + case 13: + return DEVICEDRIVER_IETF_L3VPN; + case 14: + return DEVICEDRIVER_IETF_SLICE; + case 15: + return DEVICEDRIVER_NCE; + case 16: + return DEVICEDRIVER_SMARTNIC; default: return null; } @@ -471,6 +526,141 @@ public final class ContextOuterClass { } } + /** + * Protobuf enum {@code context.LinkTypeEnum} + */ + public enum LinkTypeEnum implements com.google.protobuf.ProtocolMessageEnum { + + /** + * <code>LINKTYPE_UNKNOWN = 0;</code> + */ + LINKTYPE_UNKNOWN(0), + /** + * <code>LINKTYPE_COPPER = 1;</code> + */ + LINKTYPE_COPPER(1), + /** + * <code>LINKTYPE_FIBER = 2;</code> + */ + LINKTYPE_FIBER(2), + /** + * <code>LINKTYPE_RADIO = 3;</code> + */ + LINKTYPE_RADIO(3), + /** + * <code>LINKTYPE_VIRTUAL = 4;</code> + */ + LINKTYPE_VIRTUAL(4), + UNRECOGNIZED(-1); + + /** + * <code>LINKTYPE_UNKNOWN = 0;</code> + */ + public static final int LINKTYPE_UNKNOWN_VALUE = 0; + + /** + * <code>LINKTYPE_COPPER = 1;</code> + */ + public static final int LINKTYPE_COPPER_VALUE = 1; + + /** + * <code>LINKTYPE_FIBER = 2;</code> + */ + public static final int LINKTYPE_FIBER_VALUE = 2; + + /** + * <code>LINKTYPE_RADIO = 3;</code> + */ + public static final int LINKTYPE_RADIO_VALUE = 3; + + /** + * <code>LINKTYPE_VIRTUAL = 4;</code> + */ + public static final int LINKTYPE_VIRTUAL_VALUE = 4; + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static LinkTypeEnum valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static LinkTypeEnum forNumber(int value) { + switch(value) { + case 0: + return LINKTYPE_UNKNOWN; + case 1: + return LINKTYPE_COPPER; + case 2: + return LINKTYPE_FIBER; + case 3: + return LINKTYPE_RADIO; + case 4: + return LINKTYPE_VIRTUAL; + default: + return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap<LinkTypeEnum> internalGetValueMap() { + return internalValueMap; + } + + private static final com.google.protobuf.Internal.EnumLiteMap<LinkTypeEnum> internalValueMap = new com.google.protobuf.Internal.EnumLiteMap<LinkTypeEnum>() { + + public LinkTypeEnum findValueByNumber(int number) { + return LinkTypeEnum.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException("Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + + public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() { + return getDescriptor(); + } + + public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(3); + } + + private static final LinkTypeEnum[] VALUES = values(); + + public static LinkTypeEnum valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private LinkTypeEnum(int value) { + this.value = value; + } + } + /** * Protobuf enum {@code context.ServiceTypeEnum} */ @@ -504,6 +694,10 @@ public final class ContextOuterClass { * <code>SERVICETYPE_OPTICAL_CONNECTIVITY = 6;</code> */ SERVICETYPE_OPTICAL_CONNECTIVITY(6), + /** + * <code>SERVICETYPE_QKD = 7;</code> + */ + SERVICETYPE_QKD(7), UNRECOGNIZED(-1); /** @@ -541,6 +735,11 @@ public final class ContextOuterClass { */ public static final int SERVICETYPE_OPTICAL_CONNECTIVITY_VALUE = 6; + /** + * <code>SERVICETYPE_QKD = 7;</code> + */ + public static final int SERVICETYPE_QKD_VALUE = 7; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); @@ -578,6 +777,8 @@ public final class ContextOuterClass { return SERVICETYPE_E2E; case 6: return SERVICETYPE_OPTICAL_CONNECTIVITY; + case 7: + return SERVICETYPE_QKD; default: return null; } @@ -606,7 +807,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(3); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(4); } private static final ServiceTypeEnum[] VALUES = values(); @@ -752,7 +953,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(4); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(5); } private static final ServiceStatusEnum[] VALUES = values(); @@ -898,7 +1099,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(5); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(6); } private static final SliceStatusEnum[] VALUES = values(); @@ -1015,7 +1216,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(6); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(7); } private static final ConfigActionEnum[] VALUES = values(); @@ -1132,7 +1333,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(7); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(8); } private static final ConstraintActionEnum[] VALUES = values(); @@ -1311,7 +1512,7 @@ public final class ContextOuterClass { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return context.ContextOuterClass.getDescriptor().getEnumTypes().get(8); + return context.ContextOuterClass.getDescriptor().getEnumTypes().get(9); } private static final IsolationLevelEnum[] VALUES = values(); @@ -1363,44 +1564,6 @@ public final class ContextOuterClass { return new Empty(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Empty(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Empty_descriptor; } @@ -1425,7 +1588,7 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -1434,7 +1597,7 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -1448,7 +1611,7 @@ public final class ContextOuterClass { return super.equals(obj); } context.ContextOuterClass.Empty other = (context.ContextOuterClass.Empty) obj; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -1460,7 +1623,7 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -1558,17 +1721,10 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Empty.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override @@ -1603,36 +1759,6 @@ public final class ContextOuterClass { return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); - } - @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { if (other instanceof context.ContextOuterClass.Empty) { @@ -1646,7 +1772,7 @@ public final class ContextOuterClass { public Builder mergeFrom(context.ContextOuterClass.Empty other) { if (other == context.ContextOuterClass.Empty.getDefaultInstance()) return this; - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -1658,17 +1784,35 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Empty parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Empty) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -1699,7 +1843,17 @@ public final class ContextOuterClass { @java.lang.Override public Empty parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Empty(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -1757,50 +1911,6 @@ public final class ContextOuterClass { return new Uuid(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Uuid(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - uuid_ = s; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Uuid_descriptor; } @@ -1812,7 +1922,8 @@ public final class ContextOuterClass { public static final int UUID_FIELD_NUMBER = 1; - private volatile java.lang.Object uuid_; + @SuppressWarnings("serial") + private volatile java.lang.Object uuid_ = ""; /** * <code>string uuid = 1;</code> @@ -1862,10 +1973,10 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getUuidBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uuid_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uuid_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -1874,10 +1985,10 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!getUuidBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(uuid_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uuid_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -1893,7 +2004,7 @@ public final class ContextOuterClass { context.ContextOuterClass.Uuid other = (context.ContextOuterClass.Uuid) obj; if (!getUuid().equals(other.getUuid())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -1907,7 +2018,7 @@ public final class ContextOuterClass { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + UUID_FIELD_NUMBER; hash = (53 * hash) + getUuid().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -2001,22 +2112,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Uuid.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; uuid_ = ""; return this; } @@ -2043,39 +2148,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Uuid buildPartial() { context.ContextOuterClass.Uuid result = new context.ContextOuterClass.Uuid(this); - result.uuid_ = uuid_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Uuid result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.uuid_ = uuid_; + } } @java.lang.Override @@ -2093,9 +2177,10 @@ public final class ContextOuterClass { return this; if (!other.getUuid().isEmpty()) { uuid_ = other.uuid_; + bitField0_ |= 0x00000001; onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -2107,20 +2192,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Uuid parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + uuid_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Uuid) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private java.lang.Object uuid_ = ""; /** @@ -2164,6 +2276,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } uuid_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -2174,6 +2287,7 @@ public final class ContextOuterClass { */ public Builder clearUuid() { uuid_ = getDefaultInstance().getUuid(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } @@ -2189,6 +2303,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); uuid_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -2220,7 +2335,17 @@ public final class ContextOuterClass { @java.lang.Override public Uuid parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Uuid(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -2271,49 +2396,6 @@ public final class ContextOuterClass { return new Timestamp(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Timestamp(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 9: - { - timestamp_ = input.readDouble(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Timestamp_descriptor; } @@ -2325,7 +2407,7 @@ public final class ContextOuterClass { public static final int TIMESTAMP_FIELD_NUMBER = 1; - private double timestamp_; + private double timestamp_ = 0D; /** * <code>double timestamp = 1;</code> @@ -2351,10 +2433,10 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (timestamp_ != 0D) { + if (java.lang.Double.doubleToRawLongBits(timestamp_) != 0) { output.writeDouble(1, timestamp_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -2363,10 +2445,10 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (timestamp_ != 0D) { + if (java.lang.Double.doubleToRawLongBits(timestamp_) != 0) { size += com.google.protobuf.CodedOutputStream.computeDoubleSize(1, timestamp_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -2382,7 +2464,7 @@ public final class ContextOuterClass { context.ContextOuterClass.Timestamp other = (context.ContextOuterClass.Timestamp) obj; if (java.lang.Double.doubleToLongBits(getTimestamp()) != java.lang.Double.doubleToLongBits(other.getTimestamp())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -2396,7 +2478,7 @@ public final class ContextOuterClass { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashLong(java.lang.Double.doubleToLongBits(getTimestamp())); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -2490,22 +2572,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Timestamp.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; timestamp_ = 0D; return this; } @@ -2532,39 +2608,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Timestamp buildPartial() { context.ContextOuterClass.Timestamp result = new context.ContextOuterClass.Timestamp(this); - result.timestamp_ = timestamp_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Timestamp result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timestamp_ = timestamp_; + } } @java.lang.Override @@ -2583,7 +2638,7 @@ public final class ContextOuterClass { if (other.getTimestamp() != 0D) { setTimestamp(other.getTimestamp()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -2595,20 +2650,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Timestamp parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 9: + { + timestamp_ = input.readDouble(); + bitField0_ |= 0x00000001; + break; + } + // case 9 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Timestamp) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private double timestamp_; /** @@ -2627,6 +2709,7 @@ public final class ContextOuterClass { */ public Builder setTimestamp(double value) { timestamp_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -2636,6 +2719,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000001); timestamp_ = 0D; onChanged(); return this; @@ -2668,7 +2752,17 @@ public final class ContextOuterClass { @java.lang.Override public Timestamp parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Timestamp(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -2743,63 +2837,6 @@ public final class ContextOuterClass { return new Event(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Event(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Timestamp.Builder subBuilder = null; - if (timestamp_ != null) { - subBuilder = timestamp_.toBuilder(); - } - timestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(timestamp_); - timestamp_ = subBuilder.buildPartial(); - } - break; - } - case 16: - { - int rawValue = input.readEnum(); - eventType_ = rawValue; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Event_descriptor; } @@ -2836,12 +2873,12 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { - return getTimestamp(); + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; } public static final int EVENT_TYPE_FIELD_NUMBER = 2; - private int eventType_; + private int eventType_ = 0; /** * <code>.context.EventTypeEnum event_type = 2;</code> @@ -2858,8 +2895,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EventTypeEnum getEventType() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.EventTypeEnum result = context.ContextOuterClass.EventTypeEnum.valueOf(eventType_); + context.ContextOuterClass.EventTypeEnum result = context.ContextOuterClass.EventTypeEnum.forNumber(eventType_); return result == null ? context.ContextOuterClass.EventTypeEnum.UNRECOGNIZED : result; } @@ -2884,7 +2920,7 @@ public final class ContextOuterClass { if (eventType_ != context.ContextOuterClass.EventTypeEnum.EVENTTYPE_UNDEFINED.getNumber()) { output.writeEnum(2, eventType_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -2899,7 +2935,7 @@ public final class ContextOuterClass { if (eventType_ != context.ContextOuterClass.EventTypeEnum.EVENTTYPE_UNDEFINED.getNumber()) { size += com.google.protobuf.CodedOutputStream.computeEnumSize(2, eventType_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -2921,7 +2957,7 @@ public final class ContextOuterClass { } if (eventType_ != other.eventType_) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -2939,7 +2975,7 @@ public final class ContextOuterClass { } hash = (37 * hash) + EVENT_TYPE_FIELD_NUMBER; hash = (53 * hash) + eventType_; - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -3033,26 +3069,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Event.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (timestampBuilder_ == null) { - timestamp_ = null; - } else { - timestamp_ = null; + bitField0_ = 0; + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); timestampBuilder_ = null; } eventType_ = 0; @@ -3081,44 +3110,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Event buildPartial() { context.ContextOuterClass.Event result = new context.ContextOuterClass.Event(this); - if (timestampBuilder_ == null) { - result.timestamp_ = timestamp_; - } else { - result.timestamp_ = timestampBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } - result.eventType_ = eventType_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Event result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.eventType_ = eventType_; + } } @java.lang.Override @@ -3140,7 +3146,7 @@ public final class ContextOuterClass { if (other.eventType_ != 0) { setEventTypeValue(other.getEventTypeValue()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -3152,20 +3158,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Event parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + eventType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Event) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Timestamp timestamp_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Timestamp, context.ContextOuterClass.Timestamp.Builder, context.ContextOuterClass.TimestampOrBuilder> timestampBuilder_; @@ -3175,7 +3215,7 @@ public final class ContextOuterClass { * @return Whether the timestamp field is set. */ public boolean hasTimestamp() { - return timestampBuilder_ != null || timestamp_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -3199,10 +3239,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } timestamp_ = value; - onChanged(); } else { timestampBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -3212,10 +3253,11 @@ public final class ContextOuterClass { public Builder setTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) { if (timestampBuilder_ == null) { timestamp_ = builderForValue.build(); - onChanged(); } else { timestampBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -3224,15 +3266,16 @@ public final class ContextOuterClass { */ public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) { if (timestampBuilder_ == null) { - if (timestamp_ != null) { - timestamp_ = context.ContextOuterClass.Timestamp.newBuilder(timestamp_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && timestamp_ != null && timestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) { + getTimestampBuilder().mergeFrom(value); } else { timestamp_ = value; } - onChanged(); } else { timestampBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -3240,13 +3283,13 @@ public final class ContextOuterClass { * <code>.context.Timestamp timestamp = 1;</code> */ public Builder clearTimestamp() { - if (timestampBuilder_ == null) { - timestamp_ = null; - onChanged(); - } else { - timestamp_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); timestampBuilder_ = null; } + onChanged(); return this; } @@ -3254,6 +3297,7 @@ public final class ContextOuterClass { * <code>.context.Timestamp timestamp = 1;</code> */ public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getTimestampFieldBuilder().getBuilder(); } @@ -3298,6 +3342,7 @@ public final class ContextOuterClass { */ public Builder setEventTypeValue(int value) { eventType_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -3308,8 +3353,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EventTypeEnum getEventType() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.EventTypeEnum result = context.ContextOuterClass.EventTypeEnum.valueOf(eventType_); + context.ContextOuterClass.EventTypeEnum result = context.ContextOuterClass.EventTypeEnum.forNumber(eventType_); return result == null ? context.ContextOuterClass.EventTypeEnum.UNRECOGNIZED : result; } @@ -3322,6 +3366,7 @@ public final class ContextOuterClass { if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000002; eventType_ = value.getNumber(); onChanged(); return this; @@ -3332,6 +3377,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearEventType() { + bitField0_ = (bitField0_ & ~0x00000002); eventType_ = 0; onChanged(); return this; @@ -3364,7 +3410,17 @@ public final class ContextOuterClass { @java.lang.Override public Event parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Event(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -3430,57 +3486,6 @@ public final class ContextOuterClass { return new ContextId(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ContextId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (contextUuid_ != null) { - subBuilder = contextUuid_.toBuilder(); - } - contextUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextUuid_); - contextUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ContextId_descriptor; } @@ -3517,7 +3522,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.UuidOrBuilder getContextUuidOrBuilder() { - return getContextUuid(); + return contextUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : contextUuid_; } private byte memoizedIsInitialized = -1; @@ -3538,7 +3543,7 @@ public final class ContextOuterClass { if (contextUuid_ != null) { output.writeMessage(1, getContextUuid()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -3550,7 +3555,7 @@ public final class ContextOuterClass { if (contextUuid_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextUuid()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -3570,7 +3575,7 @@ public final class ContextOuterClass { if (!getContextUuid().equals(other.getContextUuid())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -3586,7 +3591,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONTEXT_UUID_FIELD_NUMBER; hash = (53 * hash) + getContextUuid().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -3684,26 +3689,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ContextId.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (contextUuidBuilder_ == null) { - contextUuid_ = null; - } else { - contextUuid_ = null; + bitField0_ = 0; + contextUuid_ = null; + if (contextUuidBuilder_ != null) { + contextUuidBuilder_.dispose(); contextUuidBuilder_ = null; } return this; @@ -3731,43 +3729,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ContextId buildPartial() { context.ContextOuterClass.ContextId result = new context.ContextOuterClass.ContextId(this); - if (contextUuidBuilder_ == null) { - result.contextUuid_ = contextUuid_; - } else { - result.contextUuid_ = contextUuidBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ContextId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextUuid_ = contextUuidBuilder_ == null ? contextUuid_ : contextUuidBuilder_.build(); + } } @java.lang.Override @@ -3786,7 +3759,7 @@ public final class ContextOuterClass { if (other.hasContextUuid()) { mergeContextUuid(other.getContextUuid()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -3798,20 +3771,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ContextId parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ContextId) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Uuid contextUuid_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> contextUuidBuilder_; @@ -3821,7 +3821,7 @@ public final class ContextOuterClass { * @return Whether the contextUuid field is set. */ public boolean hasContextUuid() { - return contextUuidBuilder_ != null || contextUuid_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -3845,10 +3845,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } contextUuid_ = value; - onChanged(); } else { contextUuidBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -3858,10 +3859,11 @@ public final class ContextOuterClass { public Builder setContextUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { if (contextUuidBuilder_ == null) { contextUuid_ = builderForValue.build(); - onChanged(); } else { contextUuidBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -3870,15 +3872,16 @@ public final class ContextOuterClass { */ public Builder mergeContextUuid(context.ContextOuterClass.Uuid value) { if (contextUuidBuilder_ == null) { - if (contextUuid_ != null) { - contextUuid_ = context.ContextOuterClass.Uuid.newBuilder(contextUuid_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && contextUuid_ != null && contextUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getContextUuidBuilder().mergeFrom(value); } else { contextUuid_ = value; } - onChanged(); } else { contextUuidBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -3886,13 +3889,13 @@ public final class ContextOuterClass { * <code>.context.Uuid context_uuid = 1;</code> */ public Builder clearContextUuid() { - if (contextUuidBuilder_ == null) { - contextUuid_ = null; - onChanged(); - } else { - contextUuid_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + contextUuid_ = null; + if (contextUuidBuilder_ != null) { + contextUuidBuilder_.dispose(); contextUuidBuilder_ = null; } + onChanged(); return this; } @@ -3900,6 +3903,7 @@ public final class ContextOuterClass { * <code>.context.Uuid context_uuid = 1;</code> */ public context.ContextOuterClass.Uuid.Builder getContextUuidBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getContextUuidFieldBuilder().getBuilder(); } @@ -3953,7 +3957,17 @@ public final class ContextOuterClass { @java.lang.Override public ContextId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ContextId(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -4123,113 +4137,6 @@ public final class ContextOuterClass { return new Context(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Context(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.ContextId.Builder subBuilder = null; - if (contextId_ != null) { - subBuilder = contextId_.toBuilder(); - } - contextId_ = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextId_); - contextId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 26: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - topologyIds_ = new java.util.ArrayList<context.ContextOuterClass.TopologyId>(); - mutable_bitField0_ |= 0x00000001; - } - topologyIds_.add(input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry)); - break; - } - case 34: - { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - serviceIds_ = new java.util.ArrayList<context.ContextOuterClass.ServiceId>(); - mutable_bitField0_ |= 0x00000002; - } - serviceIds_.add(input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry)); - break; - } - case 42: - { - if (!((mutable_bitField0_ & 0x00000004) != 0)) { - sliceIds_ = new java.util.ArrayList<context.ContextOuterClass.SliceId>(); - mutable_bitField0_ |= 0x00000004; - } - sliceIds_.add(input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry)); - break; - } - case 50: - { - context.ContextOuterClass.TeraFlowController.Builder subBuilder = null; - if (controller_ != null) { - subBuilder = controller_.toBuilder(); - } - controller_ = input.readMessage(context.ContextOuterClass.TeraFlowController.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(controller_); - controller_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - serviceIds_ = java.util.Collections.unmodifiableList(serviceIds_); - } - if (((mutable_bitField0_ & 0x00000004) != 0)) { - sliceIds_ = java.util.Collections.unmodifiableList(sliceIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Context_descriptor; } @@ -4266,12 +4173,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return getContextId(); + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * <code>string name = 2;</code> @@ -4308,6 +4216,7 @@ public final class ContextOuterClass { public static final int TOPOLOGY_IDS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.TopologyId> topologyIds_; /** @@ -4352,6 +4261,7 @@ public final class ContextOuterClass { public static final int SERVICE_IDS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.ServiceId> serviceIds_; /** @@ -4396,6 +4306,7 @@ public final class ContextOuterClass { public static final int SLICE_IDS_FIELD_NUMBER = 5; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.SliceId> sliceIds_; /** @@ -4465,7 +4376,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.TeraFlowControllerOrBuilder getControllerOrBuilder() { - return getController(); + return controller_ == null ? context.ContextOuterClass.TeraFlowController.getDefaultInstance() : controller_; } private byte memoizedIsInitialized = -1; @@ -4486,7 +4397,7 @@ public final class ContextOuterClass { if (contextId_ != null) { output.writeMessage(1, getContextId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } for (int i = 0; i < topologyIds_.size(); i++) { @@ -4501,7 +4412,7 @@ public final class ContextOuterClass { if (controller_ != null) { output.writeMessage(6, getController()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -4513,7 +4424,7 @@ public final class ContextOuterClass { if (contextId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } for (int i = 0; i < topologyIds_.size(); i++) { @@ -4528,7 +4439,7 @@ public final class ContextOuterClass { if (controller_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getController()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -4562,7 +4473,7 @@ public final class ContextOuterClass { if (!getController().equals(other.getController())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -4596,7 +4507,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONTROLLER_FIELD_NUMBER; hash = (53 * hash) + getController().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -4690,54 +4601,46 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Context.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getTopologyIdsFieldBuilder(); - getServiceIdsFieldBuilder(); - getSliceIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); - if (contextIdBuilder_ == null) { - contextId_ = null; - } else { - contextId_ = null; + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } name_ = ""; if (topologyIdsBuilder_ == null) { topologyIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + topologyIds_ = null; topologyIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000004); if (serviceIdsBuilder_ == null) { serviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); } else { + serviceIds_ = null; serviceIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000008); if (sliceIdsBuilder_ == null) { sliceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); } else { + sliceIds_ = null; sliceIdsBuilder_.clear(); } - if (controllerBuilder_ == null) { - controller_ = null; - } else { - controller_ = null; + bitField0_ = (bitField0_ & ~0x00000010); + controller_ = null; + if (controllerBuilder_ != null) { + controllerBuilder_.dispose(); controllerBuilder_ = null; } return this; @@ -4765,77 +4668,55 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Context buildPartial() { context.ContextOuterClass.Context result = new context.ContextOuterClass.Context(this); - int from_bitField0_ = bitField0_; - if (contextIdBuilder_ == null) { - result.contextId_ = contextId_; - } else { - result.contextId_ = contextIdBuilder_.build(); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } - result.name_ = name_; + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Context result) { if (topologyIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000004) != 0)) { topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); } result.topologyIds_ = topologyIds_; } else { result.topologyIds_ = topologyIdsBuilder_.build(); } if (serviceIdsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { + if (((bitField0_ & 0x00000008) != 0)) { serviceIds_ = java.util.Collections.unmodifiableList(serviceIds_); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); } result.serviceIds_ = serviceIds_; } else { result.serviceIds_ = serviceIdsBuilder_.build(); } if (sliceIdsBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0)) { + if (((bitField0_ & 0x00000010) != 0)) { sliceIds_ = java.util.Collections.unmodifiableList(sliceIds_); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); } result.sliceIds_ = sliceIds_; } else { result.sliceIds_ = sliceIdsBuilder_.build(); } - if (controllerBuilder_ == null) { - result.controller_ = controller_; - } else { - result.controller_ = controllerBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Context result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.controller_ = controllerBuilder_ == null ? controller_ : controllerBuilder_.build(); + } } @java.lang.Override @@ -4856,13 +4737,14 @@ public final class ContextOuterClass { } if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000002; onChanged(); } if (topologyIdsBuilder_ == null) { if (!other.topologyIds_.isEmpty()) { if (topologyIds_.isEmpty()) { topologyIds_ = other.topologyIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); } else { ensureTopologyIdsIsMutable(); topologyIds_.addAll(other.topologyIds_); @@ -4875,7 +4757,7 @@ public final class ContextOuterClass { topologyIdsBuilder_.dispose(); topologyIdsBuilder_ = null; topologyIds_ = other.topologyIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); topologyIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getTopologyIdsFieldBuilder() : null; } else { topologyIdsBuilder_.addAllMessages(other.topologyIds_); @@ -4886,7 +4768,7 @@ public final class ContextOuterClass { if (!other.serviceIds_.isEmpty()) { if (serviceIds_.isEmpty()) { serviceIds_ = other.serviceIds_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensureServiceIdsIsMutable(); serviceIds_.addAll(other.serviceIds_); @@ -4899,7 +4781,7 @@ public final class ContextOuterClass { serviceIdsBuilder_.dispose(); serviceIdsBuilder_ = null; serviceIds_ = other.serviceIds_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); serviceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getServiceIdsFieldBuilder() : null; } else { serviceIdsBuilder_.addAllMessages(other.serviceIds_); @@ -4910,7 +4792,7 @@ public final class ContextOuterClass { if (!other.sliceIds_.isEmpty()) { if (sliceIds_.isEmpty()) { sliceIds_ = other.sliceIds_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); } else { ensureSliceIdsIsMutable(); sliceIds_.addAll(other.sliceIds_); @@ -4923,7 +4805,7 @@ public final class ContextOuterClass { sliceIdsBuilder_.dispose(); sliceIdsBuilder_ = null; sliceIds_ = other.sliceIds_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); sliceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceIdsFieldBuilder() : null; } else { sliceIdsBuilder_.addAllMessages(other.sliceIds_); @@ -4933,7 +4815,7 @@ public final class ContextOuterClass { if (other.hasController()) { mergeController(other.getController()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -4945,17 +4827,92 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Context parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.TopologyId m = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.add(m); + } else { + topologyIdsBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.ServiceId m = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.add(m); + } else { + serviceIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + context.ContextOuterClass.SliceId m = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry); + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.add(m); + } else { + sliceIdsBuilder_.addMessage(m); + } + break; + } + // case 42 + case 50: + { + input.readMessage(getControllerFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000020; + break; + } + // case 50 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Context) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -4970,7 +4927,7 @@ public final class ContextOuterClass { * @return Whether the contextId field is set. */ public boolean hasContextId() { - return contextIdBuilder_ != null || contextId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -4994,10 +4951,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } contextId_ = value; - onChanged(); } else { contextIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -5007,10 +4965,11 @@ public final class ContextOuterClass { public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { if (contextIdBuilder_ == null) { contextId_ = builderForValue.build(); - onChanged(); } else { contextIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -5019,15 +4978,16 @@ public final class ContextOuterClass { */ public Builder mergeContextId(context.ContextOuterClass.ContextId value) { if (contextIdBuilder_ == null) { - if (contextId_ != null) { - contextId_ = context.ContextOuterClass.ContextId.newBuilder(contextId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); } else { contextId_ = value; } - onChanged(); } else { contextIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -5035,13 +4995,13 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 1;</code> */ public Builder clearContextId() { - if (contextIdBuilder_ == null) { - contextId_ = null; - onChanged(); - } else { - contextId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } + onChanged(); return this; } @@ -5049,6 +5009,7 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 1;</code> */ public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getContextIdFieldBuilder().getBuilder(); } @@ -5118,6 +5079,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -5128,6 +5090,7 @@ public final class ContextOuterClass { */ public Builder clearName() { name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -5143,6 +5106,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -5150,9 +5114,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.TopologyId> topologyIds_ = java.util.Collections.emptyList(); private void ensureTopologyIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000004) != 0)) { topologyIds_ = new java.util.ArrayList<context.ContextOuterClass.TopologyId>(topologyIds_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000004; } } @@ -5304,7 +5268,7 @@ public final class ContextOuterClass { public Builder clearTopologyIds() { if (topologyIdsBuilder_ == null) { topologyIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { topologyIdsBuilder_.clear(); @@ -5378,7 +5342,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> getTopologyIdsFieldBuilder() { if (topologyIdsBuilder_ == null) { - topologyIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>(topologyIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + topologyIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder>(topologyIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); topologyIds_ = null; } return topologyIdsBuilder_; @@ -5387,9 +5351,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.ServiceId> serviceIds_ = java.util.Collections.emptyList(); private void ensureServiceIdsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!((bitField0_ & 0x00000008) != 0)) { serviceIds_ = new java.util.ArrayList<context.ContextOuterClass.ServiceId>(serviceIds_); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000008; } } @@ -5541,7 +5505,7 @@ public final class ContextOuterClass { public Builder clearServiceIds() { if (serviceIdsBuilder_ == null) { serviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { serviceIdsBuilder_.clear(); @@ -5615,7 +5579,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> getServiceIdsFieldBuilder() { if (serviceIdsBuilder_ == null) { - serviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(serviceIds_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); + serviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(serviceIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); serviceIds_ = null; } return serviceIdsBuilder_; @@ -5624,9 +5588,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.SliceId> sliceIds_ = java.util.Collections.emptyList(); private void ensureSliceIdsIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { + if (!((bitField0_ & 0x00000010) != 0)) { sliceIds_ = new java.util.ArrayList<context.ContextOuterClass.SliceId>(sliceIds_); - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000010; } } @@ -5778,7 +5742,7 @@ public final class ContextOuterClass { public Builder clearSliceIds() { if (sliceIdsBuilder_ == null) { sliceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { sliceIdsBuilder_.clear(); @@ -5852,7 +5816,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder> getSliceIdsFieldBuilder() { if (sliceIdsBuilder_ == null) { - sliceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder>(sliceIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + sliceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder>(sliceIds_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); sliceIds_ = null; } return sliceIdsBuilder_; @@ -5867,7 +5831,7 @@ public final class ContextOuterClass { * @return Whether the controller field is set. */ public boolean hasController() { - return controllerBuilder_ != null || controller_ != null; + return ((bitField0_ & 0x00000020) != 0); } /** @@ -5891,10 +5855,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } controller_ = value; - onChanged(); } else { controllerBuilder_.setMessage(value); } + bitField0_ |= 0x00000020; + onChanged(); return this; } @@ -5904,10 +5869,11 @@ public final class ContextOuterClass { public Builder setController(context.ContextOuterClass.TeraFlowController.Builder builderForValue) { if (controllerBuilder_ == null) { controller_ = builderForValue.build(); - onChanged(); } else { controllerBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000020; + onChanged(); return this; } @@ -5916,15 +5882,16 @@ public final class ContextOuterClass { */ public Builder mergeController(context.ContextOuterClass.TeraFlowController value) { if (controllerBuilder_ == null) { - if (controller_ != null) { - controller_ = context.ContextOuterClass.TeraFlowController.newBuilder(controller_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000020) != 0) && controller_ != null && controller_ != context.ContextOuterClass.TeraFlowController.getDefaultInstance()) { + getControllerBuilder().mergeFrom(value); } else { controller_ = value; } - onChanged(); } else { controllerBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000020; + onChanged(); return this; } @@ -5932,13 +5899,13 @@ public final class ContextOuterClass { * <code>.context.TeraFlowController controller = 6;</code> */ public Builder clearController() { - if (controllerBuilder_ == null) { - controller_ = null; - onChanged(); - } else { - controller_ = null; + bitField0_ = (bitField0_ & ~0x00000020); + controller_ = null; + if (controllerBuilder_ != null) { + controllerBuilder_.dispose(); controllerBuilder_ = null; } + onChanged(); return this; } @@ -5946,6 +5913,7 @@ public final class ContextOuterClass { * <code>.context.TeraFlowController controller = 6;</code> */ public context.ContextOuterClass.TeraFlowController.Builder getControllerBuilder() { + bitField0_ |= 0x00000020; onChanged(); return getControllerFieldBuilder().getBuilder(); } @@ -5999,7 +5967,17 @@ public final class ContextOuterClass { @java.lang.Override public Context parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Context(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -6070,57 +6048,6 @@ public final class ContextOuterClass { return new ContextIdList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ContextIdList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - contextIds_ = new java.util.ArrayList<context.ContextOuterClass.ContextId>(); - mutable_bitField0_ |= 0x00000001; - } - contextIds_.add(input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - contextIds_ = java.util.Collections.unmodifiableList(contextIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ContextIdList_descriptor; } @@ -6132,6 +6059,7 @@ public final class ContextOuterClass { public static final int CONTEXT_IDS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.ContextId> contextIds_; /** @@ -6192,7 +6120,7 @@ public final class ContextOuterClass { for (int i = 0; i < contextIds_.size(); i++) { output.writeMessage(1, contextIds_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -6204,7 +6132,7 @@ public final class ContextOuterClass { for (int i = 0; i < contextIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, contextIds_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -6220,7 +6148,7 @@ public final class ContextOuterClass { context.ContextOuterClass.ContextIdList other = (context.ContextOuterClass.ContextIdList) obj; if (!getContextIdsList().equals(other.getContextIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -6236,7 +6164,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONTEXT_IDS_FIELD_NUMBER; hash = (53 * hash) + getContextIdsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -6330,29 +6258,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ContextIdList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getContextIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (contextIdsBuilder_ == null) { contextIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + contextIds_ = null; contextIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -6378,7 +6300,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ContextIdList buildPartial() { context.ContextOuterClass.ContextIdList result = new context.ContextOuterClass.ContextIdList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ContextIdList result) { if (contextIdsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { contextIds_ = java.util.Collections.unmodifiableList(contextIds_); @@ -6388,38 +6318,10 @@ public final class ContextOuterClass { } else { result.contextIds_ = contextIdsBuilder_.build(); } - onBuilt(); - return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ContextIdList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -6459,7 +6361,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -6471,17 +6373,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ContextIdList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ContextId m = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); + if (contextIdsBuilder_ == null) { + ensureContextIdsIsMutable(); + contextIds_.add(m); + } else { + contextIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ContextIdList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -6751,7 +6683,17 @@ public final class ContextOuterClass { @java.lang.Override public ContextIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ContextIdList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -6822,57 +6764,6 @@ public final class ContextOuterClass { return new ContextList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ContextList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - contexts_ = new java.util.ArrayList<context.ContextOuterClass.Context>(); - mutable_bitField0_ |= 0x00000001; - } - contexts_.add(input.readMessage(context.ContextOuterClass.Context.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - contexts_ = java.util.Collections.unmodifiableList(contexts_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ContextList_descriptor; } @@ -6884,6 +6775,7 @@ public final class ContextOuterClass { public static final int CONTEXTS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Context> contexts_; /** @@ -6944,7 +6836,7 @@ public final class ContextOuterClass { for (int i = 0; i < contexts_.size(); i++) { output.writeMessage(1, contexts_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -6956,7 +6848,7 @@ public final class ContextOuterClass { for (int i = 0; i < contexts_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, contexts_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -6972,7 +6864,7 @@ public final class ContextOuterClass { context.ContextOuterClass.ContextList other = (context.ContextOuterClass.ContextList) obj; if (!getContextsList().equals(other.getContextsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -6988,7 +6880,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONTEXTS_FIELD_NUMBER; hash = (53 * hash) + getContextsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -7082,29 +6974,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ContextList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getContextsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (contextsBuilder_ == null) { contexts_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + contexts_ = null; contextsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -7130,7 +7016,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ContextList buildPartial() { context.ContextOuterClass.ContextList result = new context.ContextOuterClass.ContextList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ContextList result) { if (contextsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { contexts_ = java.util.Collections.unmodifiableList(contexts_); @@ -7140,38 +7034,10 @@ public final class ContextOuterClass { } else { result.contexts_ = contextsBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); } - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ContextList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -7211,7 +7077,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -7223,17 +7089,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ContextList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Context m = input.readMessage(context.ContextOuterClass.Context.parser(), extensionRegistry); + if (contextsBuilder_ == null) { + ensureContextsIsMutable(); + contexts_.add(m); + } else { + contextsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ContextList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -7503,7 +7399,17 @@ public final class ContextOuterClass { @java.lang.Override public ContextList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ContextList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -7582,70 +7488,6 @@ public final class ContextOuterClass { return new ContextEvent(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ContextEvent(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Event.Builder subBuilder = null; - if (event_ != null) { - subBuilder = event_.toBuilder(); - } - event_ = input.readMessage(context.ContextOuterClass.Event.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(event_); - event_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.ContextId.Builder subBuilder = null; - if (contextId_ != null) { - subBuilder = contextId_.toBuilder(); - } - contextId_ = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextId_); - contextId_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ContextEvent_descriptor; } @@ -7682,7 +7524,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - return getEvent(); + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } public static final int CONTEXT_ID_FIELD_NUMBER = 2; @@ -7712,7 +7554,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return getContextId(); + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } private byte memoizedIsInitialized = -1; @@ -7736,7 +7578,7 @@ public final class ContextOuterClass { if (contextId_ != null) { output.writeMessage(2, getContextId()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -7751,7 +7593,7 @@ public final class ContextOuterClass { if (contextId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getContextId()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -7777,7 +7619,7 @@ public final class ContextOuterClass { if (!getContextId().equals(other.getContextId())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -7797,7 +7639,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; hash = (53 * hash) + getContextId().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -7891,32 +7733,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ContextEvent.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (eventBuilder_ == null) { - event_ = null; - } else { - event_ = null; + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } - if (contextIdBuilder_ == null) { - contextId_ = null; - } else { - contextId_ = null; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } return this; @@ -7944,48 +7778,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ContextEvent buildPartial() { context.ContextOuterClass.ContextEvent result = new context.ContextOuterClass.ContextEvent(this); - if (eventBuilder_ == null) { - result.event_ = event_; - } else { - result.event_ = eventBuilder_.build(); - } - if (contextIdBuilder_ == null) { - result.contextId_ = contextId_; - } else { - result.contextId_ = contextIdBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ContextEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } } @java.lang.Override @@ -8007,7 +7814,7 @@ public final class ContextOuterClass { if (other.hasContextId()) { mergeContextId(other.getContextId()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -8019,20 +7826,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ContextEvent parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ContextEvent) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Event event_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; @@ -8042,7 +7883,7 @@ public final class ContextOuterClass { * @return Whether the event field is set. */ public boolean hasEvent() { - return eventBuilder_ != null || event_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -8066,10 +7907,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } event_ = value; - onChanged(); } else { eventBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -8079,10 +7921,11 @@ public final class ContextOuterClass { public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { if (eventBuilder_ == null) { event_ = builderForValue.build(); - onChanged(); } else { eventBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -8091,15 +7934,16 @@ public final class ContextOuterClass { */ public Builder mergeEvent(context.ContextOuterClass.Event value) { if (eventBuilder_ == null) { - if (event_ != null) { - event_ = context.ContextOuterClass.Event.newBuilder(event_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); } else { event_ = value; } - onChanged(); } else { eventBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -8107,13 +7951,13 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public Builder clearEvent() { - if (eventBuilder_ == null) { - event_ = null; - onChanged(); - } else { - event_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } + onChanged(); return this; } @@ -8121,6 +7965,7 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEventFieldBuilder().getBuilder(); } @@ -8156,7 +8001,7 @@ public final class ContextOuterClass { * @return Whether the contextId field is set. */ public boolean hasContextId() { - return contextIdBuilder_ != null || contextId_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -8180,10 +8025,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } contextId_ = value; - onChanged(); } else { contextIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -8193,10 +8039,11 @@ public final class ContextOuterClass { public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { if (contextIdBuilder_ == null) { contextId_ = builderForValue.build(); - onChanged(); } else { contextIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -8205,15 +8052,16 @@ public final class ContextOuterClass { */ public Builder mergeContextId(context.ContextOuterClass.ContextId value) { if (contextIdBuilder_ == null) { - if (contextId_ != null) { - contextId_ = context.ContextOuterClass.ContextId.newBuilder(contextId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); } else { contextId_ = value; } - onChanged(); } else { contextIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -8221,13 +8069,13 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 2;</code> */ public Builder clearContextId() { - if (contextIdBuilder_ == null) { - contextId_ = null; - onChanged(); - } else { - contextId_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } + onChanged(); return this; } @@ -8235,6 +8083,7 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 2;</code> */ public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getContextIdFieldBuilder().getBuilder(); } @@ -8288,7 +8137,17 @@ public final class ContextOuterClass { @java.lang.Override public ContextEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ContextEvent(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -8371,70 +8230,6 @@ public final class ContextOuterClass { return new TopologyId(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private TopologyId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.ContextId.Builder subBuilder = null; - if (contextId_ != null) { - subBuilder = contextId_.toBuilder(); - } - contextId_ = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextId_); - contextId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (topologyUuid_ != null) { - subBuilder = topologyUuid_.toBuilder(); - } - topologyUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(topologyUuid_); - topologyUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_TopologyId_descriptor; } @@ -8471,7 +8266,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return getContextId(); + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } public static final int TOPOLOGY_UUID_FIELD_NUMBER = 2; @@ -8501,7 +8296,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.UuidOrBuilder getTopologyUuidOrBuilder() { - return getTopologyUuid(); + return topologyUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : topologyUuid_; } private byte memoizedIsInitialized = -1; @@ -8525,7 +8320,7 @@ public final class ContextOuterClass { if (topologyUuid_ != null) { output.writeMessage(2, getTopologyUuid()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -8540,7 +8335,7 @@ public final class ContextOuterClass { if (topologyUuid_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTopologyUuid()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -8566,7 +8361,7 @@ public final class ContextOuterClass { if (!getTopologyUuid().equals(other.getTopologyUuid())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -8586,7 +8381,7 @@ public final class ContextOuterClass { hash = (37 * hash) + TOPOLOGY_UUID_FIELD_NUMBER; hash = (53 * hash) + getTopologyUuid().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -8684,32 +8479,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.TopologyId.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (contextIdBuilder_ == null) { - contextId_ = null; - } else { - contextId_ = null; + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } - if (topologyUuidBuilder_ == null) { - topologyUuid_ = null; - } else { - topologyUuid_ = null; + topologyUuid_ = null; + if (topologyUuidBuilder_ != null) { + topologyUuidBuilder_.dispose(); topologyUuidBuilder_ = null; } return this; @@ -8737,48 +8524,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.TopologyId buildPartial() { context.ContextOuterClass.TopologyId result = new context.ContextOuterClass.TopologyId(this); - if (contextIdBuilder_ == null) { - result.contextId_ = contextId_; - } else { - result.contextId_ = contextIdBuilder_.build(); - } - if (topologyUuidBuilder_ == null) { - result.topologyUuid_ = topologyUuid_; - } else { - result.topologyUuid_ = topologyUuidBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.TopologyId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.topologyUuid_ = topologyUuidBuilder_ == null ? topologyUuid_ : topologyUuidBuilder_.build(); + } } @java.lang.Override @@ -8800,7 +8560,7 @@ public final class ContextOuterClass { if (other.hasTopologyUuid()) { mergeTopologyUuid(other.getTopologyUuid()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -8812,20 +8572,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.TopologyId parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getTopologyUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TopologyId) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.ContextId contextId_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; @@ -8835,7 +8629,7 @@ public final class ContextOuterClass { * @return Whether the contextId field is set. */ public boolean hasContextId() { - return contextIdBuilder_ != null || contextId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -8859,10 +8653,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } contextId_ = value; - onChanged(); } else { contextIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -8872,10 +8667,11 @@ public final class ContextOuterClass { public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { if (contextIdBuilder_ == null) { contextId_ = builderForValue.build(); - onChanged(); } else { contextIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -8884,15 +8680,16 @@ public final class ContextOuterClass { */ public Builder mergeContextId(context.ContextOuterClass.ContextId value) { if (contextIdBuilder_ == null) { - if (contextId_ != null) { - contextId_ = context.ContextOuterClass.ContextId.newBuilder(contextId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); } else { contextId_ = value; } - onChanged(); } else { contextIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -8900,13 +8697,13 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 1;</code> */ public Builder clearContextId() { - if (contextIdBuilder_ == null) { - contextId_ = null; - onChanged(); - } else { - contextId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } + onChanged(); return this; } @@ -8914,6 +8711,7 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 1;</code> */ public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getContextIdFieldBuilder().getBuilder(); } @@ -8949,7 +8747,7 @@ public final class ContextOuterClass { * @return Whether the topologyUuid field is set. */ public boolean hasTopologyUuid() { - return topologyUuidBuilder_ != null || topologyUuid_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -8973,10 +8771,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } topologyUuid_ = value; - onChanged(); } else { topologyUuidBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -8986,10 +8785,11 @@ public final class ContextOuterClass { public Builder setTopologyUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { if (topologyUuidBuilder_ == null) { topologyUuid_ = builderForValue.build(); - onChanged(); } else { topologyUuidBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -8998,15 +8798,16 @@ public final class ContextOuterClass { */ public Builder mergeTopologyUuid(context.ContextOuterClass.Uuid value) { if (topologyUuidBuilder_ == null) { - if (topologyUuid_ != null) { - topologyUuid_ = context.ContextOuterClass.Uuid.newBuilder(topologyUuid_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && topologyUuid_ != null && topologyUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getTopologyUuidBuilder().mergeFrom(value); } else { topologyUuid_ = value; } - onChanged(); } else { topologyUuidBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -9014,13 +8815,13 @@ public final class ContextOuterClass { * <code>.context.Uuid topology_uuid = 2;</code> */ public Builder clearTopologyUuid() { - if (topologyUuidBuilder_ == null) { - topologyUuid_ = null; - onChanged(); - } else { - topologyUuid_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + topologyUuid_ = null; + if (topologyUuidBuilder_ != null) { + topologyUuidBuilder_.dispose(); topologyUuidBuilder_ = null; } + onChanged(); return this; } @@ -9028,6 +8829,7 @@ public final class ContextOuterClass { * <code>.context.Uuid topology_uuid = 2;</code> */ public context.ContextOuterClass.Uuid.Builder getTopologyUuidBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getTopologyUuidFieldBuilder().getBuilder(); } @@ -9081,7 +8883,17 @@ public final class ContextOuterClass { @java.lang.Override public TopologyId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new TopologyId(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -9181,6 +8993,31 @@ public final class ContextOuterClass { * <code>repeated .context.LinkId link_ids = 4;</code> */ context.ContextOuterClass.LinkIdOrBuilder getLinkIdsOrBuilder(int index); + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + java.util.List<context.ContextOuterClass.LinkId> getOpticalLinkIdsList(); + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + context.ContextOuterClass.LinkId getOpticalLinkIds(int index); + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + int getOpticalLinkIdsCount(); + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + java.util.List<? extends context.ContextOuterClass.LinkIdOrBuilder> getOpticalLinkIdsOrBuilderList(); + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + context.ContextOuterClass.LinkIdOrBuilder getOpticalLinkIdsOrBuilder(int index); } /** @@ -9200,6 +9037,7 @@ public final class ContextOuterClass { name_ = ""; deviceIds_ = java.util.Collections.emptyList(); linkIds_ = java.util.Collections.emptyList(); + opticalLinkIds_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -9208,88 +9046,6 @@ public final class ContextOuterClass { return new Topology(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Topology(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.TopologyId.Builder subBuilder = null; - if (topologyId_ != null) { - subBuilder = topologyId_.toBuilder(); - } - topologyId_ = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(topologyId_); - topologyId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 26: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - deviceIds_ = new java.util.ArrayList<context.ContextOuterClass.DeviceId>(); - mutable_bitField0_ |= 0x00000001; - } - deviceIds_.add(input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry)); - break; - } - case 34: - { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - linkIds_ = new java.util.ArrayList<context.ContextOuterClass.LinkId>(); - mutable_bitField0_ |= 0x00000002; - } - linkIds_.add(input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - linkIds_ = java.util.Collections.unmodifiableList(linkIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Topology_descriptor; } @@ -9326,12 +9082,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { - return getTopologyId(); + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; } public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * <code>string name = 2;</code> @@ -9368,6 +9125,7 @@ public final class ContextOuterClass { public static final int DEVICE_IDS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.DeviceId> deviceIds_; /** @@ -9412,6 +9170,7 @@ public final class ContextOuterClass { public static final int LINK_IDS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.LinkId> linkIds_; /** @@ -9454,6 +9213,51 @@ public final class ContextOuterClass { return linkIds_.get(index); } + public static final int OPTICAL_LINK_IDS_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private java.util.List<context.ContextOuterClass.LinkId> opticalLinkIds_; + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + @java.lang.Override + public java.util.List<context.ContextOuterClass.LinkId> getOpticalLinkIdsList() { + return opticalLinkIds_; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + @java.lang.Override + public java.util.List<? extends context.ContextOuterClass.LinkIdOrBuilder> getOpticalLinkIdsOrBuilderList() { + return opticalLinkIds_; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + @java.lang.Override + public int getOpticalLinkIdsCount() { + return opticalLinkIds_.size(); + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.LinkId getOpticalLinkIds(int index) { + return opticalLinkIds_.get(index); + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.LinkIdOrBuilder getOpticalLinkIdsOrBuilder(int index) { + return opticalLinkIds_.get(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -9472,7 +9276,7 @@ public final class ContextOuterClass { if (topologyId_ != null) { output.writeMessage(1, getTopologyId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } for (int i = 0; i < deviceIds_.size(); i++) { @@ -9481,7 +9285,10 @@ public final class ContextOuterClass { for (int i = 0; i < linkIds_.size(); i++) { output.writeMessage(4, linkIds_.get(i)); } - unknownFields.writeTo(output); + for (int i = 0; i < opticalLinkIds_.size(); i++) { + output.writeMessage(5, opticalLinkIds_.get(i)); + } + getUnknownFields().writeTo(output); } @java.lang.Override @@ -9493,7 +9300,7 @@ public final class ContextOuterClass { if (topologyId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTopologyId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } for (int i = 0; i < deviceIds_.size(); i++) { @@ -9502,7 +9309,10 @@ public final class ContextOuterClass { for (int i = 0; i < linkIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, linkIds_.get(i)); } - size += unknownFields.getSerializedSize(); + for (int i = 0; i < opticalLinkIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, opticalLinkIds_.get(i)); + } + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -9528,7 +9338,9 @@ public final class ContextOuterClass { return false; if (!getLinkIdsList().equals(other.getLinkIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getOpticalLinkIdsList().equals(other.getOpticalLinkIdsList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -9554,7 +9366,11 @@ public final class ContextOuterClass { hash = (37 * hash) + LINK_IDS_FIELD_NUMBER; hash = (53 * hash) + getLinkIdsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + if (getOpticalLinkIdsCount() > 0) { + hash = (37 * hash) + OPTICAL_LINK_IDS_FIELD_NUMBER; + hash = (53 * hash) + getOpticalLinkIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -9648,43 +9464,43 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Topology.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getDeviceIdsFieldBuilder(); - getLinkIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); - if (topologyIdBuilder_ == null) { - topologyId_ = null; - } else { - topologyId_ = null; + bitField0_ = 0; + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); topologyIdBuilder_ = null; } name_ = ""; if (deviceIdsBuilder_ == null) { deviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + deviceIds_ = null; deviceIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000004); if (linkIdsBuilder_ == null) { linkIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); } else { + linkIds_ = null; linkIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000008); + if (opticalLinkIdsBuilder_ == null) { + opticalLinkIds_ = java.util.Collections.emptyList(); + } else { + opticalLinkIds_ = null; + opticalLinkIdsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -9710,63 +9526,52 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Topology buildPartial() { context.ContextOuterClass.Topology result = new context.ContextOuterClass.Topology(this); - int from_bitField0_ = bitField0_; - if (topologyIdBuilder_ == null) { - result.topologyId_ = topologyId_; - } else { - result.topologyId_ = topologyIdBuilder_.build(); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } - result.name_ = name_; + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Topology result) { if (deviceIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000004) != 0)) { deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); } result.deviceIds_ = deviceIds_; } else { result.deviceIds_ = deviceIdsBuilder_.build(); } if (linkIdsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { + if (((bitField0_ & 0x00000008) != 0)) { linkIds_ = java.util.Collections.unmodifiableList(linkIds_); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); } result.linkIds_ = linkIds_; } else { result.linkIds_ = linkIdsBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); + if (opticalLinkIdsBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + opticalLinkIds_ = java.util.Collections.unmodifiableList(opticalLinkIds_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.opticalLinkIds_ = opticalLinkIds_; + } else { + result.opticalLinkIds_ = opticalLinkIdsBuilder_.build(); + } } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Topology result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } } @java.lang.Override @@ -9787,13 +9592,14 @@ public final class ContextOuterClass { } if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000002; onChanged(); } if (deviceIdsBuilder_ == null) { if (!other.deviceIds_.isEmpty()) { if (deviceIds_.isEmpty()) { deviceIds_ = other.deviceIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); } else { ensureDeviceIdsIsMutable(); deviceIds_.addAll(other.deviceIds_); @@ -9806,7 +9612,7 @@ public final class ContextOuterClass { deviceIdsBuilder_.dispose(); deviceIdsBuilder_ = null; deviceIds_ = other.deviceIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); deviceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDeviceIdsFieldBuilder() : null; } else { deviceIdsBuilder_.addAllMessages(other.deviceIds_); @@ -9817,7 +9623,7 @@ public final class ContextOuterClass { if (!other.linkIds_.isEmpty()) { if (linkIds_.isEmpty()) { linkIds_ = other.linkIds_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensureLinkIdsIsMutable(); linkIds_.addAll(other.linkIds_); @@ -9830,14 +9636,38 @@ public final class ContextOuterClass { linkIdsBuilder_.dispose(); linkIdsBuilder_ = null; linkIds_ = other.linkIds_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); linkIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinkIdsFieldBuilder() : null; } else { linkIdsBuilder_.addAllMessages(other.linkIds_); } } } - this.mergeUnknownFields(other.unknownFields); + if (opticalLinkIdsBuilder_ == null) { + if (!other.opticalLinkIds_.isEmpty()) { + if (opticalLinkIds_.isEmpty()) { + opticalLinkIds_ = other.opticalLinkIds_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.addAll(other.opticalLinkIds_); + } + onChanged(); + } + } else { + if (!other.opticalLinkIds_.isEmpty()) { + if (opticalLinkIdsBuilder_.isEmpty()) { + opticalLinkIdsBuilder_.dispose(); + opticalLinkIdsBuilder_ = null; + opticalLinkIds_ = other.opticalLinkIds_; + bitField0_ = (bitField0_ & ~0x00000010); + opticalLinkIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getOpticalLinkIdsFieldBuilder() : null; + } else { + opticalLinkIdsBuilder_.addAllMessages(other.opticalLinkIds_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -9849,17 +9679,85 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Topology parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.DeviceId m = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.add(m); + } else { + deviceIdsBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.LinkId m = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry); + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.add(m); + } else { + linkIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + context.ContextOuterClass.LinkId m = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry); + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.add(m); + } else { + opticalLinkIdsBuilder_.addMessage(m); + } + break; + } + // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Topology) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -9874,7 +9772,7 @@ public final class ContextOuterClass { * @return Whether the topologyId field is set. */ public boolean hasTopologyId() { - return topologyIdBuilder_ != null || topologyId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -9898,10 +9796,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } topologyId_ = value; - onChanged(); } else { topologyIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -9911,10 +9810,11 @@ public final class ContextOuterClass { public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) { if (topologyIdBuilder_ == null) { topologyId_ = builderForValue.build(); - onChanged(); } else { topologyIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -9923,15 +9823,16 @@ public final class ContextOuterClass { */ public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { if (topologyIdBuilder_ == null) { - if (topologyId_ != null) { - topologyId_ = context.ContextOuterClass.TopologyId.newBuilder(topologyId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) { + getTopologyIdBuilder().mergeFrom(value); } else { topologyId_ = value; } - onChanged(); } else { topologyIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -9939,13 +9840,13 @@ public final class ContextOuterClass { * <code>.context.TopologyId topology_id = 1;</code> */ public Builder clearTopologyId() { - if (topologyIdBuilder_ == null) { - topologyId_ = null; - onChanged(); - } else { - topologyId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); topologyIdBuilder_ = null; } + onChanged(); return this; } @@ -9953,6 +9854,7 @@ public final class ContextOuterClass { * <code>.context.TopologyId topology_id = 1;</code> */ public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getTopologyIdFieldBuilder().getBuilder(); } @@ -10022,6 +9924,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -10032,6 +9935,7 @@ public final class ContextOuterClass { */ public Builder clearName() { name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -10047,6 +9951,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -10054,9 +9959,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.DeviceId> deviceIds_ = java.util.Collections.emptyList(); private void ensureDeviceIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000004) != 0)) { deviceIds_ = new java.util.ArrayList<context.ContextOuterClass.DeviceId>(deviceIds_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000004; } } @@ -10208,7 +10113,7 @@ public final class ContextOuterClass { public Builder clearDeviceIds() { if (deviceIdsBuilder_ == null) { deviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { deviceIdsBuilder_.clear(); @@ -10282,7 +10187,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdsFieldBuilder() { if (deviceIdsBuilder_ == null) { - deviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>(deviceIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + deviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>(deviceIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); deviceIds_ = null; } return deviceIdsBuilder_; @@ -10291,9 +10196,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.LinkId> linkIds_ = java.util.Collections.emptyList(); private void ensureLinkIdsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!((bitField0_ & 0x00000008) != 0)) { linkIds_ = new java.util.ArrayList<context.ContextOuterClass.LinkId>(linkIds_); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000008; } } @@ -10445,7 +10350,7 @@ public final class ContextOuterClass { public Builder clearLinkIds() { if (linkIdsBuilder_ == null) { linkIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { linkIdsBuilder_.clear(); @@ -10519,12 +10424,249 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> getLinkIdsFieldBuilder() { if (linkIdsBuilder_ == null) { - linkIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>(linkIds_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); + linkIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>(linkIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); linkIds_ = null; } return linkIdsBuilder_; } + private java.util.List<context.ContextOuterClass.LinkId> opticalLinkIds_ = java.util.Collections.emptyList(); + + private void ensureOpticalLinkIdsIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + opticalLinkIds_ = new java.util.ArrayList<context.ContextOuterClass.LinkId>(opticalLinkIds_); + bitField0_ |= 0x00000010; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> opticalLinkIdsBuilder_; + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public java.util.List<context.ContextOuterClass.LinkId> getOpticalLinkIdsList() { + if (opticalLinkIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(opticalLinkIds_); + } else { + return opticalLinkIdsBuilder_.getMessageList(); + } + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public int getOpticalLinkIdsCount() { + if (opticalLinkIdsBuilder_ == null) { + return opticalLinkIds_.size(); + } else { + return opticalLinkIdsBuilder_.getCount(); + } + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public context.ContextOuterClass.LinkId getOpticalLinkIds(int index) { + if (opticalLinkIdsBuilder_ == null) { + return opticalLinkIds_.get(index); + } else { + return opticalLinkIdsBuilder_.getMessage(index); + } + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder setOpticalLinkIds(int index, context.ContextOuterClass.LinkId value) { + if (opticalLinkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.set(index, value); + onChanged(); + } else { + opticalLinkIdsBuilder_.setMessage(index, value); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder setOpticalLinkIds(int index, context.ContextOuterClass.LinkId.Builder builderForValue) { + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.set(index, builderForValue.build()); + onChanged(); + } else { + opticalLinkIdsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder addOpticalLinkIds(context.ContextOuterClass.LinkId value) { + if (opticalLinkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.add(value); + onChanged(); + } else { + opticalLinkIdsBuilder_.addMessage(value); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder addOpticalLinkIds(int index, context.ContextOuterClass.LinkId value) { + if (opticalLinkIdsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.add(index, value); + onChanged(); + } else { + opticalLinkIdsBuilder_.addMessage(index, value); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder addOpticalLinkIds(context.ContextOuterClass.LinkId.Builder builderForValue) { + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.add(builderForValue.build()); + onChanged(); + } else { + opticalLinkIdsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder addOpticalLinkIds(int index, context.ContextOuterClass.LinkId.Builder builderForValue) { + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.add(index, builderForValue.build()); + onChanged(); + } else { + opticalLinkIdsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder addAllOpticalLinkIds(java.lang.Iterable<? extends context.ContextOuterClass.LinkId> values) { + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, opticalLinkIds_); + onChanged(); + } else { + opticalLinkIdsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder clearOpticalLinkIds() { + if (opticalLinkIdsBuilder_ == null) { + opticalLinkIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + opticalLinkIdsBuilder_.clear(); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public Builder removeOpticalLinkIds(int index) { + if (opticalLinkIdsBuilder_ == null) { + ensureOpticalLinkIdsIsMutable(); + opticalLinkIds_.remove(index); + onChanged(); + } else { + opticalLinkIdsBuilder_.remove(index); + } + return this; + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public context.ContextOuterClass.LinkId.Builder getOpticalLinkIdsBuilder(int index) { + return getOpticalLinkIdsFieldBuilder().getBuilder(index); + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public context.ContextOuterClass.LinkIdOrBuilder getOpticalLinkIdsOrBuilder(int index) { + if (opticalLinkIdsBuilder_ == null) { + return opticalLinkIds_.get(index); + } else { + return opticalLinkIdsBuilder_.getMessageOrBuilder(index); + } + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public java.util.List<? extends context.ContextOuterClass.LinkIdOrBuilder> getOpticalLinkIdsOrBuilderList() { + if (opticalLinkIdsBuilder_ != null) { + return opticalLinkIdsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(opticalLinkIds_); + } + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public context.ContextOuterClass.LinkId.Builder addOpticalLinkIdsBuilder() { + return getOpticalLinkIdsFieldBuilder().addBuilder(context.ContextOuterClass.LinkId.getDefaultInstance()); + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public context.ContextOuterClass.LinkId.Builder addOpticalLinkIdsBuilder(int index) { + return getOpticalLinkIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.LinkId.getDefaultInstance()); + } + + /** + * <code>repeated .context.LinkId optical_link_ids = 5;</code> + */ + public java.util.List<context.ContextOuterClass.LinkId.Builder> getOpticalLinkIdsBuilderList() { + return getOpticalLinkIdsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> getOpticalLinkIdsFieldBuilder() { + if (opticalLinkIdsBuilder_ == null) { + opticalLinkIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>(opticalLinkIds_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); + opticalLinkIds_ = null; + } + return opticalLinkIdsBuilder_; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); @@ -10552,7 +10694,17 @@ public final class ContextOuterClass { @java.lang.Override public Topology parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Topology(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -10652,6 +10804,31 @@ public final class ContextOuterClass { * <code>repeated .context.Link links = 4;</code> */ context.ContextOuterClass.LinkOrBuilder getLinksOrBuilder(int index); + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList(); + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + context.ContextOuterClass.OpticalLink getOpticalLinks(int index); + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + int getOpticalLinksCount(); + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList(); + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index); } /** @@ -10671,6 +10848,7 @@ public final class ContextOuterClass { name_ = ""; devices_ = java.util.Collections.emptyList(); links_ = java.util.Collections.emptyList(); + opticalLinks_ = java.util.Collections.emptyList(); } @java.lang.Override @@ -10679,88 +10857,6 @@ public final class ContextOuterClass { return new TopologyDetails(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private TopologyDetails(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.TopologyId.Builder subBuilder = null; - if (topologyId_ != null) { - subBuilder = topologyId_.toBuilder(); - } - topologyId_ = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(topologyId_); - topologyId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 26: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - devices_ = new java.util.ArrayList<context.ContextOuterClass.Device>(); - mutable_bitField0_ |= 0x00000001; - } - devices_.add(input.readMessage(context.ContextOuterClass.Device.parser(), extensionRegistry)); - break; - } - case 34: - { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - links_ = new java.util.ArrayList<context.ContextOuterClass.Link>(); - mutable_bitField0_ |= 0x00000002; - } - links_.add(input.readMessage(context.ContextOuterClass.Link.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - devices_ = java.util.Collections.unmodifiableList(devices_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - links_ = java.util.Collections.unmodifiableList(links_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_TopologyDetails_descriptor; } @@ -10797,12 +10893,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { - return getTopologyId(); + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; } public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * <code>string name = 2;</code> @@ -10839,6 +10936,7 @@ public final class ContextOuterClass { public static final int DEVICES_FIELD_NUMBER = 3; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Device> devices_; /** @@ -10883,6 +10981,7 @@ public final class ContextOuterClass { public static final int LINKS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Link> links_; /** @@ -10925,6 +11024,51 @@ public final class ContextOuterClass { return links_.get(index); } + public static final int OPTICAL_LINKS_FIELD_NUMBER = 5; + + @SuppressWarnings("serial") + private java.util.List<context.ContextOuterClass.OpticalLink> opticalLinks_; + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + @java.lang.Override + public java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList() { + return opticalLinks_; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + @java.lang.Override + public java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList() { + return opticalLinks_; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + @java.lang.Override + public int getOpticalLinksCount() { + return opticalLinks_.size(); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.OpticalLink getOpticalLinks(int index) { + return opticalLinks_.get(index); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index) { + return opticalLinks_.get(index); + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -10943,7 +11087,7 @@ public final class ContextOuterClass { if (topologyId_ != null) { output.writeMessage(1, getTopologyId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } for (int i = 0; i < devices_.size(); i++) { @@ -10952,7 +11096,10 @@ public final class ContextOuterClass { for (int i = 0; i < links_.size(); i++) { output.writeMessage(4, links_.get(i)); } - unknownFields.writeTo(output); + for (int i = 0; i < opticalLinks_.size(); i++) { + output.writeMessage(5, opticalLinks_.get(i)); + } + getUnknownFields().writeTo(output); } @java.lang.Override @@ -10964,7 +11111,7 @@ public final class ContextOuterClass { if (topologyId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getTopologyId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } for (int i = 0; i < devices_.size(); i++) { @@ -10973,7 +11120,10 @@ public final class ContextOuterClass { for (int i = 0; i < links_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, links_.get(i)); } - size += unknownFields.getSerializedSize(); + for (int i = 0; i < opticalLinks_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, opticalLinks_.get(i)); + } + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -10999,7 +11149,9 @@ public final class ContextOuterClass { return false; if (!getLinksList().equals(other.getLinksList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getOpticalLinksList().equals(other.getOpticalLinksList())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -11025,7 +11177,11 @@ public final class ContextOuterClass { hash = (37 * hash) + LINKS_FIELD_NUMBER; hash = (53 * hash) + getLinksList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + if (getOpticalLinksCount() > 0) { + hash = (37 * hash) + OPTICAL_LINKS_FIELD_NUMBER; + hash = (53 * hash) + getOpticalLinksList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -11119,43 +11275,43 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.TopologyDetails.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getDevicesFieldBuilder(); - getLinksFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); - if (topologyIdBuilder_ == null) { - topologyId_ = null; - } else { - topologyId_ = null; + bitField0_ = 0; + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); topologyIdBuilder_ = null; } name_ = ""; if (devicesBuilder_ == null) { devices_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + devices_ = null; devicesBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000004); if (linksBuilder_ == null) { links_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); } else { + links_ = null; linksBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000008); + if (opticalLinksBuilder_ == null) { + opticalLinks_ = java.util.Collections.emptyList(); + } else { + opticalLinks_ = null; + opticalLinksBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -11181,63 +11337,52 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.TopologyDetails buildPartial() { context.ContextOuterClass.TopologyDetails result = new context.ContextOuterClass.TopologyDetails(this); - int from_bitField0_ = bitField0_; - if (topologyIdBuilder_ == null) { - result.topologyId_ = topologyId_; - } else { - result.topologyId_ = topologyIdBuilder_.build(); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } - result.name_ = name_; + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.TopologyDetails result) { if (devicesBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000004) != 0)) { devices_ = java.util.Collections.unmodifiableList(devices_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); } result.devices_ = devices_; } else { result.devices_ = devicesBuilder_.build(); } if (linksBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { + if (((bitField0_ & 0x00000008) != 0)) { links_ = java.util.Collections.unmodifiableList(links_); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); } result.links_ = links_; } else { result.links_ = linksBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); + if (opticalLinksBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0)) { + opticalLinks_ = java.util.Collections.unmodifiableList(opticalLinks_); + bitField0_ = (bitField0_ & ~0x00000010); + } + result.opticalLinks_ = opticalLinks_; + } else { + result.opticalLinks_ = opticalLinksBuilder_.build(); + } } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.TopologyDetails result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } } @java.lang.Override @@ -11258,13 +11403,14 @@ public final class ContextOuterClass { } if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000002; onChanged(); } if (devicesBuilder_ == null) { if (!other.devices_.isEmpty()) { if (devices_.isEmpty()) { devices_ = other.devices_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); } else { ensureDevicesIsMutable(); devices_.addAll(other.devices_); @@ -11277,7 +11423,7 @@ public final class ContextOuterClass { devicesBuilder_.dispose(); devicesBuilder_ = null; devices_ = other.devices_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); devicesBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDevicesFieldBuilder() : null; } else { devicesBuilder_.addAllMessages(other.devices_); @@ -11288,7 +11434,7 @@ public final class ContextOuterClass { if (!other.links_.isEmpty()) { if (links_.isEmpty()) { links_ = other.links_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensureLinksIsMutable(); links_.addAll(other.links_); @@ -11301,14 +11447,38 @@ public final class ContextOuterClass { linksBuilder_.dispose(); linksBuilder_ = null; links_ = other.links_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); linksBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinksFieldBuilder() : null; } else { linksBuilder_.addAllMessages(other.links_); } } } - this.mergeUnknownFields(other.unknownFields); + if (opticalLinksBuilder_ == null) { + if (!other.opticalLinks_.isEmpty()) { + if (opticalLinks_.isEmpty()) { + opticalLinks_ = other.opticalLinks_; + bitField0_ = (bitField0_ & ~0x00000010); + } else { + ensureOpticalLinksIsMutable(); + opticalLinks_.addAll(other.opticalLinks_); + } + onChanged(); + } + } else { + if (!other.opticalLinks_.isEmpty()) { + if (opticalLinksBuilder_.isEmpty()) { + opticalLinksBuilder_.dispose(); + opticalLinksBuilder_ = null; + opticalLinks_ = other.opticalLinks_; + bitField0_ = (bitField0_ & ~0x00000010); + opticalLinksBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getOpticalLinksFieldBuilder() : null; + } else { + opticalLinksBuilder_.addAllMessages(other.opticalLinks_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -11320,17 +11490,85 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.TopologyDetails parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.Device m = input.readMessage(context.ContextOuterClass.Device.parser(), extensionRegistry); + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.add(m); + } else { + devicesBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.Link m = input.readMessage(context.ContextOuterClass.Link.parser(), extensionRegistry); + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.add(m); + } else { + linksBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + context.ContextOuterClass.OpticalLink m = input.readMessage(context.ContextOuterClass.OpticalLink.parser(), extensionRegistry); + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(m); + } else { + opticalLinksBuilder_.addMessage(m); + } + break; + } + // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TopologyDetails) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -11345,7 +11583,7 @@ public final class ContextOuterClass { * @return Whether the topologyId field is set. */ public boolean hasTopologyId() { - return topologyIdBuilder_ != null || topologyId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -11369,10 +11607,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } topologyId_ = value; - onChanged(); } else { topologyIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -11382,10 +11621,11 @@ public final class ContextOuterClass { public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) { if (topologyIdBuilder_ == null) { topologyId_ = builderForValue.build(); - onChanged(); } else { topologyIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -11394,15 +11634,16 @@ public final class ContextOuterClass { */ public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { if (topologyIdBuilder_ == null) { - if (topologyId_ != null) { - topologyId_ = context.ContextOuterClass.TopologyId.newBuilder(topologyId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) { + getTopologyIdBuilder().mergeFrom(value); } else { topologyId_ = value; } - onChanged(); } else { topologyIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -11410,13 +11651,13 @@ public final class ContextOuterClass { * <code>.context.TopologyId topology_id = 1;</code> */ public Builder clearTopologyId() { - if (topologyIdBuilder_ == null) { - topologyId_ = null; - onChanged(); - } else { - topologyId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); topologyIdBuilder_ = null; } + onChanged(); return this; } @@ -11424,6 +11665,7 @@ public final class ContextOuterClass { * <code>.context.TopologyId topology_id = 1;</code> */ public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getTopologyIdFieldBuilder().getBuilder(); } @@ -11493,6 +11735,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -11503,6 +11746,7 @@ public final class ContextOuterClass { */ public Builder clearName() { name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -11518,6 +11762,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -11525,9 +11770,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.Device> devices_ = java.util.Collections.emptyList(); private void ensureDevicesIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000004) != 0)) { devices_ = new java.util.ArrayList<context.ContextOuterClass.Device>(devices_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000004; } } @@ -11679,7 +11924,7 @@ public final class ContextOuterClass { public Builder clearDevices() { if (devicesBuilder_ == null) { devices_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { devicesBuilder_.clear(); @@ -11753,7 +11998,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Device, context.ContextOuterClass.Device.Builder, context.ContextOuterClass.DeviceOrBuilder> getDevicesFieldBuilder() { if (devicesBuilder_ == null) { - devicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Device, context.ContextOuterClass.Device.Builder, context.ContextOuterClass.DeviceOrBuilder>(devices_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + devicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Device, context.ContextOuterClass.Device.Builder, context.ContextOuterClass.DeviceOrBuilder>(devices_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); devices_ = null; } return devicesBuilder_; @@ -11762,9 +12007,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.Link> links_ = java.util.Collections.emptyList(); private void ensureLinksIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!((bitField0_ & 0x00000008) != 0)) { links_ = new java.util.ArrayList<context.ContextOuterClass.Link>(links_); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000008; } } @@ -11916,7 +12161,7 @@ public final class ContextOuterClass { public Builder clearLinks() { if (linksBuilder_ == null) { links_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { linksBuilder_.clear(); @@ -11990,12 +12235,249 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Link, context.ContextOuterClass.Link.Builder, context.ContextOuterClass.LinkOrBuilder> getLinksFieldBuilder() { if (linksBuilder_ == null) { - linksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Link, context.ContextOuterClass.Link.Builder, context.ContextOuterClass.LinkOrBuilder>(links_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); + linksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Link, context.ContextOuterClass.Link.Builder, context.ContextOuterClass.LinkOrBuilder>(links_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); links_ = null; } return linksBuilder_; } + private java.util.List<context.ContextOuterClass.OpticalLink> opticalLinks_ = java.util.Collections.emptyList(); + + private void ensureOpticalLinksIsMutable() { + if (!((bitField0_ & 0x00000010) != 0)) { + opticalLinks_ = new java.util.ArrayList<context.ContextOuterClass.OpticalLink>(opticalLinks_); + bitField0_ |= 0x00000010; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder> opticalLinksBuilder_; + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList() { + if (opticalLinksBuilder_ == null) { + return java.util.Collections.unmodifiableList(opticalLinks_); + } else { + return opticalLinksBuilder_.getMessageList(); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public int getOpticalLinksCount() { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.size(); + } else { + return opticalLinksBuilder_.getCount(); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public context.ContextOuterClass.OpticalLink getOpticalLinks(int index) { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.get(index); + } else { + return opticalLinksBuilder_.getMessage(index); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder setOpticalLinks(int index, context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinksIsMutable(); + opticalLinks_.set(index, value); + onChanged(); + } else { + opticalLinksBuilder_.setMessage(index, value); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder setOpticalLinks(int index, context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.set(index, builderForValue.build()); + onChanged(); + } else { + opticalLinksBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder addOpticalLinks(context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinksIsMutable(); + opticalLinks_.add(value); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(value); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder addOpticalLinks(int index, context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinksIsMutable(); + opticalLinks_.add(index, value); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(index, value); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder addOpticalLinks(context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(builderForValue.build()); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder addOpticalLinks(int index, context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(index, builderForValue.build()); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder addAllOpticalLinks(java.lang.Iterable<? extends context.ContextOuterClass.OpticalLink> values) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, opticalLinks_); + onChanged(); + } else { + opticalLinksBuilder_.addAllMessages(values); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder clearOpticalLinks() { + if (opticalLinksBuilder_ == null) { + opticalLinks_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + } else { + opticalLinksBuilder_.clear(); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public Builder removeOpticalLinks(int index) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.remove(index); + onChanged(); + } else { + opticalLinksBuilder_.remove(index); + } + return this; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public context.ContextOuterClass.OpticalLink.Builder getOpticalLinksBuilder(int index) { + return getOpticalLinksFieldBuilder().getBuilder(index); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index) { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.get(index); + } else { + return opticalLinksBuilder_.getMessageOrBuilder(index); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList() { + if (opticalLinksBuilder_ != null) { + return opticalLinksBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(opticalLinks_); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public context.ContextOuterClass.OpticalLink.Builder addOpticalLinksBuilder() { + return getOpticalLinksFieldBuilder().addBuilder(context.ContextOuterClass.OpticalLink.getDefaultInstance()); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public context.ContextOuterClass.OpticalLink.Builder addOpticalLinksBuilder(int index) { + return getOpticalLinksFieldBuilder().addBuilder(index, context.ContextOuterClass.OpticalLink.getDefaultInstance()); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 5;</code> + */ + public java.util.List<context.ContextOuterClass.OpticalLink.Builder> getOpticalLinksBuilderList() { + return getOpticalLinksFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksFieldBuilder() { + if (opticalLinksBuilder_ == null) { + opticalLinksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder>(opticalLinks_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); + opticalLinks_ = null; + } + return opticalLinksBuilder_; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); @@ -12023,7 +12505,17 @@ public final class ContextOuterClass { @java.lang.Override public TopologyDetails parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new TopologyDetails(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -12094,57 +12586,6 @@ public final class ContextOuterClass { return new TopologyIdList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private TopologyIdList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - topologyIds_ = new java.util.ArrayList<context.ContextOuterClass.TopologyId>(); - mutable_bitField0_ |= 0x00000001; - } - topologyIds_.add(input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_TopologyIdList_descriptor; } @@ -12156,6 +12597,7 @@ public final class ContextOuterClass { public static final int TOPOLOGY_IDS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.TopologyId> topologyIds_; /** @@ -12216,7 +12658,7 @@ public final class ContextOuterClass { for (int i = 0; i < topologyIds_.size(); i++) { output.writeMessage(1, topologyIds_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -12228,7 +12670,7 @@ public final class ContextOuterClass { for (int i = 0; i < topologyIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, topologyIds_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -12244,7 +12686,7 @@ public final class ContextOuterClass { context.ContextOuterClass.TopologyIdList other = (context.ContextOuterClass.TopologyIdList) obj; if (!getTopologyIdsList().equals(other.getTopologyIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -12260,7 +12702,7 @@ public final class ContextOuterClass { hash = (37 * hash) + TOPOLOGY_IDS_FIELD_NUMBER; hash = (53 * hash) + getTopologyIdsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -12354,29 +12796,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.TopologyIdList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getTopologyIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (topologyIdsBuilder_ == null) { topologyIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + topologyIds_ = null; topologyIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -12402,7 +12838,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.TopologyIdList buildPartial() { context.ContextOuterClass.TopologyIdList result = new context.ContextOuterClass.TopologyIdList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.TopologyIdList result) { if (topologyIdsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { topologyIds_ = java.util.Collections.unmodifiableList(topologyIds_); @@ -12412,38 +12856,10 @@ public final class ContextOuterClass { } else { result.topologyIds_ = topologyIdsBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); } - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.TopologyIdList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -12483,7 +12899,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -12495,17 +12911,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.TopologyIdList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.TopologyId m = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); + if (topologyIdsBuilder_ == null) { + ensureTopologyIdsIsMutable(); + topologyIds_.add(m); + } else { + topologyIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TopologyIdList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -12775,7 +13221,17 @@ public final class ContextOuterClass { @java.lang.Override public TopologyIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new TopologyIdList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -12846,57 +13302,6 @@ public final class ContextOuterClass { return new TopologyList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private TopologyList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - topologies_ = new java.util.ArrayList<context.ContextOuterClass.Topology>(); - mutable_bitField0_ |= 0x00000001; - } - topologies_.add(input.readMessage(context.ContextOuterClass.Topology.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - topologies_ = java.util.Collections.unmodifiableList(topologies_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_TopologyList_descriptor; } @@ -12908,6 +13313,7 @@ public final class ContextOuterClass { public static final int TOPOLOGIES_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Topology> topologies_; /** @@ -12968,7 +13374,7 @@ public final class ContextOuterClass { for (int i = 0; i < topologies_.size(); i++) { output.writeMessage(1, topologies_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -12980,7 +13386,7 @@ public final class ContextOuterClass { for (int i = 0; i < topologies_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, topologies_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -12996,7 +13402,7 @@ public final class ContextOuterClass { context.ContextOuterClass.TopologyList other = (context.ContextOuterClass.TopologyList) obj; if (!getTopologiesList().equals(other.getTopologiesList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -13012,7 +13418,7 @@ public final class ContextOuterClass { hash = (37 * hash) + TOPOLOGIES_FIELD_NUMBER; hash = (53 * hash) + getTopologiesList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -13106,29 +13512,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.TopologyList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getTopologiesFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (topologiesBuilder_ == null) { topologies_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + topologies_ = null; topologiesBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -13154,7 +13554,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.TopologyList buildPartial() { context.ContextOuterClass.TopologyList result = new context.ContextOuterClass.TopologyList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.TopologyList result) { if (topologiesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { topologies_ = java.util.Collections.unmodifiableList(topologies_); @@ -13164,38 +13572,10 @@ public final class ContextOuterClass { } else { result.topologies_ = topologiesBuilder_.build(); } - onBuilt(); - return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.TopologyList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -13235,7 +13615,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -13247,17 +13627,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.TopologyList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Topology m = input.readMessage(context.ContextOuterClass.Topology.parser(), extensionRegistry); + if (topologiesBuilder_ == null) { + ensureTopologiesIsMutable(); + topologies_.add(m); + } else { + topologiesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TopologyList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -13527,7 +13937,17 @@ public final class ContextOuterClass { @java.lang.Override public TopologyList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new TopologyList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -13606,70 +14026,6 @@ public final class ContextOuterClass { return new TopologyEvent(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private TopologyEvent(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Event.Builder subBuilder = null; - if (event_ != null) { - subBuilder = event_.toBuilder(); - } - event_ = input.readMessage(context.ContextOuterClass.Event.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(event_); - event_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.TopologyId.Builder subBuilder = null; - if (topologyId_ != null) { - subBuilder = topologyId_.toBuilder(); - } - topologyId_ = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(topologyId_); - topologyId_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_TopologyEvent_descriptor; } @@ -13706,7 +14062,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - return getEvent(); + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } public static final int TOPOLOGY_ID_FIELD_NUMBER = 2; @@ -13736,7 +14092,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { - return getTopologyId(); + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; } private byte memoizedIsInitialized = -1; @@ -13760,7 +14116,7 @@ public final class ContextOuterClass { if (topologyId_ != null) { output.writeMessage(2, getTopologyId()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -13775,7 +14131,7 @@ public final class ContextOuterClass { if (topologyId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTopologyId()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -13801,7 +14157,7 @@ public final class ContextOuterClass { if (!getTopologyId().equals(other.getTopologyId())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -13821,7 +14177,7 @@ public final class ContextOuterClass { hash = (37 * hash) + TOPOLOGY_ID_FIELD_NUMBER; hash = (53 * hash) + getTopologyId().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -13915,32 +14271,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.TopologyEvent.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (eventBuilder_ == null) { - event_ = null; - } else { - event_ = null; + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } - if (topologyIdBuilder_ == null) { - topologyId_ = null; - } else { - topologyId_ = null; + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); topologyIdBuilder_ = null; } return this; @@ -13968,48 +14316,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.TopologyEvent buildPartial() { context.ContextOuterClass.TopologyEvent result = new context.ContextOuterClass.TopologyEvent(this); - if (eventBuilder_ == null) { - result.event_ = event_; - } else { - result.event_ = eventBuilder_.build(); - } - if (topologyIdBuilder_ == null) { - result.topologyId_ = topologyId_; - } else { - result.topologyId_ = topologyIdBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.TopologyEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build(); + } } @java.lang.Override @@ -14031,7 +14352,7 @@ public final class ContextOuterClass { if (other.hasTopologyId()) { mergeTopologyId(other.getTopologyId()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -14043,20 +14364,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.TopologyEvent parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TopologyEvent) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Event event_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; @@ -14066,7 +14421,7 @@ public final class ContextOuterClass { * @return Whether the event field is set. */ public boolean hasEvent() { - return eventBuilder_ != null || event_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -14090,10 +14445,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } event_ = value; - onChanged(); } else { eventBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -14103,10 +14459,11 @@ public final class ContextOuterClass { public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { if (eventBuilder_ == null) { event_ = builderForValue.build(); - onChanged(); } else { eventBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -14115,15 +14472,16 @@ public final class ContextOuterClass { */ public Builder mergeEvent(context.ContextOuterClass.Event value) { if (eventBuilder_ == null) { - if (event_ != null) { - event_ = context.ContextOuterClass.Event.newBuilder(event_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); } else { event_ = value; } - onChanged(); } else { eventBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -14131,13 +14489,13 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public Builder clearEvent() { - if (eventBuilder_ == null) { - event_ = null; - onChanged(); - } else { - event_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } + onChanged(); return this; } @@ -14145,6 +14503,7 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEventFieldBuilder().getBuilder(); } @@ -14180,7 +14539,7 @@ public final class ContextOuterClass { * @return Whether the topologyId field is set. */ public boolean hasTopologyId() { - return topologyIdBuilder_ != null || topologyId_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -14204,10 +14563,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } topologyId_ = value; - onChanged(); } else { topologyIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -14217,10 +14577,11 @@ public final class ContextOuterClass { public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) { if (topologyIdBuilder_ == null) { topologyId_ = builderForValue.build(); - onChanged(); } else { topologyIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -14229,15 +14590,16 @@ public final class ContextOuterClass { */ public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { if (topologyIdBuilder_ == null) { - if (topologyId_ != null) { - topologyId_ = context.ContextOuterClass.TopologyId.newBuilder(topologyId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) { + getTopologyIdBuilder().mergeFrom(value); } else { topologyId_ = value; } - onChanged(); } else { topologyIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -14245,13 +14607,13 @@ public final class ContextOuterClass { * <code>.context.TopologyId topology_id = 2;</code> */ public Builder clearTopologyId() { - if (topologyIdBuilder_ == null) { - topologyId_ = null; - onChanged(); - } else { - topologyId_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); topologyIdBuilder_ = null; } + onChanged(); return this; } @@ -14259,6 +14621,7 @@ public final class ContextOuterClass { * <code>.context.TopologyId topology_id = 2;</code> */ public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getTopologyIdFieldBuilder().getBuilder(); } @@ -14312,7 +14675,17 @@ public final class ContextOuterClass { @java.lang.Override public TopologyEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new TopologyEvent(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -14378,57 +14751,6 @@ public final class ContextOuterClass { return new DeviceId(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private DeviceId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (deviceUuid_ != null) { - subBuilder = deviceUuid_.toBuilder(); - } - deviceUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceUuid_); - deviceUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_DeviceId_descriptor; } @@ -14465,7 +14787,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.UuidOrBuilder getDeviceUuidOrBuilder() { - return getDeviceUuid(); + return deviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : deviceUuid_; } private byte memoizedIsInitialized = -1; @@ -14486,7 +14808,7 @@ public final class ContextOuterClass { if (deviceUuid_ != null) { output.writeMessage(1, getDeviceUuid()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -14498,7 +14820,7 @@ public final class ContextOuterClass { if (deviceUuid_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDeviceUuid()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -14518,7 +14840,7 @@ public final class ContextOuterClass { if (!getDeviceUuid().equals(other.getDeviceUuid())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -14534,7 +14856,7 @@ public final class ContextOuterClass { hash = (37 * hash) + DEVICE_UUID_FIELD_NUMBER; hash = (53 * hash) + getDeviceUuid().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -14632,26 +14954,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.DeviceId.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (deviceUuidBuilder_ == null) { - deviceUuid_ = null; - } else { - deviceUuid_ = null; + bitField0_ = 0; + deviceUuid_ = null; + if (deviceUuidBuilder_ != null) { + deviceUuidBuilder_.dispose(); deviceUuidBuilder_ = null; } return this; @@ -14679,43 +14994,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.DeviceId buildPartial() { context.ContextOuterClass.DeviceId result = new context.ContextOuterClass.DeviceId(this); - if (deviceUuidBuilder_ == null) { - result.deviceUuid_ = deviceUuid_; - } else { - result.deviceUuid_ = deviceUuidBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.DeviceId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.deviceUuid_ = deviceUuidBuilder_ == null ? deviceUuid_ : deviceUuidBuilder_.build(); + } } @java.lang.Override @@ -14734,7 +15024,7 @@ public final class ContextOuterClass { if (other.hasDeviceUuid()) { mergeDeviceUuid(other.getDeviceUuid()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -14746,20 +15036,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.DeviceId parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDeviceUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.DeviceId) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Uuid deviceUuid_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> deviceUuidBuilder_; @@ -14769,7 +15086,7 @@ public final class ContextOuterClass { * @return Whether the deviceUuid field is set. */ public boolean hasDeviceUuid() { - return deviceUuidBuilder_ != null || deviceUuid_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -14793,10 +15110,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } deviceUuid_ = value; - onChanged(); } else { deviceUuidBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -14806,10 +15124,11 @@ public final class ContextOuterClass { public Builder setDeviceUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { if (deviceUuidBuilder_ == null) { deviceUuid_ = builderForValue.build(); - onChanged(); } else { deviceUuidBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -14818,15 +15137,16 @@ public final class ContextOuterClass { */ public Builder mergeDeviceUuid(context.ContextOuterClass.Uuid value) { if (deviceUuidBuilder_ == null) { - if (deviceUuid_ != null) { - deviceUuid_ = context.ContextOuterClass.Uuid.newBuilder(deviceUuid_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && deviceUuid_ != null && deviceUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getDeviceUuidBuilder().mergeFrom(value); } else { deviceUuid_ = value; } - onChanged(); } else { deviceUuidBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -14834,13 +15154,13 @@ public final class ContextOuterClass { * <code>.context.Uuid device_uuid = 1;</code> */ public Builder clearDeviceUuid() { - if (deviceUuidBuilder_ == null) { - deviceUuid_ = null; - onChanged(); - } else { - deviceUuid_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + deviceUuid_ = null; + if (deviceUuidBuilder_ != null) { + deviceUuidBuilder_.dispose(); deviceUuidBuilder_ = null; } + onChanged(); return this; } @@ -14848,6 +15168,7 @@ public final class ContextOuterClass { * <code>.context.Uuid device_uuid = 1;</code> */ public context.ContextOuterClass.Uuid.Builder getDeviceUuidBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getDeviceUuidFieldBuilder().getBuilder(); } @@ -14901,7 +15222,17 @@ public final class ContextOuterClass { @java.lang.Override public DeviceId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new DeviceId(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -15153,154 +15484,6 @@ public final class ContextOuterClass { return new Device(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Device(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.DeviceId.Builder subBuilder = null; - if (deviceId_ != null) { - subBuilder = deviceId_.toBuilder(); - } - deviceId_ = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceId_); - deviceId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 26: - { - java.lang.String s = input.readStringRequireUtf8(); - deviceType_ = s; - break; - } - case 34: - { - context.ContextOuterClass.DeviceConfig.Builder subBuilder = null; - if (deviceConfig_ != null) { - subBuilder = deviceConfig_.toBuilder(); - } - deviceConfig_ = input.readMessage(context.ContextOuterClass.DeviceConfig.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceConfig_); - deviceConfig_ = subBuilder.buildPartial(); - } - break; - } - case 40: - { - int rawValue = input.readEnum(); - deviceOperationalStatus_ = rawValue; - break; - } - case 48: - { - int rawValue = input.readEnum(); - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - deviceDrivers_ = new java.util.ArrayList<java.lang.Integer>(); - mutable_bitField0_ |= 0x00000001; - } - deviceDrivers_.add(rawValue); - break; - } - case 50: - { - int length = input.readRawVarint32(); - int oldLimit = input.pushLimit(length); - while (input.getBytesUntilLimit() > 0) { - int rawValue = input.readEnum(); - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - deviceDrivers_ = new java.util.ArrayList<java.lang.Integer>(); - mutable_bitField0_ |= 0x00000001; - } - deviceDrivers_.add(rawValue); - } - input.popLimit(oldLimit); - break; - } - case 58: - { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - deviceEndpoints_ = new java.util.ArrayList<context.ContextOuterClass.EndPoint>(); - mutable_bitField0_ |= 0x00000002; - } - deviceEndpoints_.add(input.readMessage(context.ContextOuterClass.EndPoint.parser(), extensionRegistry)); - break; - } - case 66: - { - if (!((mutable_bitField0_ & 0x00000004) != 0)) { - components_ = new java.util.ArrayList<context.ContextOuterClass.Component>(); - mutable_bitField0_ |= 0x00000004; - } - components_.add(input.readMessage(context.ContextOuterClass.Component.parser(), extensionRegistry)); - break; - } - case 74: - { - context.ContextOuterClass.DeviceId.Builder subBuilder = null; - if (controllerId_ != null) { - subBuilder = controllerId_.toBuilder(); - } - controllerId_ = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(controllerId_); - controllerId_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - deviceDrivers_ = java.util.Collections.unmodifiableList(deviceDrivers_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - deviceEndpoints_ = java.util.Collections.unmodifiableList(deviceEndpoints_); - } - if (((mutable_bitField0_ & 0x00000004) != 0)) { - components_ = java.util.Collections.unmodifiableList(components_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Device_descriptor; } @@ -15337,12 +15520,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { - return getDeviceId(); + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; } public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * <code>string name = 2;</code> @@ -15379,7 +15563,8 @@ public final class ContextOuterClass { public static final int DEVICE_TYPE_FIELD_NUMBER = 3; - private volatile java.lang.Object deviceType_; + @SuppressWarnings("serial") + private volatile java.lang.Object deviceType_ = ""; /** * <code>string device_type = 3;</code> @@ -15441,12 +15626,12 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder() { - return getDeviceConfig(); + return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; } public static final int DEVICE_OPERATIONAL_STATUS_FIELD_NUMBER = 5; - private int deviceOperationalStatus_; + private int deviceOperationalStatus_ = 0; /** * <code>.context.DeviceOperationalStatusEnum device_operational_status = 5;</code> @@ -15463,20 +15648,19 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.DeviceOperationalStatusEnum getDeviceOperationalStatus() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.DeviceOperationalStatusEnum result = context.ContextOuterClass.DeviceOperationalStatusEnum.valueOf(deviceOperationalStatus_); + context.ContextOuterClass.DeviceOperationalStatusEnum result = context.ContextOuterClass.DeviceOperationalStatusEnum.forNumber(deviceOperationalStatus_); return result == null ? context.ContextOuterClass.DeviceOperationalStatusEnum.UNRECOGNIZED : result; } public static final int DEVICE_DRIVERS_FIELD_NUMBER = 6; + @SuppressWarnings("serial") private java.util.List<java.lang.Integer> deviceDrivers_; private static final com.google.protobuf.Internal.ListAdapter.Converter<java.lang.Integer, context.ContextOuterClass.DeviceDriverEnum> deviceDrivers_converter_ = new com.google.protobuf.Internal.ListAdapter.Converter<java.lang.Integer, context.ContextOuterClass.DeviceDriverEnum>() { public context.ContextOuterClass.DeviceDriverEnum convert(java.lang.Integer from) { - @SuppressWarnings("deprecation") - context.ContextOuterClass.DeviceDriverEnum result = context.ContextOuterClass.DeviceDriverEnum.valueOf(from); + context.ContextOuterClass.DeviceDriverEnum result = context.ContextOuterClass.DeviceDriverEnum.forNumber(from); return result == null ? context.ContextOuterClass.DeviceDriverEnum.UNRECOGNIZED : result; } }; @@ -15532,6 +15716,7 @@ public final class ContextOuterClass { public static final int DEVICE_ENDPOINTS_FIELD_NUMBER = 7; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.EndPoint> deviceEndpoints_; /** @@ -15576,6 +15761,7 @@ public final class ContextOuterClass { public static final int COMPONENTS_FIELD_NUMBER = 8; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Component> components_; /** @@ -15677,7 +15863,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.DeviceIdOrBuilder getControllerIdOrBuilder() { - return getControllerId(); + return controllerId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : controllerId_; } private byte memoizedIsInitialized = -1; @@ -15699,10 +15885,10 @@ public final class ContextOuterClass { if (deviceId_ != null) { output.writeMessage(1, getDeviceId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } - if (!getDeviceTypeBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceType_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, deviceType_); } if (deviceConfig_ != null) { @@ -15727,7 +15913,7 @@ public final class ContextOuterClass { if (controllerId_ != null) { output.writeMessage(9, getControllerId()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -15739,10 +15925,10 @@ public final class ContextOuterClass { if (deviceId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getDeviceId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } - if (!getDeviceTypeBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceType_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, deviceType_); } if (deviceConfig_ != null) { @@ -15772,7 +15958,7 @@ public final class ContextOuterClass { if (controllerId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getControllerId()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -15816,7 +16002,7 @@ public final class ContextOuterClass { if (!getControllerId().equals(other.getControllerId())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -15858,7 +16044,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONTROLLER_ID_FIELD_NUMBER; hash = (53 * hash) + getControllerId().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -15952,57 +16138,48 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Device.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getDeviceEndpointsFieldBuilder(); - getComponentsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); - if (deviceIdBuilder_ == null) { - deviceId_ = null; - } else { - deviceId_ = null; + bitField0_ = 0; + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); deviceIdBuilder_ = null; } name_ = ""; deviceType_ = ""; - if (deviceConfigBuilder_ == null) { - deviceConfig_ = null; - } else { - deviceConfig_ = null; + deviceConfig_ = null; + if (deviceConfigBuilder_ != null) { + deviceConfigBuilder_.dispose(); deviceConfigBuilder_ = null; } deviceOperationalStatus_ = 0; deviceDrivers_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000020); if (deviceEndpointsBuilder_ == null) { deviceEndpoints_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); } else { + deviceEndpoints_ = null; deviceEndpointsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000040); if (componentsBuilder_ == null) { components_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); } else { + components_ = null; componentsBuilder_.clear(); } - if (controllerIdBuilder_ == null) { - controllerId_ = null; - } else { - controllerId_ = null; + bitField0_ = (bitField0_ & ~0x00000080); + controllerId_ = null; + if (controllerIdBuilder_ != null) { + controllerIdBuilder_.dispose(); controllerIdBuilder_ = null; } return this; @@ -16030,80 +16207,60 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Device buildPartial() { context.ContextOuterClass.Device result = new context.ContextOuterClass.Device(this); - int from_bitField0_ = bitField0_; - if (deviceIdBuilder_ == null) { - result.deviceId_ = deviceId_; - } else { - result.deviceId_ = deviceIdBuilder_.build(); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } - result.name_ = name_; - result.deviceType_ = deviceType_; - if (deviceConfigBuilder_ == null) { - result.deviceConfig_ = deviceConfig_; - } else { - result.deviceConfig_ = deviceConfigBuilder_.build(); - } - result.deviceOperationalStatus_ = deviceOperationalStatus_; - if (((bitField0_ & 0x00000001) != 0)) { + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Device result) { + if (((bitField0_ & 0x00000020) != 0)) { deviceDrivers_ = java.util.Collections.unmodifiableList(deviceDrivers_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000020); } result.deviceDrivers_ = deviceDrivers_; if (deviceEndpointsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { + if (((bitField0_ & 0x00000040) != 0)) { deviceEndpoints_ = java.util.Collections.unmodifiableList(deviceEndpoints_); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000040); } result.deviceEndpoints_ = deviceEndpoints_; } else { result.deviceEndpoints_ = deviceEndpointsBuilder_.build(); } if (componentsBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0)) { + if (((bitField0_ & 0x00000080) != 0)) { components_ = java.util.Collections.unmodifiableList(components_); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000080); } result.components_ = components_; } else { result.components_ = componentsBuilder_.build(); } - if (controllerIdBuilder_ == null) { - result.controllerId_ = controllerId_; - } else { - result.controllerId_ = controllerIdBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); } - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Device result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.deviceType_ = deviceType_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.deviceConfig_ = deviceConfigBuilder_ == null ? deviceConfig_ : deviceConfigBuilder_.build(); + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.deviceOperationalStatus_ = deviceOperationalStatus_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.controllerId_ = controllerIdBuilder_ == null ? controllerId_ : controllerIdBuilder_.build(); + } } @java.lang.Override @@ -16124,10 +16281,12 @@ public final class ContextOuterClass { } if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000002; onChanged(); } if (!other.getDeviceType().isEmpty()) { deviceType_ = other.deviceType_; + bitField0_ |= 0x00000004; onChanged(); } if (other.hasDeviceConfig()) { @@ -16139,7 +16298,7 @@ public final class ContextOuterClass { if (!other.deviceDrivers_.isEmpty()) { if (deviceDrivers_.isEmpty()) { deviceDrivers_ = other.deviceDrivers_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000020); } else { ensureDeviceDriversIsMutable(); deviceDrivers_.addAll(other.deviceDrivers_); @@ -16150,7 +16309,7 @@ public final class ContextOuterClass { if (!other.deviceEndpoints_.isEmpty()) { if (deviceEndpoints_.isEmpty()) { deviceEndpoints_ = other.deviceEndpoints_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000040); } else { ensureDeviceEndpointsIsMutable(); deviceEndpoints_.addAll(other.deviceEndpoints_); @@ -16163,7 +16322,7 @@ public final class ContextOuterClass { deviceEndpointsBuilder_.dispose(); deviceEndpointsBuilder_ = null; deviceEndpoints_ = other.deviceEndpoints_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000040); deviceEndpointsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDeviceEndpointsFieldBuilder() : null; } else { deviceEndpointsBuilder_.addAllMessages(other.deviceEndpoints_); @@ -16174,7 +16333,7 @@ public final class ContextOuterClass { if (!other.components_.isEmpty()) { if (components_.isEmpty()) { components_ = other.components_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000080); } else { ensureComponentsIsMutable(); components_.addAll(other.components_); @@ -16187,7 +16346,7 @@ public final class ContextOuterClass { componentsBuilder_.dispose(); componentsBuilder_ = null; components_ = other.components_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000080); componentsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getComponentsFieldBuilder() : null; } else { componentsBuilder_.addAllMessages(other.components_); @@ -16197,7 +16356,7 @@ public final class ContextOuterClass { if (other.hasControllerId()) { mergeControllerId(other.getControllerId()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -16209,17 +16368,122 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Device parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + deviceType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + input.readMessage(getDeviceConfigFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } + // case 34 + case 40: + { + deviceOperationalStatus_ = input.readEnum(); + bitField0_ |= 0x00000010; + break; + } + // case 40 + case 48: + { + int tmpRaw = input.readEnum(); + ensureDeviceDriversIsMutable(); + deviceDrivers_.add(tmpRaw); + break; + } + // case 48 + case 50: + { + int length = input.readRawVarint32(); + int oldLimit = input.pushLimit(length); + while (input.getBytesUntilLimit() > 0) { + int tmpRaw = input.readEnum(); + ensureDeviceDriversIsMutable(); + deviceDrivers_.add(tmpRaw); + } + input.popLimit(oldLimit); + break; + } + // case 50 + case 58: + { + context.ContextOuterClass.EndPoint m = input.readMessage(context.ContextOuterClass.EndPoint.parser(), extensionRegistry); + if (deviceEndpointsBuilder_ == null) { + ensureDeviceEndpointsIsMutable(); + deviceEndpoints_.add(m); + } else { + deviceEndpointsBuilder_.addMessage(m); + } + break; + } + // case 58 + case 66: + { + context.ContextOuterClass.Component m = input.readMessage(context.ContextOuterClass.Component.parser(), extensionRegistry); + if (componentsBuilder_ == null) { + ensureComponentsIsMutable(); + components_.add(m); + } else { + componentsBuilder_.addMessage(m); + } + break; + } + // case 66 + case 74: + { + input.readMessage(getControllerIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000100; + break; + } + // case 74 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Device) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -16234,7 +16498,7 @@ public final class ContextOuterClass { * @return Whether the deviceId field is set. */ public boolean hasDeviceId() { - return deviceIdBuilder_ != null || deviceId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -16258,10 +16522,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } deviceId_ = value; - onChanged(); } else { deviceIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -16271,10 +16536,11 @@ public final class ContextOuterClass { public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) { if (deviceIdBuilder_ == null) { deviceId_ = builderForValue.build(); - onChanged(); } else { deviceIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -16283,15 +16549,16 @@ public final class ContextOuterClass { */ public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { if (deviceIdBuilder_ == null) { - if (deviceId_ != null) { - deviceId_ = context.ContextOuterClass.DeviceId.newBuilder(deviceId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getDeviceIdBuilder().mergeFrom(value); } else { deviceId_ = value; } - onChanged(); } else { deviceIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -16299,13 +16566,13 @@ public final class ContextOuterClass { * <code>.context.DeviceId device_id = 1;</code> */ public Builder clearDeviceId() { - if (deviceIdBuilder_ == null) { - deviceId_ = null; - onChanged(); - } else { - deviceId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); deviceIdBuilder_ = null; } + onChanged(); return this; } @@ -16313,6 +16580,7 @@ public final class ContextOuterClass { * <code>.context.DeviceId device_id = 1;</code> */ public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getDeviceIdFieldBuilder().getBuilder(); } @@ -16382,6 +16650,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -16392,6 +16661,7 @@ public final class ContextOuterClass { */ public Builder clearName() { name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -16407,6 +16677,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -16454,6 +16725,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } deviceType_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -16464,6 +16736,7 @@ public final class ContextOuterClass { */ public Builder clearDeviceType() { deviceType_ = getDefaultInstance().getDeviceType(); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } @@ -16479,6 +16752,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); deviceType_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -16492,7 +16766,7 @@ public final class ContextOuterClass { * @return Whether the deviceConfig field is set. */ public boolean hasDeviceConfig() { - return deviceConfigBuilder_ != null || deviceConfig_ != null; + return ((bitField0_ & 0x00000008) != 0); } /** @@ -16516,10 +16790,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } deviceConfig_ = value; - onChanged(); } else { deviceConfigBuilder_.setMessage(value); } + bitField0_ |= 0x00000008; + onChanged(); return this; } @@ -16529,10 +16804,11 @@ public final class ContextOuterClass { public Builder setDeviceConfig(context.ContextOuterClass.DeviceConfig.Builder builderForValue) { if (deviceConfigBuilder_ == null) { deviceConfig_ = builderForValue.build(); - onChanged(); } else { deviceConfigBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000008; + onChanged(); return this; } @@ -16541,15 +16817,16 @@ public final class ContextOuterClass { */ public Builder mergeDeviceConfig(context.ContextOuterClass.DeviceConfig value) { if (deviceConfigBuilder_ == null) { - if (deviceConfig_ != null) { - deviceConfig_ = context.ContextOuterClass.DeviceConfig.newBuilder(deviceConfig_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000008) != 0) && deviceConfig_ != null && deviceConfig_ != context.ContextOuterClass.DeviceConfig.getDefaultInstance()) { + getDeviceConfigBuilder().mergeFrom(value); } else { deviceConfig_ = value; } - onChanged(); } else { deviceConfigBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000008; + onChanged(); return this; } @@ -16557,13 +16834,13 @@ public final class ContextOuterClass { * <code>.context.DeviceConfig device_config = 4;</code> */ public Builder clearDeviceConfig() { - if (deviceConfigBuilder_ == null) { - deviceConfig_ = null; - onChanged(); - } else { - deviceConfig_ = null; + bitField0_ = (bitField0_ & ~0x00000008); + deviceConfig_ = null; + if (deviceConfigBuilder_ != null) { + deviceConfigBuilder_.dispose(); deviceConfigBuilder_ = null; } + onChanged(); return this; } @@ -16571,6 +16848,7 @@ public final class ContextOuterClass { * <code>.context.DeviceConfig device_config = 4;</code> */ public context.ContextOuterClass.DeviceConfig.Builder getDeviceConfigBuilder() { + bitField0_ |= 0x00000008; onChanged(); return getDeviceConfigFieldBuilder().getBuilder(); } @@ -16615,6 +16893,7 @@ public final class ContextOuterClass { */ public Builder setDeviceOperationalStatusValue(int value) { deviceOperationalStatus_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -16625,8 +16904,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.DeviceOperationalStatusEnum getDeviceOperationalStatus() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.DeviceOperationalStatusEnum result = context.ContextOuterClass.DeviceOperationalStatusEnum.valueOf(deviceOperationalStatus_); + context.ContextOuterClass.DeviceOperationalStatusEnum result = context.ContextOuterClass.DeviceOperationalStatusEnum.forNumber(deviceOperationalStatus_); return result == null ? context.ContextOuterClass.DeviceOperationalStatusEnum.UNRECOGNIZED : result; } @@ -16639,6 +16917,7 @@ public final class ContextOuterClass { if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000010; deviceOperationalStatus_ = value.getNumber(); onChanged(); return this; @@ -16649,6 +16928,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearDeviceOperationalStatus() { + bitField0_ = (bitField0_ & ~0x00000010); deviceOperationalStatus_ = 0; onChanged(); return this; @@ -16657,9 +16937,9 @@ public final class ContextOuterClass { private java.util.List<java.lang.Integer> deviceDrivers_ = java.util.Collections.emptyList(); private void ensureDeviceDriversIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000020) != 0)) { deviceDrivers_ = new java.util.ArrayList<java.lang.Integer>(deviceDrivers_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000020; } } @@ -16739,7 +17019,7 @@ public final class ContextOuterClass { */ public Builder clearDeviceDrivers() { deviceDrivers_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000020); onChanged(); return this; } @@ -16763,8 +17043,8 @@ public final class ContextOuterClass { /** * <code>repeated .context.DeviceDriverEnum device_drivers = 6;</code> - * @param index The index of the value to return. - * @return The enum numeric value on the wire of deviceDrivers at the given index. + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for deviceDrivers to set. * @return This builder for chaining. */ public Builder setDeviceDriversValue(int index, int value) { @@ -16803,9 +17083,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.EndPoint> deviceEndpoints_ = java.util.Collections.emptyList(); private void ensureDeviceEndpointsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!((bitField0_ & 0x00000040) != 0)) { deviceEndpoints_ = new java.util.ArrayList<context.ContextOuterClass.EndPoint>(deviceEndpoints_); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000040; } } @@ -16957,7 +17237,7 @@ public final class ContextOuterClass { public Builder clearDeviceEndpoints() { if (deviceEndpointsBuilder_ == null) { deviceEndpoints_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000040); onChanged(); } else { deviceEndpointsBuilder_.clear(); @@ -17031,7 +17311,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPoint, context.ContextOuterClass.EndPoint.Builder, context.ContextOuterClass.EndPointOrBuilder> getDeviceEndpointsFieldBuilder() { if (deviceEndpointsBuilder_ == null) { - deviceEndpointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPoint, context.ContextOuterClass.EndPoint.Builder, context.ContextOuterClass.EndPointOrBuilder>(deviceEndpoints_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); + deviceEndpointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPoint, context.ContextOuterClass.EndPoint.Builder, context.ContextOuterClass.EndPointOrBuilder>(deviceEndpoints_, ((bitField0_ & 0x00000040) != 0), getParentForChildren(), isClean()); deviceEndpoints_ = null; } return deviceEndpointsBuilder_; @@ -17040,9 +17320,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.Component> components_ = java.util.Collections.emptyList(); private void ensureComponentsIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { + if (!((bitField0_ & 0x00000080) != 0)) { components_ = new java.util.ArrayList<context.ContextOuterClass.Component>(components_); - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000080; } } @@ -17238,7 +17518,7 @@ public final class ContextOuterClass { public Builder clearComponents() { if (componentsBuilder_ == null) { components_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000080); onChanged(); } else { componentsBuilder_.clear(); @@ -17340,7 +17620,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Component, context.ContextOuterClass.Component.Builder, context.ContextOuterClass.ComponentOrBuilder> getComponentsFieldBuilder() { if (componentsBuilder_ == null) { - componentsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Component, context.ContextOuterClass.Component.Builder, context.ContextOuterClass.ComponentOrBuilder>(components_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + componentsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Component, context.ContextOuterClass.Component.Builder, context.ContextOuterClass.ComponentOrBuilder>(components_, ((bitField0_ & 0x00000080) != 0), getParentForChildren(), isClean()); components_ = null; } return componentsBuilder_; @@ -17359,7 +17639,7 @@ public final class ContextOuterClass { * @return Whether the controllerId field is set. */ public boolean hasControllerId() { - return controllerIdBuilder_ != null || controllerId_ != null; + return ((bitField0_ & 0x00000100) != 0); } /** @@ -17391,10 +17671,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } controllerId_ = value; - onChanged(); } else { controllerIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000100; + onChanged(); return this; } @@ -17408,10 +17689,11 @@ public final class ContextOuterClass { public Builder setControllerId(context.ContextOuterClass.DeviceId.Builder builderForValue) { if (controllerIdBuilder_ == null) { controllerId_ = builderForValue.build(); - onChanged(); } else { controllerIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000100; + onChanged(); return this; } @@ -17424,15 +17706,16 @@ public final class ContextOuterClass { */ public Builder mergeControllerId(context.ContextOuterClass.DeviceId value) { if (controllerIdBuilder_ == null) { - if (controllerId_ != null) { - controllerId_ = context.ContextOuterClass.DeviceId.newBuilder(controllerId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000100) != 0) && controllerId_ != null && controllerId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getControllerIdBuilder().mergeFrom(value); } else { controllerId_ = value; } - onChanged(); } else { controllerIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000100; + onChanged(); return this; } @@ -17444,13 +17727,13 @@ public final class ContextOuterClass { * <code>.context.DeviceId controller_id = 9;</code> */ public Builder clearControllerId() { - if (controllerIdBuilder_ == null) { - controllerId_ = null; - onChanged(); - } else { - controllerId_ = null; + bitField0_ = (bitField0_ & ~0x00000100); + controllerId_ = null; + if (controllerIdBuilder_ != null) { + controllerIdBuilder_.dispose(); controllerIdBuilder_ = null; } + onChanged(); return this; } @@ -17462,6 +17745,7 @@ public final class ContextOuterClass { * <code>.context.DeviceId controller_id = 9;</code> */ public context.ContextOuterClass.DeviceId.Builder getControllerIdBuilder() { + bitField0_ |= 0x00000100; onChanged(); return getControllerIdFieldBuilder().getBuilder(); } @@ -17523,7 +17807,17 @@ public final class ContextOuterClass { @java.lang.Override public Device parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Device(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -17626,7 +17920,9 @@ public final class ContextOuterClass { * * <code>map<string, string> attributes = 4;</code> */ - java.lang.String getAttributesOrDefault(java.lang.String key, java.lang.String defaultValue); + /* nullable */ + java.lang.String getAttributesOrDefault(java.lang.String key, /* nullable */ + java.lang.String defaultValue); /** * <pre> @@ -17679,86 +17975,6 @@ public final class ContextOuterClass { return new Component(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Component(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (componentUuid_ != null) { - subBuilder = componentUuid_.toBuilder(); - } - componentUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(componentUuid_); - componentUuid_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 26: - { - java.lang.String s = input.readStringRequireUtf8(); - type_ = s; - break; - } - case 34: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - attributes_ = com.google.protobuf.MapField.newMapField(AttributesDefaultEntryHolder.defaultEntry); - mutable_bitField0_ |= 0x00000001; - } - com.google.protobuf.MapEntry<java.lang.String, java.lang.String> attributes__ = input.readMessage(AttributesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); - attributes_.getMutableMap().put(attributes__.getKey(), attributes__.getValue()); - break; - } - case 42: - { - java.lang.String s = input.readStringRequireUtf8(); - parent_ = s; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Component_descriptor; } @@ -17806,12 +18022,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.UuidOrBuilder getComponentUuidOrBuilder() { - return getComponentUuid(); + return componentUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : componentUuid_; } public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * <code>string name = 2;</code> @@ -17848,7 +18065,8 @@ public final class ContextOuterClass { public static final int TYPE_FIELD_NUMBER = 3; - private volatile java.lang.Object type_; + @SuppressWarnings("serial") + private volatile java.lang.Object type_ = ""; /** * <code>string type = 3;</code> @@ -17890,6 +18108,7 @@ public final class ContextOuterClass { static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry = com.google.protobuf.MapEntry.<java.lang.String, java.lang.String>newDefaultInstance(context.ContextOuterClass.internal_static_context_Component_AttributesEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.STRING, ""); } + @SuppressWarnings("serial") private com.google.protobuf.MapField<java.lang.String, java.lang.String> attributes_; private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetAttributes() { @@ -17913,7 +18132,7 @@ public final class ContextOuterClass { @java.lang.Override public boolean containsAttributes(java.lang.String key) { if (key == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException("map key"); } return internalGetAttributes().getMap().containsKey(key); } @@ -17947,9 +18166,11 @@ public final class ContextOuterClass { * <code>map<string, string> attributes = 4;</code> */ @java.lang.Override - public java.lang.String getAttributesOrDefault(java.lang.String key, java.lang.String defaultValue) { + public /* nullable */ + java.lang.String getAttributesOrDefault(java.lang.String key, /* nullable */ + java.lang.String defaultValue) { if (key == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException("map key"); } java.util.Map<java.lang.String, java.lang.String> map = internalGetAttributes().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; @@ -17965,7 +18186,7 @@ public final class ContextOuterClass { @java.lang.Override public java.lang.String getAttributesOrThrow(java.lang.String key) { if (key == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException("map key"); } java.util.Map<java.lang.String, java.lang.String> map = internalGetAttributes().getMap(); if (!map.containsKey(key)) { @@ -17976,7 +18197,8 @@ public final class ContextOuterClass { public static final int PARENT_FIELD_NUMBER = 5; - private volatile java.lang.Object parent_; + @SuppressWarnings("serial") + private volatile java.lang.Object parent_ = ""; /** * <code>string parent = 5;</code> @@ -18029,17 +18251,17 @@ public final class ContextOuterClass { if (componentUuid_ != null) { output.writeMessage(1, getComponentUuid()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } - if (!getTypeBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(type_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, type_); } com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(output, internalGetAttributes(), AttributesDefaultEntryHolder.defaultEntry, 4); - if (!getParentBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 5, parent_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -18051,20 +18273,20 @@ public final class ContextOuterClass { if (componentUuid_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getComponentUuid()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } - if (!getTypeBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(type_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, type_); } for (java.util.Map.Entry<java.lang.String, java.lang.String> entry : internalGetAttributes().getMap().entrySet()) { com.google.protobuf.MapEntry<java.lang.String, java.lang.String> attributes__ = AttributesDefaultEntryHolder.defaultEntry.newBuilderForType().setKey(entry.getKey()).setValue(entry.getValue()).build(); size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, attributes__); } - if (!getParentBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(parent_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, parent_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -18092,7 +18314,7 @@ public final class ContextOuterClass { return false; if (!getParent().equals(other.getParent())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -18118,7 +18340,7 @@ public final class ContextOuterClass { } hash = (37 * hash) + PARENT_FIELD_NUMBER; hash = (53 * hash) + getParent().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -18236,26 +18458,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Component.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (componentUuidBuilder_ == null) { - componentUuid_ = null; - } else { - componentUuid_ = null; + bitField0_ = 0; + componentUuid_ = null; + if (componentUuidBuilder_ != null) { + componentUuidBuilder_.dispose(); componentUuidBuilder_ = null; } name_ = ""; @@ -18287,49 +18502,31 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Component buildPartial() { context.ContextOuterClass.Component result = new context.ContextOuterClass.Component(this); - int from_bitField0_ = bitField0_; - if (componentUuidBuilder_ == null) { - result.componentUuid_ = componentUuid_; - } else { - result.componentUuid_ = componentUuidBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } - result.name_ = name_; - result.type_ = type_; - result.attributes_ = internalGetAttributes(); - result.attributes_.makeImmutable(); - result.parent_ = parent_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Component result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.componentUuid_ = componentUuidBuilder_ == null ? componentUuid_ : componentUuidBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.type_ = type_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.attributes_ = internalGetAttributes(); + result.attributes_.makeImmutable(); + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.parent_ = parent_; + } } @java.lang.Override @@ -18350,18 +18547,22 @@ public final class ContextOuterClass { } if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000002; onChanged(); } if (!other.getType().isEmpty()) { type_ = other.type_; + bitField0_ |= 0x00000004; onChanged(); } internalGetMutableAttributes().mergeFrom(other.internalGetAttributes()); + bitField0_ |= 0x00000008; if (!other.getParent().isEmpty()) { parent_ = other.parent_; + bitField0_ |= 0x00000010; onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -18373,17 +18574,71 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Component parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getComponentUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + type_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + com.google.protobuf.MapEntry<java.lang.String, java.lang.String> attributes__ = input.readMessage(AttributesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableAttributes().getMutableMap().put(attributes__.getKey(), attributes__.getValue()); + bitField0_ |= 0x00000008; + break; + } + // case 34 + case 42: + { + parent_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } + // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Component) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -18398,7 +18653,7 @@ public final class ContextOuterClass { * @return Whether the componentUuid field is set. */ public boolean hasComponentUuid() { - return componentUuidBuilder_ != null || componentUuid_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -18422,10 +18677,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } componentUuid_ = value; - onChanged(); } else { componentUuidBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -18435,10 +18691,11 @@ public final class ContextOuterClass { public Builder setComponentUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { if (componentUuidBuilder_ == null) { componentUuid_ = builderForValue.build(); - onChanged(); } else { componentUuidBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -18447,15 +18704,16 @@ public final class ContextOuterClass { */ public Builder mergeComponentUuid(context.ContextOuterClass.Uuid value) { if (componentUuidBuilder_ == null) { - if (componentUuid_ != null) { - componentUuid_ = context.ContextOuterClass.Uuid.newBuilder(componentUuid_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && componentUuid_ != null && componentUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getComponentUuidBuilder().mergeFrom(value); } else { componentUuid_ = value; } - onChanged(); } else { componentUuidBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -18463,13 +18721,13 @@ public final class ContextOuterClass { * <code>.context.Uuid component_uuid = 1;</code> */ public Builder clearComponentUuid() { - if (componentUuidBuilder_ == null) { - componentUuid_ = null; - onChanged(); - } else { - componentUuid_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + componentUuid_ = null; + if (componentUuidBuilder_ != null) { + componentUuidBuilder_.dispose(); componentUuidBuilder_ = null; } + onChanged(); return this; } @@ -18477,6 +18735,7 @@ public final class ContextOuterClass { * <code>.context.Uuid component_uuid = 1;</code> */ public context.ContextOuterClass.Uuid.Builder getComponentUuidBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getComponentUuidFieldBuilder().getBuilder(); } @@ -18546,6 +18805,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -18556,6 +18816,7 @@ public final class ContextOuterClass { */ public Builder clearName() { name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -18571,6 +18832,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -18618,6 +18880,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } type_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -18628,6 +18891,7 @@ public final class ContextOuterClass { */ public Builder clearType() { type_ = getDefaultInstance().getType(); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } @@ -18643,6 +18907,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); type_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -18657,14 +18922,14 @@ public final class ContextOuterClass { } private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetMutableAttributes() { - onChanged(); - ; if (attributes_ == null) { attributes_ = com.google.protobuf.MapField.newMapField(AttributesDefaultEntryHolder.defaultEntry); } if (!attributes_.isMutable()) { attributes_ = attributes_.copy(); } + bitField0_ |= 0x00000008; + onChanged(); return attributes_; } @@ -18682,7 +18947,7 @@ public final class ContextOuterClass { @java.lang.Override public boolean containsAttributes(java.lang.String key) { if (key == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException("map key"); } return internalGetAttributes().getMap().containsKey(key); } @@ -18716,9 +18981,11 @@ public final class ContextOuterClass { * <code>map<string, string> attributes = 4;</code> */ @java.lang.Override - public java.lang.String getAttributesOrDefault(java.lang.String key, java.lang.String defaultValue) { + public /* nullable */ + java.lang.String getAttributesOrDefault(java.lang.String key, /* nullable */ + java.lang.String defaultValue) { if (key == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException("map key"); } java.util.Map<java.lang.String, java.lang.String> map = internalGetAttributes().getMap(); return map.containsKey(key) ? map.get(key) : defaultValue; @@ -18734,7 +19001,7 @@ public final class ContextOuterClass { @java.lang.Override public java.lang.String getAttributesOrThrow(java.lang.String key) { if (key == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException("map key"); } java.util.Map<java.lang.String, java.lang.String> map = internalGetAttributes().getMap(); if (!map.containsKey(key)) { @@ -18744,6 +19011,7 @@ public final class ContextOuterClass { } public Builder clearAttributes() { + bitField0_ = (bitField0_ & ~0x00000008); internalGetMutableAttributes().getMutableMap().clear(); return this; } @@ -18757,7 +19025,7 @@ public final class ContextOuterClass { */ public Builder removeAttributes(java.lang.String key) { if (key == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException("map key"); } internalGetMutableAttributes().getMutableMap().remove(key); return this; @@ -18768,6 +19036,7 @@ public final class ContextOuterClass { */ @java.lang.Deprecated public java.util.Map<java.lang.String, java.lang.String> getMutableAttributes() { + bitField0_ |= 0x00000008; return internalGetMutableAttributes().getMutableMap(); } @@ -18780,12 +19049,13 @@ public final class ContextOuterClass { */ public Builder putAttributes(java.lang.String key, java.lang.String value) { if (key == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException("map key"); } if (value == null) { - throw new java.lang.NullPointerException(); + throw new NullPointerException("map value"); } internalGetMutableAttributes().getMutableMap().put(key, value); + bitField0_ |= 0x00000008; return this; } @@ -18798,6 +19068,7 @@ public final class ContextOuterClass { */ public Builder putAllAttributes(java.util.Map<java.lang.String, java.lang.String> values) { internalGetMutableAttributes().getMutableMap().putAll(values); + bitField0_ |= 0x00000008; return this; } @@ -18844,6 +19115,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } parent_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -18854,6 +19126,7 @@ public final class ContextOuterClass { */ public Builder clearParent() { parent_ = getDefaultInstance().getParent(); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); return this; } @@ -18869,6 +19142,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); parent_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -18900,7 +19174,17 @@ public final class ContextOuterClass { @java.lang.Override public Component parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Component(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -18971,57 +19255,6 @@ public final class ContextOuterClass { return new DeviceConfig(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private DeviceConfig(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - configRules_ = new java.util.ArrayList<context.ContextOuterClass.ConfigRule>(); - mutable_bitField0_ |= 0x00000001; - } - configRules_.add(input.readMessage(context.ContextOuterClass.ConfigRule.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - configRules_ = java.util.Collections.unmodifiableList(configRules_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_DeviceConfig_descriptor; } @@ -19033,6 +19266,7 @@ public final class ContextOuterClass { public static final int CONFIG_RULES_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.ConfigRule> configRules_; /** @@ -19093,7 +19327,7 @@ public final class ContextOuterClass { for (int i = 0; i < configRules_.size(); i++) { output.writeMessage(1, configRules_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -19105,7 +19339,7 @@ public final class ContextOuterClass { for (int i = 0; i < configRules_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, configRules_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -19121,7 +19355,7 @@ public final class ContextOuterClass { context.ContextOuterClass.DeviceConfig other = (context.ContextOuterClass.DeviceConfig) obj; if (!getConfigRulesList().equals(other.getConfigRulesList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -19137,7 +19371,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONFIG_RULES_FIELD_NUMBER; hash = (53 * hash) + getConfigRulesList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -19231,29 +19465,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.DeviceConfig.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getConfigRulesFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (configRulesBuilder_ == null) { configRules_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + configRules_ = null; configRulesBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -19279,7 +19507,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.DeviceConfig buildPartial() { context.ContextOuterClass.DeviceConfig result = new context.ContextOuterClass.DeviceConfig(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.DeviceConfig result) { if (configRulesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { configRules_ = java.util.Collections.unmodifiableList(configRules_); @@ -19289,38 +19525,10 @@ public final class ContextOuterClass { } else { result.configRules_ = configRulesBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); } - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.DeviceConfig result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -19360,7 +19568,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -19372,17 +19580,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.DeviceConfig parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ConfigRule m = input.readMessage(context.ContextOuterClass.ConfigRule.parser(), extensionRegistry); + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(m); + } else { + configRulesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.DeviceConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -19652,7 +19890,17 @@ public final class ContextOuterClass { @java.lang.Override public DeviceConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new DeviceConfig(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -19723,57 +19971,6 @@ public final class ContextOuterClass { return new DeviceIdList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private DeviceIdList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - deviceIds_ = new java.util.ArrayList<context.ContextOuterClass.DeviceId>(); - mutable_bitField0_ |= 0x00000001; - } - deviceIds_.add(input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_DeviceIdList_descriptor; } @@ -19785,6 +19982,7 @@ public final class ContextOuterClass { public static final int DEVICE_IDS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.DeviceId> deviceIds_; /** @@ -19845,7 +20043,7 @@ public final class ContextOuterClass { for (int i = 0; i < deviceIds_.size(); i++) { output.writeMessage(1, deviceIds_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -19857,7 +20055,7 @@ public final class ContextOuterClass { for (int i = 0; i < deviceIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, deviceIds_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -19873,7 +20071,7 @@ public final class ContextOuterClass { context.ContextOuterClass.DeviceIdList other = (context.ContextOuterClass.DeviceIdList) obj; if (!getDeviceIdsList().equals(other.getDeviceIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -19889,7 +20087,7 @@ public final class ContextOuterClass { hash = (37 * hash) + DEVICE_IDS_FIELD_NUMBER; hash = (53 * hash) + getDeviceIdsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -19983,29 +20181,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.DeviceIdList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getDeviceIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (deviceIdsBuilder_ == null) { deviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + deviceIds_ = null; deviceIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -20031,7 +20223,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.DeviceIdList buildPartial() { context.ContextOuterClass.DeviceIdList result = new context.ContextOuterClass.DeviceIdList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.DeviceIdList result) { if (deviceIdsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_); @@ -20041,38 +20241,10 @@ public final class ContextOuterClass { } else { result.deviceIds_ = deviceIdsBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); } - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.DeviceIdList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -20112,7 +20284,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -20124,17 +20296,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.DeviceIdList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.DeviceId m = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.add(m); + } else { + deviceIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.DeviceIdList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -20404,7 +20606,17 @@ public final class ContextOuterClass { @java.lang.Override public DeviceIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new DeviceIdList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -20475,57 +20687,6 @@ public final class ContextOuterClass { return new DeviceList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private DeviceList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - devices_ = new java.util.ArrayList<context.ContextOuterClass.Device>(); - mutable_bitField0_ |= 0x00000001; - } - devices_.add(input.readMessage(context.ContextOuterClass.Device.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - devices_ = java.util.Collections.unmodifiableList(devices_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_DeviceList_descriptor; } @@ -20537,6 +20698,7 @@ public final class ContextOuterClass { public static final int DEVICES_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Device> devices_; /** @@ -20597,7 +20759,7 @@ public final class ContextOuterClass { for (int i = 0; i < devices_.size(); i++) { output.writeMessage(1, devices_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -20609,7 +20771,7 @@ public final class ContextOuterClass { for (int i = 0; i < devices_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, devices_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -20625,7 +20787,7 @@ public final class ContextOuterClass { context.ContextOuterClass.DeviceList other = (context.ContextOuterClass.DeviceList) obj; if (!getDevicesList().equals(other.getDevicesList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -20641,7 +20803,7 @@ public final class ContextOuterClass { hash = (37 * hash) + DEVICES_FIELD_NUMBER; hash = (53 * hash) + getDevicesList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -20735,29 +20897,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.DeviceList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getDevicesFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (devicesBuilder_ == null) { devices_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + devices_ = null; devicesBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -20783,7 +20939,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.DeviceList buildPartial() { context.ContextOuterClass.DeviceList result = new context.ContextOuterClass.DeviceList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.DeviceList result) { if (devicesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { devices_ = java.util.Collections.unmodifiableList(devices_); @@ -20793,38 +20957,10 @@ public final class ContextOuterClass { } else { result.devices_ = devicesBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); } - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.DeviceList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -20864,7 +21000,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -20876,17 +21012,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.DeviceList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Device m = input.readMessage(context.ContextOuterClass.Device.parser(), extensionRegistry); + if (devicesBuilder_ == null) { + ensureDevicesIsMutable(); + devices_.add(m); + } else { + devicesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.DeviceList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -21156,7 +21322,17 @@ public final class ContextOuterClass { @java.lang.Override public DeviceList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new DeviceList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -21236,72 +21412,6 @@ public final class ContextOuterClass { return new DeviceFilter(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private DeviceFilter(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.DeviceIdList.Builder subBuilder = null; - if (deviceIds_ != null) { - subBuilder = deviceIds_.toBuilder(); - } - deviceIds_ = input.readMessage(context.ContextOuterClass.DeviceIdList.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceIds_); - deviceIds_ = subBuilder.buildPartial(); - } - break; - } - case 16: - { - includeEndpoints_ = input.readBool(); - break; - } - case 24: - { - includeConfigRules_ = input.readBool(); - break; - } - case 32: - { - includeComponents_ = input.readBool(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_DeviceFilter_descriptor; } @@ -21338,12 +21448,12 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.DeviceIdListOrBuilder getDeviceIdsOrBuilder() { - return getDeviceIds(); + return deviceIds_ == null ? context.ContextOuterClass.DeviceIdList.getDefaultInstance() : deviceIds_; } public static final int INCLUDE_ENDPOINTS_FIELD_NUMBER = 2; - private boolean includeEndpoints_; + private boolean includeEndpoints_ = false; /** * <code>bool include_endpoints = 2;</code> @@ -21356,7 +21466,7 @@ public final class ContextOuterClass { public static final int INCLUDE_CONFIG_RULES_FIELD_NUMBER = 3; - private boolean includeConfigRules_; + private boolean includeConfigRules_ = false; /** * <code>bool include_config_rules = 3;</code> @@ -21369,7 +21479,7 @@ public final class ContextOuterClass { public static final int INCLUDE_COMPONENTS_FIELD_NUMBER = 4; - private boolean includeComponents_; + private boolean includeComponents_ = false; /** * <code>bool include_components = 4;</code> @@ -21407,7 +21517,7 @@ public final class ContextOuterClass { if (includeComponents_ != false) { output.writeBool(4, includeComponents_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -21428,7 +21538,7 @@ public final class ContextOuterClass { if (includeComponents_ != false) { size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, includeComponents_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -21454,7 +21564,7 @@ public final class ContextOuterClass { return false; if (getIncludeComponents() != other.getIncludeComponents()) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -21476,7 +21586,7 @@ public final class ContextOuterClass { hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeConfigRules()); hash = (37 * hash) + INCLUDE_COMPONENTS_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeComponents()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -21570,26 +21680,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.DeviceFilter.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (deviceIdsBuilder_ == null) { - deviceIds_ = null; - } else { - deviceIds_ = null; + bitField0_ = 0; + deviceIds_ = null; + if (deviceIdsBuilder_ != null) { + deviceIdsBuilder_.dispose(); deviceIdsBuilder_ = null; } includeEndpoints_ = false; @@ -21620,46 +21723,27 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.DeviceFilter buildPartial() { context.ContextOuterClass.DeviceFilter result = new context.ContextOuterClass.DeviceFilter(this); - if (deviceIdsBuilder_ == null) { - result.deviceIds_ = deviceIds_; - } else { - result.deviceIds_ = deviceIdsBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } - result.includeEndpoints_ = includeEndpoints_; - result.includeConfigRules_ = includeConfigRules_; - result.includeComponents_ = includeComponents_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.DeviceFilter result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.deviceIds_ = deviceIdsBuilder_ == null ? deviceIds_ : deviceIdsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.includeEndpoints_ = includeEndpoints_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.includeConfigRules_ = includeConfigRules_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.includeComponents_ = includeComponents_; + } } @java.lang.Override @@ -21687,7 +21771,7 @@ public final class ContextOuterClass { if (other.getIncludeComponents() != false) { setIncludeComponents(other.getIncludeComponents()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -21699,20 +21783,68 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.DeviceFilter parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getDeviceIdsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + includeEndpoints_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 24: + { + includeConfigRules_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + includeComponents_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.DeviceFilter) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.DeviceIdList deviceIds_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceIdList, context.ContextOuterClass.DeviceIdList.Builder, context.ContextOuterClass.DeviceIdListOrBuilder> deviceIdsBuilder_; @@ -21722,7 +21854,7 @@ public final class ContextOuterClass { * @return Whether the deviceIds field is set. */ public boolean hasDeviceIds() { - return deviceIdsBuilder_ != null || deviceIds_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -21746,10 +21878,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } deviceIds_ = value; - onChanged(); } else { deviceIdsBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -21759,10 +21892,11 @@ public final class ContextOuterClass { public Builder setDeviceIds(context.ContextOuterClass.DeviceIdList.Builder builderForValue) { if (deviceIdsBuilder_ == null) { deviceIds_ = builderForValue.build(); - onChanged(); } else { deviceIdsBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -21771,15 +21905,16 @@ public final class ContextOuterClass { */ public Builder mergeDeviceIds(context.ContextOuterClass.DeviceIdList value) { if (deviceIdsBuilder_ == null) { - if (deviceIds_ != null) { - deviceIds_ = context.ContextOuterClass.DeviceIdList.newBuilder(deviceIds_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && deviceIds_ != null && deviceIds_ != context.ContextOuterClass.DeviceIdList.getDefaultInstance()) { + getDeviceIdsBuilder().mergeFrom(value); } else { deviceIds_ = value; } - onChanged(); } else { deviceIdsBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -21787,13 +21922,13 @@ public final class ContextOuterClass { * <code>.context.DeviceIdList device_ids = 1;</code> */ public Builder clearDeviceIds() { - if (deviceIdsBuilder_ == null) { - deviceIds_ = null; - onChanged(); - } else { - deviceIds_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + deviceIds_ = null; + if (deviceIdsBuilder_ != null) { + deviceIdsBuilder_.dispose(); deviceIdsBuilder_ = null; } + onChanged(); return this; } @@ -21801,6 +21936,7 @@ public final class ContextOuterClass { * <code>.context.DeviceIdList device_ids = 1;</code> */ public context.ContextOuterClass.DeviceIdList.Builder getDeviceIdsBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getDeviceIdsFieldBuilder().getBuilder(); } @@ -21845,6 +21981,7 @@ public final class ContextOuterClass { */ public Builder setIncludeEndpoints(boolean value) { includeEndpoints_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -21854,6 +21991,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeEndpoints() { + bitField0_ = (bitField0_ & ~0x00000002); includeEndpoints_ = false; onChanged(); return this; @@ -21877,6 +22015,7 @@ public final class ContextOuterClass { */ public Builder setIncludeConfigRules(boolean value) { includeConfigRules_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -21886,6 +22025,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeConfigRules() { + bitField0_ = (bitField0_ & ~0x00000004); includeConfigRules_ = false; onChanged(); return this; @@ -21909,6 +22049,7 @@ public final class ContextOuterClass { */ public Builder setIncludeComponents(boolean value) { includeComponents_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -21918,6 +22059,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeComponents() { + bitField0_ = (bitField0_ & ~0x00000008); includeComponents_ = false; onChanged(); return this; @@ -21950,7 +22092,17 @@ public final class ContextOuterClass { @java.lang.Override public DeviceFilter parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new DeviceFilter(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -22046,83 +22198,6 @@ public final class ContextOuterClass { return new DeviceEvent(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private DeviceEvent(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Event.Builder subBuilder = null; - if (event_ != null) { - subBuilder = event_.toBuilder(); - } - event_ = input.readMessage(context.ContextOuterClass.Event.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(event_); - event_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.DeviceId.Builder subBuilder = null; - if (deviceId_ != null) { - subBuilder = deviceId_.toBuilder(); - } - deviceId_ = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceId_); - deviceId_ = subBuilder.buildPartial(); - } - break; - } - case 26: - { - context.ContextOuterClass.DeviceConfig.Builder subBuilder = null; - if (deviceConfig_ != null) { - subBuilder = deviceConfig_.toBuilder(); - } - deviceConfig_ = input.readMessage(context.ContextOuterClass.DeviceConfig.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceConfig_); - deviceConfig_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_DeviceEvent_descriptor; } @@ -22159,7 +22234,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - return getEvent(); + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } public static final int DEVICE_ID_FIELD_NUMBER = 2; @@ -22189,7 +22264,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { - return getDeviceId(); + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; } public static final int DEVICE_CONFIG_FIELD_NUMBER = 3; @@ -22219,7 +22294,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.DeviceConfigOrBuilder getDeviceConfigOrBuilder() { - return getDeviceConfig(); + return deviceConfig_ == null ? context.ContextOuterClass.DeviceConfig.getDefaultInstance() : deviceConfig_; } private byte memoizedIsInitialized = -1; @@ -22246,7 +22321,7 @@ public final class ContextOuterClass { if (deviceConfig_ != null) { output.writeMessage(3, getDeviceConfig()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -22264,7 +22339,7 @@ public final class ContextOuterClass { if (deviceConfig_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getDeviceConfig()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -22296,7 +22371,7 @@ public final class ContextOuterClass { if (!getDeviceConfig().equals(other.getDeviceConfig())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -22320,7 +22395,7 @@ public final class ContextOuterClass { hash = (37 * hash) + DEVICE_CONFIG_FIELD_NUMBER; hash = (53 * hash) + getDeviceConfig().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -22414,38 +22489,29 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.DeviceEvent.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (eventBuilder_ == null) { - event_ = null; - } else { - event_ = null; + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } - if (deviceIdBuilder_ == null) { - deviceId_ = null; - } else { - deviceId_ = null; + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); deviceIdBuilder_ = null; } - if (deviceConfigBuilder_ == null) { - deviceConfig_ = null; - } else { - deviceConfig_ = null; + deviceConfig_ = null; + if (deviceConfigBuilder_ != null) { + deviceConfigBuilder_.dispose(); deviceConfigBuilder_ = null; } return this; @@ -22473,53 +22539,24 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.DeviceEvent buildPartial() { context.ContextOuterClass.DeviceEvent result = new context.ContextOuterClass.DeviceEvent(this); - if (eventBuilder_ == null) { - result.event_ = event_; - } else { - result.event_ = eventBuilder_.build(); - } - if (deviceIdBuilder_ == null) { - result.deviceId_ = deviceId_; - } else { - result.deviceId_ = deviceIdBuilder_.build(); - } - if (deviceConfigBuilder_ == null) { - result.deviceConfig_ = deviceConfig_; - } else { - result.deviceConfig_ = deviceConfigBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.DeviceEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.deviceConfig_ = deviceConfigBuilder_ == null ? deviceConfig_ : deviceConfigBuilder_.build(); + } } @java.lang.Override @@ -22544,7 +22581,7 @@ public final class ContextOuterClass { if (other.hasDeviceConfig()) { mergeDeviceConfig(other.getDeviceConfig()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -22556,20 +22593,61 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.DeviceEvent parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getDeviceConfigFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.DeviceEvent) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Event event_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; @@ -22579,7 +22657,7 @@ public final class ContextOuterClass { * @return Whether the event field is set. */ public boolean hasEvent() { - return eventBuilder_ != null || event_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -22603,10 +22681,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } event_ = value; - onChanged(); } else { eventBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -22616,10 +22695,11 @@ public final class ContextOuterClass { public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { if (eventBuilder_ == null) { event_ = builderForValue.build(); - onChanged(); } else { eventBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -22628,15 +22708,16 @@ public final class ContextOuterClass { */ public Builder mergeEvent(context.ContextOuterClass.Event value) { if (eventBuilder_ == null) { - if (event_ != null) { - event_ = context.ContextOuterClass.Event.newBuilder(event_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); } else { event_ = value; } - onChanged(); } else { eventBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -22644,13 +22725,13 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public Builder clearEvent() { - if (eventBuilder_ == null) { - event_ = null; - onChanged(); - } else { - event_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } + onChanged(); return this; } @@ -22658,6 +22739,7 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEventFieldBuilder().getBuilder(); } @@ -22693,7 +22775,7 @@ public final class ContextOuterClass { * @return Whether the deviceId field is set. */ public boolean hasDeviceId() { - return deviceIdBuilder_ != null || deviceId_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -22717,10 +22799,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } deviceId_ = value; - onChanged(); } else { deviceIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -22730,10 +22813,11 @@ public final class ContextOuterClass { public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) { if (deviceIdBuilder_ == null) { deviceId_ = builderForValue.build(); - onChanged(); } else { deviceIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -22742,15 +22826,16 @@ public final class ContextOuterClass { */ public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { if (deviceIdBuilder_ == null) { - if (deviceId_ != null) { - deviceId_ = context.ContextOuterClass.DeviceId.newBuilder(deviceId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getDeviceIdBuilder().mergeFrom(value); } else { deviceId_ = value; } - onChanged(); } else { deviceIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -22758,13 +22843,13 @@ public final class ContextOuterClass { * <code>.context.DeviceId device_id = 2;</code> */ public Builder clearDeviceId() { - if (deviceIdBuilder_ == null) { - deviceId_ = null; - onChanged(); - } else { - deviceId_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); deviceIdBuilder_ = null; } + onChanged(); return this; } @@ -22772,6 +22857,7 @@ public final class ContextOuterClass { * <code>.context.DeviceId device_id = 2;</code> */ public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getDeviceIdFieldBuilder().getBuilder(); } @@ -22807,7 +22893,7 @@ public final class ContextOuterClass { * @return Whether the deviceConfig field is set. */ public boolean hasDeviceConfig() { - return deviceConfigBuilder_ != null || deviceConfig_ != null; + return ((bitField0_ & 0x00000004) != 0); } /** @@ -22831,10 +22917,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } deviceConfig_ = value; - onChanged(); } else { deviceConfigBuilder_.setMessage(value); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -22844,10 +22931,11 @@ public final class ContextOuterClass { public Builder setDeviceConfig(context.ContextOuterClass.DeviceConfig.Builder builderForValue) { if (deviceConfigBuilder_ == null) { deviceConfig_ = builderForValue.build(); - onChanged(); } else { deviceConfigBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -22856,15 +22944,16 @@ public final class ContextOuterClass { */ public Builder mergeDeviceConfig(context.ContextOuterClass.DeviceConfig value) { if (deviceConfigBuilder_ == null) { - if (deviceConfig_ != null) { - deviceConfig_ = context.ContextOuterClass.DeviceConfig.newBuilder(deviceConfig_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000004) != 0) && deviceConfig_ != null && deviceConfig_ != context.ContextOuterClass.DeviceConfig.getDefaultInstance()) { + getDeviceConfigBuilder().mergeFrom(value); } else { deviceConfig_ = value; } - onChanged(); } else { deviceConfigBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -22872,13 +22961,13 @@ public final class ContextOuterClass { * <code>.context.DeviceConfig device_config = 3;</code> */ public Builder clearDeviceConfig() { - if (deviceConfigBuilder_ == null) { - deviceConfig_ = null; - onChanged(); - } else { - deviceConfig_ = null; + bitField0_ = (bitField0_ & ~0x00000004); + deviceConfig_ = null; + if (deviceConfigBuilder_ != null) { + deviceConfigBuilder_.dispose(); deviceConfigBuilder_ = null; } + onChanged(); return this; } @@ -22886,6 +22975,7 @@ public final class ContextOuterClass { * <code>.context.DeviceConfig device_config = 3;</code> */ public context.ContextOuterClass.DeviceConfig.Builder getDeviceConfigBuilder() { + bitField0_ |= 0x00000004; onChanged(); return getDeviceConfigFieldBuilder().getBuilder(); } @@ -22939,7 +23029,17 @@ public final class ContextOuterClass { @java.lang.Override public DeviceEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new DeviceEvent(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -23005,57 +23105,6 @@ public final class ContextOuterClass { return new LinkId(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private LinkId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (linkUuid_ != null) { - subBuilder = linkUuid_.toBuilder(); - } - linkUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(linkUuid_); - linkUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_LinkId_descriptor; } @@ -23092,7 +23141,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.UuidOrBuilder getLinkUuidOrBuilder() { - return getLinkUuid(); + return linkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : linkUuid_; } private byte memoizedIsInitialized = -1; @@ -23113,7 +23162,7 @@ public final class ContextOuterClass { if (linkUuid_ != null) { output.writeMessage(1, getLinkUuid()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -23125,7 +23174,7 @@ public final class ContextOuterClass { if (linkUuid_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLinkUuid()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -23145,7 +23194,7 @@ public final class ContextOuterClass { if (!getLinkUuid().equals(other.getLinkUuid())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -23161,7 +23210,7 @@ public final class ContextOuterClass { hash = (37 * hash) + LINK_UUID_FIELD_NUMBER; hash = (53 * hash) + getLinkUuid().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -23259,26 +23308,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.LinkId.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (linkUuidBuilder_ == null) { - linkUuid_ = null; - } else { - linkUuid_ = null; + bitField0_ = 0; + linkUuid_ = null; + if (linkUuidBuilder_ != null) { + linkUuidBuilder_.dispose(); linkUuidBuilder_ = null; } return this; @@ -23306,43 +23348,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.LinkId buildPartial() { context.ContextOuterClass.LinkId result = new context.ContextOuterClass.LinkId(this); - if (linkUuidBuilder_ == null) { - result.linkUuid_ = linkUuid_; - } else { - result.linkUuid_ = linkUuidBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.LinkId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.linkUuid_ = linkUuidBuilder_ == null ? linkUuid_ : linkUuidBuilder_.build(); + } } @java.lang.Override @@ -23361,7 +23378,7 @@ public final class ContextOuterClass { if (other.hasLinkUuid()) { mergeLinkUuid(other.getLinkUuid()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -23373,20 +23390,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.LinkId parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getLinkUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.LinkId) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Uuid linkUuid_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> linkUuidBuilder_; @@ -23396,7 +23440,7 @@ public final class ContextOuterClass { * @return Whether the linkUuid field is set. */ public boolean hasLinkUuid() { - return linkUuidBuilder_ != null || linkUuid_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -23420,10 +23464,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } linkUuid_ = value; - onChanged(); } else { linkUuidBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -23433,10 +23478,11 @@ public final class ContextOuterClass { public Builder setLinkUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { if (linkUuidBuilder_ == null) { linkUuid_ = builderForValue.build(); - onChanged(); } else { linkUuidBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -23445,15 +23491,16 @@ public final class ContextOuterClass { */ public Builder mergeLinkUuid(context.ContextOuterClass.Uuid value) { if (linkUuidBuilder_ == null) { - if (linkUuid_ != null) { - linkUuid_ = context.ContextOuterClass.Uuid.newBuilder(linkUuid_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && linkUuid_ != null && linkUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getLinkUuidBuilder().mergeFrom(value); } else { linkUuid_ = value; } - onChanged(); } else { linkUuidBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -23461,13 +23508,13 @@ public final class ContextOuterClass { * <code>.context.Uuid link_uuid = 1;</code> */ public Builder clearLinkUuid() { - if (linkUuidBuilder_ == null) { - linkUuid_ = null; - onChanged(); - } else { - linkUuid_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + linkUuid_ = null; + if (linkUuidBuilder_ != null) { + linkUuidBuilder_.dispose(); linkUuidBuilder_ = null; } + onChanged(); return this; } @@ -23475,6 +23522,7 @@ public final class ContextOuterClass { * <code>.context.Uuid link_uuid = 1;</code> */ public context.ContextOuterClass.Uuid.Builder getLinkUuidBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getLinkUuidFieldBuilder().getBuilder(); } @@ -23528,7 +23576,17 @@ public final class ContextOuterClass { @java.lang.Override public LinkId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new LinkId(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -23585,54 +23643,6 @@ public final class ContextOuterClass { return new LinkAttributes(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private LinkAttributes(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 13: - { - totalCapacityGbps_ = input.readFloat(); - break; - } - case 21: - { - usedCapacityGbps_ = input.readFloat(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_LinkAttributes_descriptor; } @@ -23644,7 +23654,7 @@ public final class ContextOuterClass { public static final int TOTAL_CAPACITY_GBPS_FIELD_NUMBER = 1; - private float totalCapacityGbps_; + private float totalCapacityGbps_ = 0F; /** * <code>float total_capacity_gbps = 1;</code> @@ -23657,7 +23667,7 @@ public final class ContextOuterClass { public static final int USED_CAPACITY_GBPS_FIELD_NUMBER = 2; - private float usedCapacityGbps_; + private float usedCapacityGbps_ = 0F; /** * <code>float used_capacity_gbps = 2;</code> @@ -23683,13 +23693,13 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (totalCapacityGbps_ != 0F) { + if (java.lang.Float.floatToRawIntBits(totalCapacityGbps_) != 0) { output.writeFloat(1, totalCapacityGbps_); } - if (usedCapacityGbps_ != 0F) { + if (java.lang.Float.floatToRawIntBits(usedCapacityGbps_) != 0) { output.writeFloat(2, usedCapacityGbps_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -23698,13 +23708,13 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (totalCapacityGbps_ != 0F) { + if (java.lang.Float.floatToRawIntBits(totalCapacityGbps_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, totalCapacityGbps_); } - if (usedCapacityGbps_ != 0F) { + if (java.lang.Float.floatToRawIntBits(usedCapacityGbps_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(2, usedCapacityGbps_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -23722,7 +23732,7 @@ public final class ContextOuterClass { return false; if (java.lang.Float.floatToIntBits(getUsedCapacityGbps()) != java.lang.Float.floatToIntBits(other.getUsedCapacityGbps())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -23738,7 +23748,7 @@ public final class ContextOuterClass { hash = (53 * hash) + java.lang.Float.floatToIntBits(getTotalCapacityGbps()); hash = (37 * hash) + USED_CAPACITY_GBPS_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits(getUsedCapacityGbps()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -23832,22 +23842,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.LinkAttributes.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; totalCapacityGbps_ = 0F; usedCapacityGbps_ = 0F; return this; @@ -23875,40 +23879,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.LinkAttributes buildPartial() { context.ContextOuterClass.LinkAttributes result = new context.ContextOuterClass.LinkAttributes(this); - result.totalCapacityGbps_ = totalCapacityGbps_; - result.usedCapacityGbps_ = usedCapacityGbps_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.LinkAttributes result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.totalCapacityGbps_ = totalCapacityGbps_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.usedCapacityGbps_ = usedCapacityGbps_; + } } @java.lang.Override @@ -23930,7 +23915,7 @@ public final class ContextOuterClass { if (other.getUsedCapacityGbps() != 0F) { setUsedCapacityGbps(other.getUsedCapacityGbps()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -23942,20 +23927,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.LinkAttributes parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 13: + { + totalCapacityGbps_ = input.readFloat(); + bitField0_ |= 0x00000001; + break; + } + // case 13 + case 21: + { + usedCapacityGbps_ = input.readFloat(); + bitField0_ |= 0x00000002; + break; + } + // case 21 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.LinkAttributes) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private float totalCapacityGbps_; /** @@ -23974,6 +23993,7 @@ public final class ContextOuterClass { */ public Builder setTotalCapacityGbps(float value) { totalCapacityGbps_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -23983,6 +24003,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearTotalCapacityGbps() { + bitField0_ = (bitField0_ & ~0x00000001); totalCapacityGbps_ = 0F; onChanged(); return this; @@ -24006,6 +24027,7 @@ public final class ContextOuterClass { */ public Builder setUsedCapacityGbps(float value) { usedCapacityGbps_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -24015,6 +24037,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearUsedCapacityGbps() { + bitField0_ = (bitField0_ & ~0x00000002); usedCapacityGbps_ = 0F; onChanged(); return this; @@ -24047,7 +24070,17 @@ public final class ContextOuterClass { @java.lang.Override public LinkAttributes parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new LinkAttributes(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -24099,44 +24132,56 @@ public final class ContextOuterClass { com.google.protobuf.ByteString getNameBytes(); /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The enum numeric value on the wire for linkType. + */ + int getLinkTypeValue(); + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The linkType. + */ + context.ContextOuterClass.LinkTypeEnum getLinkType(); + + /** + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList(); /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ context.ContextOuterClass.EndPointId getLinkEndpointIds(int index); /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ int getLinkEndpointIdsCount(); /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList(); /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index); /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return Whether the attributes field is set. */ boolean hasAttributes(); /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return The attributes. */ context.ContextOuterClass.LinkAttributes getAttributes(); /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ context.ContextOuterClass.LinkAttributesOrBuilder getAttributesOrBuilder(); } @@ -24156,6 +24201,7 @@ public final class ContextOuterClass { private Link() { name_ = ""; + linkType_ = 0; linkEndpointIds_ = java.util.Collections.emptyList(); } @@ -24165,89 +24211,6 @@ public final class ContextOuterClass { return new Link(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Link(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.LinkId.Builder subBuilder = null; - if (linkId_ != null) { - subBuilder = linkId_.toBuilder(); - } - linkId_ = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(linkId_); - linkId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 26: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - linkEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(); - mutable_bitField0_ |= 0x00000001; - } - linkEndpointIds_.add(input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry)); - break; - } - case 34: - { - context.ContextOuterClass.LinkAttributes.Builder subBuilder = null; - if (attributes_ != null) { - subBuilder = attributes_.toBuilder(); - } - attributes_ = input.readMessage(context.ContextOuterClass.LinkAttributes.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(attributes_); - attributes_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - linkEndpointIds_ = java.util.Collections.unmodifiableList(linkEndpointIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Link_descriptor; } @@ -24284,12 +24247,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() { - return getLinkId(); + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; } public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * <code>string name = 2;</code> @@ -24324,12 +24288,36 @@ public final class ContextOuterClass { } } - public static final int LINK_ENDPOINT_IDS_FIELD_NUMBER = 3; + public static final int LINK_TYPE_FIELD_NUMBER = 3; + private int linkType_ = 0; + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The enum numeric value on the wire for linkType. + */ + @java.lang.Override + public int getLinkTypeValue() { + return linkType_; + } + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The linkType. + */ + @java.lang.Override + public context.ContextOuterClass.LinkTypeEnum getLinkType() { + context.ContextOuterClass.LinkTypeEnum result = context.ContextOuterClass.LinkTypeEnum.forNumber(linkType_); + return result == null ? context.ContextOuterClass.LinkTypeEnum.UNRECOGNIZED : result; + } + + public static final int LINK_ENDPOINT_IDS_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.EndPointId> linkEndpointIds_; /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override public java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList() { @@ -24337,7 +24325,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override public java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList() { @@ -24345,7 +24333,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override public int getLinkEndpointIdsCount() { @@ -24353,7 +24341,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override public context.ContextOuterClass.EndPointId getLinkEndpointIds(int index) { @@ -24361,19 +24349,19 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override public context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index) { return linkEndpointIds_.get(index); } - public static final int ATTRIBUTES_FIELD_NUMBER = 4; + public static final int ATTRIBUTES_FIELD_NUMBER = 5; private context.ContextOuterClass.LinkAttributes attributes_; /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return Whether the attributes field is set. */ @java.lang.Override @@ -24382,7 +24370,7 @@ public final class ContextOuterClass { } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return The attributes. */ @java.lang.Override @@ -24391,11 +24379,11 @@ public final class ContextOuterClass { } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ @java.lang.Override public context.ContextOuterClass.LinkAttributesOrBuilder getAttributesOrBuilder() { - return getAttributes(); + return attributes_ == null ? context.ContextOuterClass.LinkAttributes.getDefaultInstance() : attributes_; } private byte memoizedIsInitialized = -1; @@ -24416,16 +24404,19 @@ public final class ContextOuterClass { if (linkId_ != null) { output.writeMessage(1, getLinkId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } + if (linkType_ != context.ContextOuterClass.LinkTypeEnum.LINKTYPE_UNKNOWN.getNumber()) { + output.writeEnum(3, linkType_); + } for (int i = 0; i < linkEndpointIds_.size(); i++) { - output.writeMessage(3, linkEndpointIds_.get(i)); + output.writeMessage(4, linkEndpointIds_.get(i)); } if (attributes_ != null) { - output.writeMessage(4, getAttributes()); + output.writeMessage(5, getAttributes()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -24437,16 +24428,19 @@ public final class ContextOuterClass { if (linkId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLinkId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } + if (linkType_ != context.ContextOuterClass.LinkTypeEnum.LINKTYPE_UNKNOWN.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, linkType_); + } for (int i = 0; i < linkEndpointIds_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, linkEndpointIds_.get(i)); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, linkEndpointIds_.get(i)); } if (attributes_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getAttributes()); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getAttributes()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -24468,6 +24462,8 @@ public final class ContextOuterClass { } if (!getName().equals(other.getName())) return false; + if (linkType_ != other.linkType_) + return false; if (!getLinkEndpointIdsList().equals(other.getLinkEndpointIdsList())) return false; if (hasAttributes() != other.hasAttributes()) @@ -24476,7 +24472,7 @@ public final class ContextOuterClass { if (!getAttributes().equals(other.getAttributes())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -24494,6 +24490,8 @@ public final class ContextOuterClass { } hash = (37 * hash) + NAME_FIELD_NUMBER; hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + LINK_TYPE_FIELD_NUMBER; + hash = (53 * hash) + linkType_; if (getLinkEndpointIdsCount() > 0) { hash = (37 * hash) + LINK_ENDPOINT_IDS_FIELD_NUMBER; hash = (53 * hash) + getLinkEndpointIdsList().hashCode(); @@ -24502,7 +24500,7 @@ public final class ContextOuterClass { hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; hash = (53 * hash) + getAttributes().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -24596,40 +24594,33 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Link.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getLinkEndpointIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); - if (linkIdBuilder_ == null) { - linkId_ = null; - } else { - linkId_ = null; + bitField0_ = 0; + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); linkIdBuilder_ = null; } name_ = ""; + linkType_ = 0; if (linkEndpointIdsBuilder_ == null) { linkEndpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + linkEndpointIds_ = null; linkEndpointIdsBuilder_.clear(); } - if (attributesBuilder_ == null) { - attributes_ = null; - } else { - attributes_ = null; + bitField0_ = (bitField0_ & ~0x00000008); + attributes_ = null; + if (attributesBuilder_ != null) { + attributesBuilder_.dispose(); attributesBuilder_ = null; } return this; @@ -24657,59 +24648,40 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Link buildPartial() { context.ContextOuterClass.Link result = new context.ContextOuterClass.Link(this); - int from_bitField0_ = bitField0_; - if (linkIdBuilder_ == null) { - result.linkId_ = linkId_; - } else { - result.linkId_ = linkIdBuilder_.build(); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } - result.name_ = name_; + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Link result) { if (linkEndpointIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000008) != 0)) { linkEndpointIds_ = java.util.Collections.unmodifiableList(linkEndpointIds_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000008); } result.linkEndpointIds_ = linkEndpointIds_; } else { result.linkEndpointIds_ = linkEndpointIdsBuilder_.build(); } - if (attributesBuilder_ == null) { - result.attributes_ = attributes_; - } else { - result.attributes_ = attributesBuilder_.build(); - } - onBuilt(); - return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Link result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.linkId_ = linkIdBuilder_ == null ? linkId_ : linkIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.linkType_ = linkType_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.attributes_ = attributesBuilder_ == null ? attributes_ : attributesBuilder_.build(); + } } @java.lang.Override @@ -24730,13 +24702,17 @@ public final class ContextOuterClass { } if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000002; onChanged(); } + if (other.linkType_ != 0) { + setLinkTypeValue(other.getLinkTypeValue()); + } if (linkEndpointIdsBuilder_ == null) { if (!other.linkEndpointIds_.isEmpty()) { if (linkEndpointIds_.isEmpty()) { linkEndpointIds_ = other.linkEndpointIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensureLinkEndpointIdsIsMutable(); linkEndpointIds_.addAll(other.linkEndpointIds_); @@ -24749,7 +24725,7 @@ public final class ContextOuterClass { linkEndpointIdsBuilder_.dispose(); linkEndpointIdsBuilder_ = null; linkEndpointIds_ = other.linkEndpointIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000008); linkEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinkEndpointIdsFieldBuilder() : null; } else { linkEndpointIdsBuilder_.addAllMessages(other.linkEndpointIds_); @@ -24759,7 +24735,7 @@ public final class ContextOuterClass { if (other.hasAttributes()) { mergeAttributes(other.getAttributes()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -24771,17 +24747,75 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Link parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getLinkIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 24: + { + linkType_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 34: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(m); + } else { + linkEndpointIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + input.readMessage(getAttributesFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000010; + break; + } + // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Link) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -24796,7 +24830,7 @@ public final class ContextOuterClass { * @return Whether the linkId field is set. */ public boolean hasLinkId() { - return linkIdBuilder_ != null || linkId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -24820,10 +24854,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } linkId_ = value; - onChanged(); } else { linkIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -24833,10 +24868,11 @@ public final class ContextOuterClass { public Builder setLinkId(context.ContextOuterClass.LinkId.Builder builderForValue) { if (linkIdBuilder_ == null) { linkId_ = builderForValue.build(); - onChanged(); } else { linkIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -24845,15 +24881,16 @@ public final class ContextOuterClass { */ public Builder mergeLinkId(context.ContextOuterClass.LinkId value) { if (linkIdBuilder_ == null) { - if (linkId_ != null) { - linkId_ = context.ContextOuterClass.LinkId.newBuilder(linkId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && linkId_ != null && linkId_ != context.ContextOuterClass.LinkId.getDefaultInstance()) { + getLinkIdBuilder().mergeFrom(value); } else { linkId_ = value; } - onChanged(); } else { linkIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -24861,13 +24898,13 @@ public final class ContextOuterClass { * <code>.context.LinkId link_id = 1;</code> */ public Builder clearLinkId() { - if (linkIdBuilder_ == null) { - linkId_ = null; - onChanged(); - } else { - linkId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); linkIdBuilder_ = null; } + onChanged(); return this; } @@ -24875,6 +24912,7 @@ public final class ContextOuterClass { * <code>.context.LinkId link_id = 1;</code> */ public context.ContextOuterClass.LinkId.Builder getLinkIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getLinkIdFieldBuilder().getBuilder(); } @@ -24944,6 +24982,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -24954,6 +24993,7 @@ public final class ContextOuterClass { */ public Builder clearName() { name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -24969,6 +25009,66 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int linkType_ = 0; + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The enum numeric value on the wire for linkType. + */ + @java.lang.Override + public int getLinkTypeValue() { + return linkType_; + } + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @param value The enum numeric value on the wire for linkType to set. + * @return This builder for chaining. + */ + public Builder setLinkTypeValue(int value) { + linkType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return The linkType. + */ + @java.lang.Override + public context.ContextOuterClass.LinkTypeEnum getLinkType() { + context.ContextOuterClass.LinkTypeEnum result = context.ContextOuterClass.LinkTypeEnum.forNumber(linkType_); + return result == null ? context.ContextOuterClass.LinkTypeEnum.UNRECOGNIZED : result; + } + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @param value The linkType to set. + * @return This builder for chaining. + */ + public Builder setLinkType(context.ContextOuterClass.LinkTypeEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + linkType_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * <code>.context.LinkTypeEnum link_type = 3;</code> + * @return This builder for chaining. + */ + public Builder clearLinkType() { + bitField0_ = (bitField0_ & ~0x00000004); + linkType_ = 0; onChanged(); return this; } @@ -24976,16 +25076,16 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.EndPointId> linkEndpointIds_ = java.util.Collections.emptyList(); private void ensureLinkEndpointIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000008) != 0)) { linkEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(linkEndpointIds_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000008; } } private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> linkEndpointIdsBuilder_; /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList() { if (linkEndpointIdsBuilder_ == null) { @@ -24996,7 +25096,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public int getLinkEndpointIdsCount() { if (linkEndpointIdsBuilder_ == null) { @@ -25007,7 +25107,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public context.ContextOuterClass.EndPointId getLinkEndpointIds(int index) { if (linkEndpointIdsBuilder_ == null) { @@ -25018,7 +25118,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder setLinkEndpointIds(int index, context.ContextOuterClass.EndPointId value) { if (linkEndpointIdsBuilder_ == null) { @@ -25035,7 +25135,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder setLinkEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { if (linkEndpointIdsBuilder_ == null) { @@ -25049,7 +25149,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder addLinkEndpointIds(context.ContextOuterClass.EndPointId value) { if (linkEndpointIdsBuilder_ == null) { @@ -25066,7 +25166,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder addLinkEndpointIds(int index, context.ContextOuterClass.EndPointId value) { if (linkEndpointIdsBuilder_ == null) { @@ -25083,7 +25183,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder addLinkEndpointIds(context.ContextOuterClass.EndPointId.Builder builderForValue) { if (linkEndpointIdsBuilder_ == null) { @@ -25097,7 +25197,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder addLinkEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { if (linkEndpointIdsBuilder_ == null) { @@ -25111,7 +25211,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder addAllLinkEndpointIds(java.lang.Iterable<? extends context.ContextOuterClass.EndPointId> values) { if (linkEndpointIdsBuilder_ == null) { @@ -25125,12 +25225,12 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder clearLinkEndpointIds() { if (linkEndpointIdsBuilder_ == null) { linkEndpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { linkEndpointIdsBuilder_.clear(); @@ -25139,7 +25239,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public Builder removeLinkEndpointIds(int index) { if (linkEndpointIdsBuilder_ == null) { @@ -25153,14 +25253,14 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public context.ContextOuterClass.EndPointId.Builder getLinkEndpointIdsBuilder(int index) { return getLinkEndpointIdsFieldBuilder().getBuilder(index); } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index) { if (linkEndpointIdsBuilder_ == null) { @@ -25171,7 +25271,7 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList() { if (linkEndpointIdsBuilder_ != null) { @@ -25182,21 +25282,21 @@ public final class ContextOuterClass { } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public context.ContextOuterClass.EndPointId.Builder addLinkEndpointIdsBuilder() { return getLinkEndpointIdsFieldBuilder().addBuilder(context.ContextOuterClass.EndPointId.getDefaultInstance()); } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public context.ContextOuterClass.EndPointId.Builder addLinkEndpointIdsBuilder(int index) { return getLinkEndpointIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPointId.getDefaultInstance()); } /** - * <code>repeated .context.EndPointId link_endpoint_ids = 3;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ public java.util.List<context.ContextOuterClass.EndPointId.Builder> getLinkEndpointIdsBuilderList() { return getLinkEndpointIdsFieldBuilder().getBuilderList(); @@ -25204,7 +25304,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsFieldBuilder() { if (linkEndpointIdsBuilder_ == null) { - linkEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(linkEndpointIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + linkEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(linkEndpointIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); linkEndpointIds_ = null; } return linkEndpointIdsBuilder_; @@ -25215,15 +25315,15 @@ public final class ContextOuterClass { private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkAttributes, context.ContextOuterClass.LinkAttributes.Builder, context.ContextOuterClass.LinkAttributesOrBuilder> attributesBuilder_; /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return Whether the attributes field is set. */ public boolean hasAttributes() { - return attributesBuilder_ != null || attributes_ != null; + return ((bitField0_ & 0x00000010) != 0); } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> * @return The attributes. */ public context.ContextOuterClass.LinkAttributes getAttributes() { @@ -25235,7 +25335,7 @@ public final class ContextOuterClass { } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public Builder setAttributes(context.ContextOuterClass.LinkAttributes value) { if (attributesBuilder_ == null) { @@ -25243,67 +25343,71 @@ public final class ContextOuterClass { throw new NullPointerException(); } attributes_ = value; - onChanged(); } else { attributesBuilder_.setMessage(value); } + bitField0_ |= 0x00000010; + onChanged(); return this; } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public Builder setAttributes(context.ContextOuterClass.LinkAttributes.Builder builderForValue) { if (attributesBuilder_ == null) { attributes_ = builderForValue.build(); - onChanged(); } else { attributesBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000010; + onChanged(); return this; } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public Builder mergeAttributes(context.ContextOuterClass.LinkAttributes value) { if (attributesBuilder_ == null) { - if (attributes_ != null) { - attributes_ = context.ContextOuterClass.LinkAttributes.newBuilder(attributes_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000010) != 0) && attributes_ != null && attributes_ != context.ContextOuterClass.LinkAttributes.getDefaultInstance()) { + getAttributesBuilder().mergeFrom(value); } else { attributes_ = value; } - onChanged(); } else { attributesBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000010; + onChanged(); return this; } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public Builder clearAttributes() { - if (attributesBuilder_ == null) { - attributes_ = null; - onChanged(); - } else { - attributes_ = null; + bitField0_ = (bitField0_ & ~0x00000010); + attributes_ = null; + if (attributesBuilder_ != null) { + attributesBuilder_.dispose(); attributesBuilder_ = null; } + onChanged(); return this; } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public context.ContextOuterClass.LinkAttributes.Builder getAttributesBuilder() { + bitField0_ |= 0x00000010; onChanged(); return getAttributesFieldBuilder().getBuilder(); } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ public context.ContextOuterClass.LinkAttributesOrBuilder getAttributesOrBuilder() { if (attributesBuilder_ != null) { @@ -25314,7 +25418,7 @@ public final class ContextOuterClass { } /** - * <code>.context.LinkAttributes attributes = 4;</code> + * <code>.context.LinkAttributes attributes = 5;</code> */ private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkAttributes, context.ContextOuterClass.LinkAttributes.Builder, context.ContextOuterClass.LinkAttributesOrBuilder> getAttributesFieldBuilder() { if (attributesBuilder_ == null) { @@ -25351,7 +25455,17 @@ public final class ContextOuterClass { @java.lang.Override public Link parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Link(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -25422,57 +25536,6 @@ public final class ContextOuterClass { return new LinkIdList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private LinkIdList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - linkIds_ = new java.util.ArrayList<context.ContextOuterClass.LinkId>(); - mutable_bitField0_ |= 0x00000001; - } - linkIds_.add(input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - linkIds_ = java.util.Collections.unmodifiableList(linkIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_LinkIdList_descriptor; } @@ -25484,6 +25547,7 @@ public final class ContextOuterClass { public static final int LINK_IDS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.LinkId> linkIds_; /** @@ -25544,7 +25608,7 @@ public final class ContextOuterClass { for (int i = 0; i < linkIds_.size(); i++) { output.writeMessage(1, linkIds_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -25556,7 +25620,7 @@ public final class ContextOuterClass { for (int i = 0; i < linkIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, linkIds_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -25572,7 +25636,7 @@ public final class ContextOuterClass { context.ContextOuterClass.LinkIdList other = (context.ContextOuterClass.LinkIdList) obj; if (!getLinkIdsList().equals(other.getLinkIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -25588,7 +25652,7 @@ public final class ContextOuterClass { hash = (37 * hash) + LINK_IDS_FIELD_NUMBER; hash = (53 * hash) + getLinkIdsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -25682,29 +25746,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.LinkIdList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getLinkIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (linkIdsBuilder_ == null) { linkIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + linkIds_ = null; linkIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -25730,7 +25788,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.LinkIdList buildPartial() { context.ContextOuterClass.LinkIdList result = new context.ContextOuterClass.LinkIdList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.LinkIdList result) { if (linkIdsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { linkIds_ = java.util.Collections.unmodifiableList(linkIds_); @@ -25740,38 +25806,10 @@ public final class ContextOuterClass { } else { result.linkIds_ = linkIdsBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); } - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.LinkIdList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -25811,7 +25849,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -25823,17 +25861,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.LinkIdList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.LinkId m = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry); + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.add(m); + } else { + linkIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.LinkIdList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -26103,7 +26171,17 @@ public final class ContextOuterClass { @java.lang.Override public LinkIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new LinkIdList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -26174,57 +26252,6 @@ public final class ContextOuterClass { return new LinkList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private LinkList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - links_ = new java.util.ArrayList<context.ContextOuterClass.Link>(); - mutable_bitField0_ |= 0x00000001; - } - links_.add(input.readMessage(context.ContextOuterClass.Link.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - links_ = java.util.Collections.unmodifiableList(links_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_LinkList_descriptor; } @@ -26236,6 +26263,7 @@ public final class ContextOuterClass { public static final int LINKS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Link> links_; /** @@ -26296,7 +26324,7 @@ public final class ContextOuterClass { for (int i = 0; i < links_.size(); i++) { output.writeMessage(1, links_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -26308,7 +26336,7 @@ public final class ContextOuterClass { for (int i = 0; i < links_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, links_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -26324,7 +26352,7 @@ public final class ContextOuterClass { context.ContextOuterClass.LinkList other = (context.ContextOuterClass.LinkList) obj; if (!getLinksList().equals(other.getLinksList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -26340,7 +26368,7 @@ public final class ContextOuterClass { hash = (37 * hash) + LINKS_FIELD_NUMBER; hash = (53 * hash) + getLinksList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -26434,29 +26462,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.LinkList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getLinksFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (linksBuilder_ == null) { links_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + links_ = null; linksBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -26482,7 +26504,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.LinkList buildPartial() { context.ContextOuterClass.LinkList result = new context.ContextOuterClass.LinkList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.LinkList result) { if (linksBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { links_ = java.util.Collections.unmodifiableList(links_); @@ -26492,38 +26522,10 @@ public final class ContextOuterClass { } else { result.links_ = linksBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); } - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.LinkList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -26563,7 +26565,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -26575,17 +26577,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.LinkList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Link m = input.readMessage(context.ContextOuterClass.Link.parser(), extensionRegistry); + if (linksBuilder_ == null) { + ensureLinksIsMutable(); + links_.add(m); + } else { + linksBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.LinkList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -26855,7 +26887,17 @@ public final class ContextOuterClass { @java.lang.Override public LinkList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new LinkList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -26934,70 +26976,6 @@ public final class ContextOuterClass { return new LinkEvent(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private LinkEvent(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Event.Builder subBuilder = null; - if (event_ != null) { - subBuilder = event_.toBuilder(); - } - event_ = input.readMessage(context.ContextOuterClass.Event.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(event_); - event_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.LinkId.Builder subBuilder = null; - if (linkId_ != null) { - subBuilder = linkId_.toBuilder(); - } - linkId_ = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(linkId_); - linkId_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_LinkEvent_descriptor; } @@ -27034,7 +27012,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - return getEvent(); + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } public static final int LINK_ID_FIELD_NUMBER = 2; @@ -27064,7 +27042,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() { - return getLinkId(); + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; } private byte memoizedIsInitialized = -1; @@ -27088,7 +27066,7 @@ public final class ContextOuterClass { if (linkId_ != null) { output.writeMessage(2, getLinkId()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -27103,7 +27081,7 @@ public final class ContextOuterClass { if (linkId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getLinkId()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -27129,7 +27107,7 @@ public final class ContextOuterClass { if (!getLinkId().equals(other.getLinkId())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -27149,7 +27127,7 @@ public final class ContextOuterClass { hash = (37 * hash) + LINK_ID_FIELD_NUMBER; hash = (53 * hash) + getLinkId().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -27243,32 +27221,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.LinkEvent.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (eventBuilder_ == null) { - event_ = null; - } else { - event_ = null; + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } - if (linkIdBuilder_ == null) { - linkId_ = null; - } else { - linkId_ = null; + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); linkIdBuilder_ = null; } return this; @@ -27296,48 +27266,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.LinkEvent buildPartial() { context.ContextOuterClass.LinkEvent result = new context.ContextOuterClass.LinkEvent(this); - if (eventBuilder_ == null) { - result.event_ = event_; - } else { - result.event_ = eventBuilder_.build(); - } - if (linkIdBuilder_ == null) { - result.linkId_ = linkId_; - } else { - result.linkId_ = linkIdBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.LinkEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.linkId_ = linkIdBuilder_ == null ? linkId_ : linkIdBuilder_.build(); + } } @java.lang.Override @@ -27359,7 +27302,7 @@ public final class ContextOuterClass { if (other.hasLinkId()) { mergeLinkId(other.getLinkId()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -27371,20 +27314,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.LinkEvent parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getLinkIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.LinkEvent) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Event event_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; @@ -27394,7 +27371,7 @@ public final class ContextOuterClass { * @return Whether the event field is set. */ public boolean hasEvent() { - return eventBuilder_ != null || event_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -27418,10 +27395,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } event_ = value; - onChanged(); } else { eventBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -27431,10 +27409,11 @@ public final class ContextOuterClass { public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { if (eventBuilder_ == null) { event_ = builderForValue.build(); - onChanged(); } else { eventBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -27443,15 +27422,16 @@ public final class ContextOuterClass { */ public Builder mergeEvent(context.ContextOuterClass.Event value) { if (eventBuilder_ == null) { - if (event_ != null) { - event_ = context.ContextOuterClass.Event.newBuilder(event_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); } else { event_ = value; } - onChanged(); } else { eventBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -27459,13 +27439,13 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public Builder clearEvent() { - if (eventBuilder_ == null) { - event_ = null; - onChanged(); - } else { - event_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } + onChanged(); return this; } @@ -27473,6 +27453,7 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEventFieldBuilder().getBuilder(); } @@ -27508,7 +27489,7 @@ public final class ContextOuterClass { * @return Whether the linkId field is set. */ public boolean hasLinkId() { - return linkIdBuilder_ != null || linkId_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -27532,10 +27513,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } linkId_ = value; - onChanged(); } else { linkIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -27545,10 +27527,11 @@ public final class ContextOuterClass { public Builder setLinkId(context.ContextOuterClass.LinkId.Builder builderForValue) { if (linkIdBuilder_ == null) { linkId_ = builderForValue.build(); - onChanged(); } else { linkIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -27557,15 +27540,16 @@ public final class ContextOuterClass { */ public Builder mergeLinkId(context.ContextOuterClass.LinkId value) { if (linkIdBuilder_ == null) { - if (linkId_ != null) { - linkId_ = context.ContextOuterClass.LinkId.newBuilder(linkId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && linkId_ != null && linkId_ != context.ContextOuterClass.LinkId.getDefaultInstance()) { + getLinkIdBuilder().mergeFrom(value); } else { linkId_ = value; } - onChanged(); } else { linkIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -27573,13 +27557,13 @@ public final class ContextOuterClass { * <code>.context.LinkId link_id = 2;</code> */ public Builder clearLinkId() { - if (linkIdBuilder_ == null) { - linkId_ = null; - onChanged(); - } else { - linkId_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); linkIdBuilder_ = null; } + onChanged(); return this; } @@ -27587,6 +27571,7 @@ public final class ContextOuterClass { * <code>.context.LinkId link_id = 2;</code> */ public context.ContextOuterClass.LinkId.Builder getLinkIdBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getLinkIdFieldBuilder().getBuilder(); } @@ -27640,7 +27625,17 @@ public final class ContextOuterClass { @java.lang.Override public LinkEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new LinkEvent(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -27723,70 +27718,6 @@ public final class ContextOuterClass { return new ServiceId(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ServiceId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.ContextId.Builder subBuilder = null; - if (contextId_ != null) { - subBuilder = contextId_.toBuilder(); - } - contextId_ = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextId_); - contextId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (serviceUuid_ != null) { - subBuilder = serviceUuid_.toBuilder(); - } - serviceUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(serviceUuid_); - serviceUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ServiceId_descriptor; } @@ -27823,7 +27754,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return getContextId(); + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } public static final int SERVICE_UUID_FIELD_NUMBER = 2; @@ -27853,7 +27784,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.UuidOrBuilder getServiceUuidOrBuilder() { - return getServiceUuid(); + return serviceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : serviceUuid_; } private byte memoizedIsInitialized = -1; @@ -27877,7 +27808,7 @@ public final class ContextOuterClass { if (serviceUuid_ != null) { output.writeMessage(2, getServiceUuid()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -27892,7 +27823,7 @@ public final class ContextOuterClass { if (serviceUuid_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getServiceUuid()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -27918,7 +27849,7 @@ public final class ContextOuterClass { if (!getServiceUuid().equals(other.getServiceUuid())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -27938,7 +27869,7 @@ public final class ContextOuterClass { hash = (37 * hash) + SERVICE_UUID_FIELD_NUMBER; hash = (53 * hash) + getServiceUuid().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -28036,32 +27967,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ServiceId.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (contextIdBuilder_ == null) { - contextId_ = null; - } else { - contextId_ = null; + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } - if (serviceUuidBuilder_ == null) { - serviceUuid_ = null; - } else { - serviceUuid_ = null; + serviceUuid_ = null; + if (serviceUuidBuilder_ != null) { + serviceUuidBuilder_.dispose(); serviceUuidBuilder_ = null; } return this; @@ -28089,48 +28012,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ServiceId buildPartial() { context.ContextOuterClass.ServiceId result = new context.ContextOuterClass.ServiceId(this); - if (contextIdBuilder_ == null) { - result.contextId_ = contextId_; - } else { - result.contextId_ = contextIdBuilder_.build(); - } - if (serviceUuidBuilder_ == null) { - result.serviceUuid_ = serviceUuid_; - } else { - result.serviceUuid_ = serviceUuidBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ServiceId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.serviceUuid_ = serviceUuidBuilder_ == null ? serviceUuid_ : serviceUuidBuilder_.build(); + } } @java.lang.Override @@ -28152,7 +28048,7 @@ public final class ContextOuterClass { if (other.hasServiceUuid()) { mergeServiceUuid(other.getServiceUuid()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -28164,20 +28060,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ServiceId parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getServiceUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ServiceId) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.ContextId contextId_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; @@ -28187,7 +28117,7 @@ public final class ContextOuterClass { * @return Whether the contextId field is set. */ public boolean hasContextId() { - return contextIdBuilder_ != null || contextId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -28211,10 +28141,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } contextId_ = value; - onChanged(); } else { contextIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -28224,10 +28155,11 @@ public final class ContextOuterClass { public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { if (contextIdBuilder_ == null) { contextId_ = builderForValue.build(); - onChanged(); } else { contextIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -28236,15 +28168,16 @@ public final class ContextOuterClass { */ public Builder mergeContextId(context.ContextOuterClass.ContextId value) { if (contextIdBuilder_ == null) { - if (contextId_ != null) { - contextId_ = context.ContextOuterClass.ContextId.newBuilder(contextId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); } else { contextId_ = value; } - onChanged(); } else { contextIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -28252,13 +28185,13 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 1;</code> */ public Builder clearContextId() { - if (contextIdBuilder_ == null) { - contextId_ = null; - onChanged(); - } else { - contextId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } + onChanged(); return this; } @@ -28266,6 +28199,7 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 1;</code> */ public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getContextIdFieldBuilder().getBuilder(); } @@ -28301,7 +28235,7 @@ public final class ContextOuterClass { * @return Whether the serviceUuid field is set. */ public boolean hasServiceUuid() { - return serviceUuidBuilder_ != null || serviceUuid_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -28325,10 +28259,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } serviceUuid_ = value; - onChanged(); } else { serviceUuidBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -28338,10 +28273,11 @@ public final class ContextOuterClass { public Builder setServiceUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { if (serviceUuidBuilder_ == null) { serviceUuid_ = builderForValue.build(); - onChanged(); } else { serviceUuidBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -28350,15 +28286,16 @@ public final class ContextOuterClass { */ public Builder mergeServiceUuid(context.ContextOuterClass.Uuid value) { if (serviceUuidBuilder_ == null) { - if (serviceUuid_ != null) { - serviceUuid_ = context.ContextOuterClass.Uuid.newBuilder(serviceUuid_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && serviceUuid_ != null && serviceUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getServiceUuidBuilder().mergeFrom(value); } else { serviceUuid_ = value; } - onChanged(); } else { serviceUuidBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -28366,13 +28303,13 @@ public final class ContextOuterClass { * <code>.context.Uuid service_uuid = 2;</code> */ public Builder clearServiceUuid() { - if (serviceUuidBuilder_ == null) { - serviceUuid_ = null; - onChanged(); - } else { - serviceUuid_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + serviceUuid_ = null; + if (serviceUuidBuilder_ != null) { + serviceUuidBuilder_.dispose(); serviceUuidBuilder_ = null; } + onChanged(); return this; } @@ -28380,6 +28317,7 @@ public final class ContextOuterClass { * <code>.context.Uuid service_uuid = 2;</code> */ public context.ContextOuterClass.Uuid.Builder getServiceUuidBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getServiceUuidFieldBuilder().getBuilder(); } @@ -28433,7 +28371,17 @@ public final class ContextOuterClass { @java.lang.Override public ServiceId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ServiceId(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -28624,133 +28572,6 @@ public final class ContextOuterClass { return new Service(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Service(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.ServiceId.Builder subBuilder = null; - if (serviceId_ != null) { - subBuilder = serviceId_.toBuilder(); - } - serviceId_ = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(serviceId_); - serviceId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 24: - { - int rawValue = input.readEnum(); - serviceType_ = rawValue; - break; - } - case 34: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - serviceEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(); - mutable_bitField0_ |= 0x00000001; - } - serviceEndpointIds_.add(input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry)); - break; - } - case 42: - { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - serviceConstraints_ = new java.util.ArrayList<context.ContextOuterClass.Constraint>(); - mutable_bitField0_ |= 0x00000002; - } - serviceConstraints_.add(input.readMessage(context.ContextOuterClass.Constraint.parser(), extensionRegistry)); - break; - } - case 50: - { - context.ContextOuterClass.ServiceStatus.Builder subBuilder = null; - if (serviceStatus_ != null) { - subBuilder = serviceStatus_.toBuilder(); - } - serviceStatus_ = input.readMessage(context.ContextOuterClass.ServiceStatus.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(serviceStatus_); - serviceStatus_ = subBuilder.buildPartial(); - } - break; - } - case 58: - { - context.ContextOuterClass.ServiceConfig.Builder subBuilder = null; - if (serviceConfig_ != null) { - subBuilder = serviceConfig_.toBuilder(); - } - serviceConfig_ = input.readMessage(context.ContextOuterClass.ServiceConfig.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(serviceConfig_); - serviceConfig_ = subBuilder.buildPartial(); - } - break; - } - case 66: - { - context.ContextOuterClass.Timestamp.Builder subBuilder = null; - if (timestamp_ != null) { - subBuilder = timestamp_.toBuilder(); - } - timestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(timestamp_); - timestamp_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - serviceEndpointIds_ = java.util.Collections.unmodifiableList(serviceEndpointIds_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - serviceConstraints_ = java.util.Collections.unmodifiableList(serviceConstraints_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Service_descriptor; } @@ -28787,12 +28608,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { - return getServiceId(); + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * <code>string name = 2;</code> @@ -28829,7 +28651,7 @@ public final class ContextOuterClass { public static final int SERVICE_TYPE_FIELD_NUMBER = 3; - private int serviceType_; + private int serviceType_ = 0; /** * <code>.context.ServiceTypeEnum service_type = 3;</code> @@ -28846,13 +28668,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ServiceTypeEnum getServiceType() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.ServiceTypeEnum result = context.ContextOuterClass.ServiceTypeEnum.valueOf(serviceType_); + context.ContextOuterClass.ServiceTypeEnum result = context.ContextOuterClass.ServiceTypeEnum.forNumber(serviceType_); return result == null ? context.ContextOuterClass.ServiceTypeEnum.UNRECOGNIZED : result; } public static final int SERVICE_ENDPOINT_IDS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.EndPointId> serviceEndpointIds_; /** @@ -28897,6 +28719,7 @@ public final class ContextOuterClass { public static final int SERVICE_CONSTRAINTS_FIELD_NUMBER = 5; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Constraint> serviceConstraints_; /** @@ -28966,7 +28789,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ServiceStatusOrBuilder getServiceStatusOrBuilder() { - return getServiceStatus(); + return serviceStatus_ == null ? context.ContextOuterClass.ServiceStatus.getDefaultInstance() : serviceStatus_; } public static final int SERVICE_CONFIG_FIELD_NUMBER = 7; @@ -28996,7 +28819,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ServiceConfigOrBuilder getServiceConfigOrBuilder() { - return getServiceConfig(); + return serviceConfig_ == null ? context.ContextOuterClass.ServiceConfig.getDefaultInstance() : serviceConfig_; } public static final int TIMESTAMP_FIELD_NUMBER = 8; @@ -29026,7 +28849,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { - return getTimestamp(); + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; } private byte memoizedIsInitialized = -1; @@ -29047,7 +28870,7 @@ public final class ContextOuterClass { if (serviceId_ != null) { output.writeMessage(1, getServiceId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } if (serviceType_ != context.ContextOuterClass.ServiceTypeEnum.SERVICETYPE_UNKNOWN.getNumber()) { @@ -29068,7 +28891,7 @@ public final class ContextOuterClass { if (timestamp_ != null) { output.writeMessage(8, getTimestamp()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -29080,7 +28903,7 @@ public final class ContextOuterClass { if (serviceId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getServiceId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } if (serviceType_ != context.ContextOuterClass.ServiceTypeEnum.SERVICETYPE_UNKNOWN.getNumber()) { @@ -29101,7 +28924,7 @@ public final class ContextOuterClass { if (timestamp_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getTimestamp()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -29147,7 +28970,7 @@ public final class ContextOuterClass { if (!getTimestamp().equals(other.getTimestamp())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -29187,7 +29010,7 @@ public final class ContextOuterClass { hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; hash = (53 * hash) + getTimestamp().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -29281,60 +29104,50 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Service.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getServiceEndpointIdsFieldBuilder(); - getServiceConstraintsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); - if (serviceIdBuilder_ == null) { - serviceId_ = null; - } else { - serviceId_ = null; + bitField0_ = 0; + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); serviceIdBuilder_ = null; } name_ = ""; serviceType_ = 0; if (serviceEndpointIdsBuilder_ == null) { serviceEndpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + serviceEndpointIds_ = null; serviceEndpointIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000008); if (serviceConstraintsBuilder_ == null) { serviceConstraints_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); } else { + serviceConstraints_ = null; serviceConstraintsBuilder_.clear(); } - if (serviceStatusBuilder_ == null) { - serviceStatus_ = null; - } else { - serviceStatus_ = null; + bitField0_ = (bitField0_ & ~0x00000010); + serviceStatus_ = null; + if (serviceStatusBuilder_ != null) { + serviceStatusBuilder_.dispose(); serviceStatusBuilder_ = null; } - if (serviceConfigBuilder_ == null) { - serviceConfig_ = null; - } else { - serviceConfig_ = null; + serviceConfig_ = null; + if (serviceConfigBuilder_ != null) { + serviceConfigBuilder_.dispose(); serviceConfigBuilder_ = null; } - if (timestampBuilder_ == null) { - timestamp_ = null; - } else { - timestamp_ = null; + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); timestampBuilder_ = null; } return this; @@ -29362,79 +29175,55 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Service buildPartial() { context.ContextOuterClass.Service result = new context.ContextOuterClass.Service(this); - int from_bitField0_ = bitField0_; - if (serviceIdBuilder_ == null) { - result.serviceId_ = serviceId_; - } else { - result.serviceId_ = serviceIdBuilder_.build(); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } - result.name_ = name_; - result.serviceType_ = serviceType_; + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Service result) { if (serviceEndpointIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000008) != 0)) { serviceEndpointIds_ = java.util.Collections.unmodifiableList(serviceEndpointIds_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000008); } result.serviceEndpointIds_ = serviceEndpointIds_; } else { result.serviceEndpointIds_ = serviceEndpointIdsBuilder_.build(); } if (serviceConstraintsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { + if (((bitField0_ & 0x00000010) != 0)) { serviceConstraints_ = java.util.Collections.unmodifiableList(serviceConstraints_); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000010); } result.serviceConstraints_ = serviceConstraints_; } else { result.serviceConstraints_ = serviceConstraintsBuilder_.build(); } - if (serviceStatusBuilder_ == null) { - result.serviceStatus_ = serviceStatus_; - } else { - result.serviceStatus_ = serviceStatusBuilder_.build(); + } + + private void buildPartial0(context.ContextOuterClass.Service result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.serviceId_ = serviceIdBuilder_ == null ? serviceId_ : serviceIdBuilder_.build(); } - if (serviceConfigBuilder_ == null) { - result.serviceConfig_ = serviceConfig_; - } else { - result.serviceConfig_ = serviceConfigBuilder_.build(); + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; } - if (timestampBuilder_ == null) { - result.timestamp_ = timestamp_; - } else { - result.timestamp_ = timestampBuilder_.build(); + if (((from_bitField0_ & 0x00000004) != 0)) { + result.serviceType_ = serviceType_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.serviceStatus_ = serviceStatusBuilder_ == null ? serviceStatus_ : serviceStatusBuilder_.build(); + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.serviceConfig_ = serviceConfigBuilder_ == null ? serviceConfig_ : serviceConfigBuilder_.build(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); } @java.lang.Override @@ -29455,6 +29244,7 @@ public final class ContextOuterClass { } if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000002; onChanged(); } if (other.serviceType_ != 0) { @@ -29464,7 +29254,7 @@ public final class ContextOuterClass { if (!other.serviceEndpointIds_.isEmpty()) { if (serviceEndpointIds_.isEmpty()) { serviceEndpointIds_ = other.serviceEndpointIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensureServiceEndpointIdsIsMutable(); serviceEndpointIds_.addAll(other.serviceEndpointIds_); @@ -29477,7 +29267,7 @@ public final class ContextOuterClass { serviceEndpointIdsBuilder_.dispose(); serviceEndpointIdsBuilder_ = null; serviceEndpointIds_ = other.serviceEndpointIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000008); serviceEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getServiceEndpointIdsFieldBuilder() : null; } else { serviceEndpointIdsBuilder_.addAllMessages(other.serviceEndpointIds_); @@ -29488,7 +29278,7 @@ public final class ContextOuterClass { if (!other.serviceConstraints_.isEmpty()) { if (serviceConstraints_.isEmpty()) { serviceConstraints_ = other.serviceConstraints_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000010); } else { ensureServiceConstraintsIsMutable(); serviceConstraints_.addAll(other.serviceConstraints_); @@ -29501,7 +29291,7 @@ public final class ContextOuterClass { serviceConstraintsBuilder_.dispose(); serviceConstraintsBuilder_ = null; serviceConstraints_ = other.serviceConstraints_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000010); serviceConstraintsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getServiceConstraintsFieldBuilder() : null; } else { serviceConstraintsBuilder_.addAllMessages(other.serviceConstraints_); @@ -29517,7 +29307,7 @@ public final class ContextOuterClass { if (other.hasTimestamp()) { mergeTimestamp(other.getTimestamp()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -29529,17 +29319,101 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Service parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getServiceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 24: + { + serviceType_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 34: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (serviceEndpointIdsBuilder_ == null) { + ensureServiceEndpointIdsIsMutable(); + serviceEndpointIds_.add(m); + } else { + serviceEndpointIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + context.ContextOuterClass.Constraint m = input.readMessage(context.ContextOuterClass.Constraint.parser(), extensionRegistry); + if (serviceConstraintsBuilder_ == null) { + ensureServiceConstraintsIsMutable(); + serviceConstraints_.add(m); + } else { + serviceConstraintsBuilder_.addMessage(m); + } + break; + } + // case 42 + case 50: + { + input.readMessage(getServiceStatusFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000020; + break; + } + // case 50 + case 58: + { + input.readMessage(getServiceConfigFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000040; + break; + } + // case 58 + case 66: + { + input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000080; + break; + } + // case 66 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Service) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -29554,7 +29428,7 @@ public final class ContextOuterClass { * @return Whether the serviceId field is set. */ public boolean hasServiceId() { - return serviceIdBuilder_ != null || serviceId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -29578,10 +29452,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } serviceId_ = value; - onChanged(); } else { serviceIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -29591,10 +29466,11 @@ public final class ContextOuterClass { public Builder setServiceId(context.ContextOuterClass.ServiceId.Builder builderForValue) { if (serviceIdBuilder_ == null) { serviceId_ = builderForValue.build(); - onChanged(); } else { serviceIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -29603,15 +29479,16 @@ public final class ContextOuterClass { */ public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) { if (serviceIdBuilder_ == null) { - if (serviceId_ != null) { - serviceId_ = context.ContextOuterClass.ServiceId.newBuilder(serviceId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && serviceId_ != null && serviceId_ != context.ContextOuterClass.ServiceId.getDefaultInstance()) { + getServiceIdBuilder().mergeFrom(value); } else { serviceId_ = value; } - onChanged(); } else { serviceIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -29619,13 +29496,13 @@ public final class ContextOuterClass { * <code>.context.ServiceId service_id = 1;</code> */ public Builder clearServiceId() { - if (serviceIdBuilder_ == null) { - serviceId_ = null; - onChanged(); - } else { - serviceId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); serviceIdBuilder_ = null; } + onChanged(); return this; } @@ -29633,6 +29510,7 @@ public final class ContextOuterClass { * <code>.context.ServiceId service_id = 1;</code> */ public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getServiceIdFieldBuilder().getBuilder(); } @@ -29702,6 +29580,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -29712,6 +29591,7 @@ public final class ContextOuterClass { */ public Builder clearName() { name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -29727,6 +29607,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -29749,6 +29630,7 @@ public final class ContextOuterClass { */ public Builder setServiceTypeValue(int value) { serviceType_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -29759,8 +29641,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ServiceTypeEnum getServiceType() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.ServiceTypeEnum result = context.ContextOuterClass.ServiceTypeEnum.valueOf(serviceType_); + context.ContextOuterClass.ServiceTypeEnum result = context.ContextOuterClass.ServiceTypeEnum.forNumber(serviceType_); return result == null ? context.ContextOuterClass.ServiceTypeEnum.UNRECOGNIZED : result; } @@ -29773,6 +29654,7 @@ public final class ContextOuterClass { if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000004; serviceType_ = value.getNumber(); onChanged(); return this; @@ -29783,6 +29665,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearServiceType() { + bitField0_ = (bitField0_ & ~0x00000004); serviceType_ = 0; onChanged(); return this; @@ -29791,9 +29674,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.EndPointId> serviceEndpointIds_ = java.util.Collections.emptyList(); private void ensureServiceEndpointIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000008) != 0)) { serviceEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(serviceEndpointIds_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000008; } } @@ -29945,7 +29828,7 @@ public final class ContextOuterClass { public Builder clearServiceEndpointIds() { if (serviceEndpointIdsBuilder_ == null) { serviceEndpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { serviceEndpointIdsBuilder_.clear(); @@ -30019,7 +29902,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> getServiceEndpointIdsFieldBuilder() { if (serviceEndpointIdsBuilder_ == null) { - serviceEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(serviceEndpointIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + serviceEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(serviceEndpointIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); serviceEndpointIds_ = null; } return serviceEndpointIdsBuilder_; @@ -30028,9 +29911,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.Constraint> serviceConstraints_ = java.util.Collections.emptyList(); private void ensureServiceConstraintsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!((bitField0_ & 0x00000010) != 0)) { serviceConstraints_ = new java.util.ArrayList<context.ContextOuterClass.Constraint>(serviceConstraints_); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000010; } } @@ -30182,7 +30065,7 @@ public final class ContextOuterClass { public Builder clearServiceConstraints() { if (serviceConstraintsBuilder_ == null) { serviceConstraints_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { serviceConstraintsBuilder_.clear(); @@ -30256,7 +30139,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Constraint, context.ContextOuterClass.Constraint.Builder, context.ContextOuterClass.ConstraintOrBuilder> getServiceConstraintsFieldBuilder() { if (serviceConstraintsBuilder_ == null) { - serviceConstraintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Constraint, context.ContextOuterClass.Constraint.Builder, context.ContextOuterClass.ConstraintOrBuilder>(serviceConstraints_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); + serviceConstraintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Constraint, context.ContextOuterClass.Constraint.Builder, context.ContextOuterClass.ConstraintOrBuilder>(serviceConstraints_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); serviceConstraints_ = null; } return serviceConstraintsBuilder_; @@ -30271,7 +30154,7 @@ public final class ContextOuterClass { * @return Whether the serviceStatus field is set. */ public boolean hasServiceStatus() { - return serviceStatusBuilder_ != null || serviceStatus_ != null; + return ((bitField0_ & 0x00000020) != 0); } /** @@ -30295,10 +30178,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } serviceStatus_ = value; - onChanged(); } else { serviceStatusBuilder_.setMessage(value); } + bitField0_ |= 0x00000020; + onChanged(); return this; } @@ -30308,10 +30192,11 @@ public final class ContextOuterClass { public Builder setServiceStatus(context.ContextOuterClass.ServiceStatus.Builder builderForValue) { if (serviceStatusBuilder_ == null) { serviceStatus_ = builderForValue.build(); - onChanged(); } else { serviceStatusBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000020; + onChanged(); return this; } @@ -30320,15 +30205,16 @@ public final class ContextOuterClass { */ public Builder mergeServiceStatus(context.ContextOuterClass.ServiceStatus value) { if (serviceStatusBuilder_ == null) { - if (serviceStatus_ != null) { - serviceStatus_ = context.ContextOuterClass.ServiceStatus.newBuilder(serviceStatus_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000020) != 0) && serviceStatus_ != null && serviceStatus_ != context.ContextOuterClass.ServiceStatus.getDefaultInstance()) { + getServiceStatusBuilder().mergeFrom(value); } else { serviceStatus_ = value; } - onChanged(); } else { serviceStatusBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000020; + onChanged(); return this; } @@ -30336,13 +30222,13 @@ public final class ContextOuterClass { * <code>.context.ServiceStatus service_status = 6;</code> */ public Builder clearServiceStatus() { - if (serviceStatusBuilder_ == null) { - serviceStatus_ = null; - onChanged(); - } else { - serviceStatus_ = null; + bitField0_ = (bitField0_ & ~0x00000020); + serviceStatus_ = null; + if (serviceStatusBuilder_ != null) { + serviceStatusBuilder_.dispose(); serviceStatusBuilder_ = null; } + onChanged(); return this; } @@ -30350,6 +30236,7 @@ public final class ContextOuterClass { * <code>.context.ServiceStatus service_status = 6;</code> */ public context.ContextOuterClass.ServiceStatus.Builder getServiceStatusBuilder() { + bitField0_ |= 0x00000020; onChanged(); return getServiceStatusFieldBuilder().getBuilder(); } @@ -30385,7 +30272,7 @@ public final class ContextOuterClass { * @return Whether the serviceConfig field is set. */ public boolean hasServiceConfig() { - return serviceConfigBuilder_ != null || serviceConfig_ != null; + return ((bitField0_ & 0x00000040) != 0); } /** @@ -30409,10 +30296,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } serviceConfig_ = value; - onChanged(); } else { serviceConfigBuilder_.setMessage(value); } + bitField0_ |= 0x00000040; + onChanged(); return this; } @@ -30422,10 +30310,11 @@ public final class ContextOuterClass { public Builder setServiceConfig(context.ContextOuterClass.ServiceConfig.Builder builderForValue) { if (serviceConfigBuilder_ == null) { serviceConfig_ = builderForValue.build(); - onChanged(); } else { serviceConfigBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000040; + onChanged(); return this; } @@ -30434,15 +30323,16 @@ public final class ContextOuterClass { */ public Builder mergeServiceConfig(context.ContextOuterClass.ServiceConfig value) { if (serviceConfigBuilder_ == null) { - if (serviceConfig_ != null) { - serviceConfig_ = context.ContextOuterClass.ServiceConfig.newBuilder(serviceConfig_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000040) != 0) && serviceConfig_ != null && serviceConfig_ != context.ContextOuterClass.ServiceConfig.getDefaultInstance()) { + getServiceConfigBuilder().mergeFrom(value); } else { serviceConfig_ = value; } - onChanged(); } else { serviceConfigBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000040; + onChanged(); return this; } @@ -30450,13 +30340,13 @@ public final class ContextOuterClass { * <code>.context.ServiceConfig service_config = 7;</code> */ public Builder clearServiceConfig() { - if (serviceConfigBuilder_ == null) { - serviceConfig_ = null; - onChanged(); - } else { - serviceConfig_ = null; + bitField0_ = (bitField0_ & ~0x00000040); + serviceConfig_ = null; + if (serviceConfigBuilder_ != null) { + serviceConfigBuilder_.dispose(); serviceConfigBuilder_ = null; } + onChanged(); return this; } @@ -30464,6 +30354,7 @@ public final class ContextOuterClass { * <code>.context.ServiceConfig service_config = 7;</code> */ public context.ContextOuterClass.ServiceConfig.Builder getServiceConfigBuilder() { + bitField0_ |= 0x00000040; onChanged(); return getServiceConfigFieldBuilder().getBuilder(); } @@ -30499,7 +30390,7 @@ public final class ContextOuterClass { * @return Whether the timestamp field is set. */ public boolean hasTimestamp() { - return timestampBuilder_ != null || timestamp_ != null; + return ((bitField0_ & 0x00000080) != 0); } /** @@ -30523,10 +30414,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } timestamp_ = value; - onChanged(); } else { timestampBuilder_.setMessage(value); } + bitField0_ |= 0x00000080; + onChanged(); return this; } @@ -30536,10 +30428,11 @@ public final class ContextOuterClass { public Builder setTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) { if (timestampBuilder_ == null) { timestamp_ = builderForValue.build(); - onChanged(); } else { timestampBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000080; + onChanged(); return this; } @@ -30548,15 +30441,16 @@ public final class ContextOuterClass { */ public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) { if (timestampBuilder_ == null) { - if (timestamp_ != null) { - timestamp_ = context.ContextOuterClass.Timestamp.newBuilder(timestamp_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000080) != 0) && timestamp_ != null && timestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) { + getTimestampBuilder().mergeFrom(value); } else { timestamp_ = value; } - onChanged(); } else { timestampBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000080; + onChanged(); return this; } @@ -30564,13 +30458,13 @@ public final class ContextOuterClass { * <code>.context.Timestamp timestamp = 8;</code> */ public Builder clearTimestamp() { - if (timestampBuilder_ == null) { - timestamp_ = null; - onChanged(); - } else { - timestamp_ = null; + bitField0_ = (bitField0_ & ~0x00000080); + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); timestampBuilder_ = null; } + onChanged(); return this; } @@ -30578,6 +30472,7 @@ public final class ContextOuterClass { * <code>.context.Timestamp timestamp = 8;</code> */ public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() { + bitField0_ |= 0x00000080; onChanged(); return getTimestampFieldBuilder().getBuilder(); } @@ -30631,7 +30526,17 @@ public final class ContextOuterClass { @java.lang.Override public Service parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Service(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -30689,50 +30594,6 @@ public final class ContextOuterClass { return new ServiceStatus(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ServiceStatus(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - int rawValue = input.readEnum(); - serviceStatus_ = rawValue; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ServiceStatus_descriptor; } @@ -30744,7 +30605,7 @@ public final class ContextOuterClass { public static final int SERVICE_STATUS_FIELD_NUMBER = 1; - private int serviceStatus_; + private int serviceStatus_ = 0; /** * <code>.context.ServiceStatusEnum service_status = 1;</code> @@ -30761,8 +30622,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ServiceStatusEnum getServiceStatus() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.ServiceStatusEnum result = context.ContextOuterClass.ServiceStatusEnum.valueOf(serviceStatus_); + context.ContextOuterClass.ServiceStatusEnum result = context.ContextOuterClass.ServiceStatusEnum.forNumber(serviceStatus_); return result == null ? context.ContextOuterClass.ServiceStatusEnum.UNRECOGNIZED : result; } @@ -30784,7 +30644,7 @@ public final class ContextOuterClass { if (serviceStatus_ != context.ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_UNDEFINED.getNumber()) { output.writeEnum(1, serviceStatus_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -30796,7 +30656,7 @@ public final class ContextOuterClass { if (serviceStatus_ != context.ContextOuterClass.ServiceStatusEnum.SERVICESTATUS_UNDEFINED.getNumber()) { size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, serviceStatus_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -30812,7 +30672,7 @@ public final class ContextOuterClass { context.ContextOuterClass.ServiceStatus other = (context.ContextOuterClass.ServiceStatus) obj; if (serviceStatus_ != other.serviceStatus_) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -30826,7 +30686,7 @@ public final class ContextOuterClass { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + SERVICE_STATUS_FIELD_NUMBER; hash = (53 * hash) + serviceStatus_; - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -30920,22 +30780,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ServiceStatus.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; serviceStatus_ = 0; return this; } @@ -30962,39 +30816,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ServiceStatus buildPartial() { context.ContextOuterClass.ServiceStatus result = new context.ContextOuterClass.ServiceStatus(this); - result.serviceStatus_ = serviceStatus_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ServiceStatus result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.serviceStatus_ = serviceStatus_; + } } @java.lang.Override @@ -31013,7 +30846,7 @@ public final class ContextOuterClass { if (other.serviceStatus_ != 0) { setServiceStatusValue(other.getServiceStatusValue()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -31025,20 +30858,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ServiceStatus parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + serviceStatus_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ServiceStatus) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private int serviceStatus_ = 0; /** @@ -31057,6 +30917,7 @@ public final class ContextOuterClass { */ public Builder setServiceStatusValue(int value) { serviceStatus_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -31067,8 +30928,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ServiceStatusEnum getServiceStatus() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.ServiceStatusEnum result = context.ContextOuterClass.ServiceStatusEnum.valueOf(serviceStatus_); + context.ContextOuterClass.ServiceStatusEnum result = context.ContextOuterClass.ServiceStatusEnum.forNumber(serviceStatus_); return result == null ? context.ContextOuterClass.ServiceStatusEnum.UNRECOGNIZED : result; } @@ -31081,6 +30941,7 @@ public final class ContextOuterClass { if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000001; serviceStatus_ = value.getNumber(); onChanged(); return this; @@ -31091,6 +30952,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearServiceStatus() { + bitField0_ = (bitField0_ & ~0x00000001); serviceStatus_ = 0; onChanged(); return this; @@ -31123,7 +30985,17 @@ public final class ContextOuterClass { @java.lang.Override public ServiceStatus parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ServiceStatus(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -31194,57 +31066,6 @@ public final class ContextOuterClass { return new ServiceConfig(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ServiceConfig(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - configRules_ = new java.util.ArrayList<context.ContextOuterClass.ConfigRule>(); - mutable_bitField0_ |= 0x00000001; - } - configRules_.add(input.readMessage(context.ContextOuterClass.ConfigRule.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - configRules_ = java.util.Collections.unmodifiableList(configRules_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ServiceConfig_descriptor; } @@ -31256,6 +31077,7 @@ public final class ContextOuterClass { public static final int CONFIG_RULES_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.ConfigRule> configRules_; /** @@ -31316,7 +31138,7 @@ public final class ContextOuterClass { for (int i = 0; i < configRules_.size(); i++) { output.writeMessage(1, configRules_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -31328,7 +31150,7 @@ public final class ContextOuterClass { for (int i = 0; i < configRules_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, configRules_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -31344,7 +31166,7 @@ public final class ContextOuterClass { context.ContextOuterClass.ServiceConfig other = (context.ContextOuterClass.ServiceConfig) obj; if (!getConfigRulesList().equals(other.getConfigRulesList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -31360,7 +31182,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONFIG_RULES_FIELD_NUMBER; hash = (53 * hash) + getConfigRulesList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -31454,29 +31276,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ServiceConfig.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getConfigRulesFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (configRulesBuilder_ == null) { configRules_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + configRules_ = null; configRulesBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -31502,7 +31318,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ServiceConfig buildPartial() { context.ContextOuterClass.ServiceConfig result = new context.ContextOuterClass.ServiceConfig(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ServiceConfig result) { if (configRulesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { configRules_ = java.util.Collections.unmodifiableList(configRules_); @@ -31512,38 +31336,10 @@ public final class ContextOuterClass { } else { result.configRules_ = configRulesBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ServiceConfig result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -31583,7 +31379,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -31595,17 +31391,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ServiceConfig parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ConfigRule m = input.readMessage(context.ContextOuterClass.ConfigRule.parser(), extensionRegistry); + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(m); + } else { + configRulesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ServiceConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -31875,7 +31701,17 @@ public final class ContextOuterClass { @java.lang.Override public ServiceConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ServiceConfig(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -31946,57 +31782,6 @@ public final class ContextOuterClass { return new ServiceIdList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ServiceIdList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - serviceIds_ = new java.util.ArrayList<context.ContextOuterClass.ServiceId>(); - mutable_bitField0_ |= 0x00000001; - } - serviceIds_.add(input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - serviceIds_ = java.util.Collections.unmodifiableList(serviceIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ServiceIdList_descriptor; } @@ -32008,6 +31793,7 @@ public final class ContextOuterClass { public static final int SERVICE_IDS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.ServiceId> serviceIds_; /** @@ -32068,7 +31854,7 @@ public final class ContextOuterClass { for (int i = 0; i < serviceIds_.size(); i++) { output.writeMessage(1, serviceIds_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -32080,7 +31866,7 @@ public final class ContextOuterClass { for (int i = 0; i < serviceIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, serviceIds_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -32096,7 +31882,7 @@ public final class ContextOuterClass { context.ContextOuterClass.ServiceIdList other = (context.ContextOuterClass.ServiceIdList) obj; if (!getServiceIdsList().equals(other.getServiceIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -32112,7 +31898,7 @@ public final class ContextOuterClass { hash = (37 * hash) + SERVICE_IDS_FIELD_NUMBER; hash = (53 * hash) + getServiceIdsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -32206,29 +31992,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ServiceIdList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getServiceIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (serviceIdsBuilder_ == null) { serviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + serviceIds_ = null; serviceIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -32254,7 +32034,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ServiceIdList buildPartial() { context.ContextOuterClass.ServiceIdList result = new context.ContextOuterClass.ServiceIdList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ServiceIdList result) { if (serviceIdsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { serviceIds_ = java.util.Collections.unmodifiableList(serviceIds_); @@ -32264,38 +32052,10 @@ public final class ContextOuterClass { } else { result.serviceIds_ = serviceIdsBuilder_.build(); } - onBuilt(); - return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ServiceIdList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -32335,7 +32095,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -32347,17 +32107,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ServiceIdList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ServiceId m = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); + if (serviceIdsBuilder_ == null) { + ensureServiceIdsIsMutable(); + serviceIds_.add(m); + } else { + serviceIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ServiceIdList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -32627,7 +32417,17 @@ public final class ContextOuterClass { @java.lang.Override public ServiceIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ServiceIdList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -32698,57 +32498,6 @@ public final class ContextOuterClass { return new ServiceList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ServiceList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - services_ = new java.util.ArrayList<context.ContextOuterClass.Service>(); - mutable_bitField0_ |= 0x00000001; - } - services_.add(input.readMessage(context.ContextOuterClass.Service.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - services_ = java.util.Collections.unmodifiableList(services_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ServiceList_descriptor; } @@ -32760,6 +32509,7 @@ public final class ContextOuterClass { public static final int SERVICES_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Service> services_; /** @@ -32820,7 +32570,7 @@ public final class ContextOuterClass { for (int i = 0; i < services_.size(); i++) { output.writeMessage(1, services_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -32832,7 +32582,7 @@ public final class ContextOuterClass { for (int i = 0; i < services_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, services_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -32848,7 +32598,7 @@ public final class ContextOuterClass { context.ContextOuterClass.ServiceList other = (context.ContextOuterClass.ServiceList) obj; if (!getServicesList().equals(other.getServicesList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -32864,7 +32614,7 @@ public final class ContextOuterClass { hash = (37 * hash) + SERVICES_FIELD_NUMBER; hash = (53 * hash) + getServicesList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -32958,29 +32708,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ServiceList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getServicesFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (servicesBuilder_ == null) { services_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + services_ = null; servicesBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -33006,7 +32750,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ServiceList buildPartial() { context.ContextOuterClass.ServiceList result = new context.ContextOuterClass.ServiceList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ServiceList result) { if (servicesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { services_ = java.util.Collections.unmodifiableList(services_); @@ -33016,38 +32768,10 @@ public final class ContextOuterClass { } else { result.services_ = servicesBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); } - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ServiceList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -33087,7 +32811,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -33099,17 +32823,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ServiceList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Service m = input.readMessage(context.ContextOuterClass.Service.parser(), extensionRegistry); + if (servicesBuilder_ == null) { + ensureServicesIsMutable(); + services_.add(m); + } else { + servicesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ServiceList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -33379,7 +33133,17 @@ public final class ContextOuterClass { @java.lang.Override public ServiceList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ServiceList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -33459,72 +33223,6 @@ public final class ContextOuterClass { return new ServiceFilter(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ServiceFilter(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.ServiceIdList.Builder subBuilder = null; - if (serviceIds_ != null) { - subBuilder = serviceIds_.toBuilder(); - } - serviceIds_ = input.readMessage(context.ContextOuterClass.ServiceIdList.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(serviceIds_); - serviceIds_ = subBuilder.buildPartial(); - } - break; - } - case 16: - { - includeEndpointIds_ = input.readBool(); - break; - } - case 24: - { - includeConstraints_ = input.readBool(); - break; - } - case 32: - { - includeConfigRules_ = input.readBool(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ServiceFilter_descriptor; } @@ -33561,12 +33259,12 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ServiceIdListOrBuilder getServiceIdsOrBuilder() { - return getServiceIds(); + return serviceIds_ == null ? context.ContextOuterClass.ServiceIdList.getDefaultInstance() : serviceIds_; } public static final int INCLUDE_ENDPOINT_IDS_FIELD_NUMBER = 2; - private boolean includeEndpointIds_; + private boolean includeEndpointIds_ = false; /** * <code>bool include_endpoint_ids = 2;</code> @@ -33579,7 +33277,7 @@ public final class ContextOuterClass { public static final int INCLUDE_CONSTRAINTS_FIELD_NUMBER = 3; - private boolean includeConstraints_; + private boolean includeConstraints_ = false; /** * <code>bool include_constraints = 3;</code> @@ -33592,7 +33290,7 @@ public final class ContextOuterClass { public static final int INCLUDE_CONFIG_RULES_FIELD_NUMBER = 4; - private boolean includeConfigRules_; + private boolean includeConfigRules_ = false; /** * <code>bool include_config_rules = 4;</code> @@ -33630,7 +33328,7 @@ public final class ContextOuterClass { if (includeConfigRules_ != false) { output.writeBool(4, includeConfigRules_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -33651,7 +33349,7 @@ public final class ContextOuterClass { if (includeConfigRules_ != false) { size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, includeConfigRules_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -33677,7 +33375,7 @@ public final class ContextOuterClass { return false; if (getIncludeConfigRules() != other.getIncludeConfigRules()) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -33699,7 +33397,7 @@ public final class ContextOuterClass { hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeConstraints()); hash = (37 * hash) + INCLUDE_CONFIG_RULES_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeConfigRules()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -33793,26 +33491,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ServiceFilter.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (serviceIdsBuilder_ == null) { - serviceIds_ = null; - } else { - serviceIds_ = null; + bitField0_ = 0; + serviceIds_ = null; + if (serviceIdsBuilder_ != null) { + serviceIdsBuilder_.dispose(); serviceIdsBuilder_ = null; } includeEndpointIds_ = false; @@ -33843,46 +33534,27 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ServiceFilter buildPartial() { context.ContextOuterClass.ServiceFilter result = new context.ContextOuterClass.ServiceFilter(this); - if (serviceIdsBuilder_ == null) { - result.serviceIds_ = serviceIds_; - } else { - result.serviceIds_ = serviceIdsBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } - result.includeEndpointIds_ = includeEndpointIds_; - result.includeConstraints_ = includeConstraints_; - result.includeConfigRules_ = includeConfigRules_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ServiceFilter result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.serviceIds_ = serviceIdsBuilder_ == null ? serviceIds_ : serviceIdsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.includeEndpointIds_ = includeEndpointIds_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.includeConstraints_ = includeConstraints_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.includeConfigRules_ = includeConfigRules_; + } } @java.lang.Override @@ -33910,7 +33582,7 @@ public final class ContextOuterClass { if (other.getIncludeConfigRules() != false) { setIncludeConfigRules(other.getIncludeConfigRules()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -33922,20 +33594,68 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ServiceFilter parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getServiceIdsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + includeEndpointIds_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 24: + { + includeConstraints_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + includeConfigRules_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ServiceFilter) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.ServiceIdList serviceIds_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ServiceIdList, context.ContextOuterClass.ServiceIdList.Builder, context.ContextOuterClass.ServiceIdListOrBuilder> serviceIdsBuilder_; @@ -33945,7 +33665,7 @@ public final class ContextOuterClass { * @return Whether the serviceIds field is set. */ public boolean hasServiceIds() { - return serviceIdsBuilder_ != null || serviceIds_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -33969,10 +33689,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } serviceIds_ = value; - onChanged(); } else { serviceIdsBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -33982,10 +33703,11 @@ public final class ContextOuterClass { public Builder setServiceIds(context.ContextOuterClass.ServiceIdList.Builder builderForValue) { if (serviceIdsBuilder_ == null) { serviceIds_ = builderForValue.build(); - onChanged(); } else { serviceIdsBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -33994,15 +33716,16 @@ public final class ContextOuterClass { */ public Builder mergeServiceIds(context.ContextOuterClass.ServiceIdList value) { if (serviceIdsBuilder_ == null) { - if (serviceIds_ != null) { - serviceIds_ = context.ContextOuterClass.ServiceIdList.newBuilder(serviceIds_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && serviceIds_ != null && serviceIds_ != context.ContextOuterClass.ServiceIdList.getDefaultInstance()) { + getServiceIdsBuilder().mergeFrom(value); } else { serviceIds_ = value; } - onChanged(); } else { serviceIdsBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -34010,13 +33733,13 @@ public final class ContextOuterClass { * <code>.context.ServiceIdList service_ids = 1;</code> */ public Builder clearServiceIds() { - if (serviceIdsBuilder_ == null) { - serviceIds_ = null; - onChanged(); - } else { - serviceIds_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + serviceIds_ = null; + if (serviceIdsBuilder_ != null) { + serviceIdsBuilder_.dispose(); serviceIdsBuilder_ = null; } + onChanged(); return this; } @@ -34024,6 +33747,7 @@ public final class ContextOuterClass { * <code>.context.ServiceIdList service_ids = 1;</code> */ public context.ContextOuterClass.ServiceIdList.Builder getServiceIdsBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getServiceIdsFieldBuilder().getBuilder(); } @@ -34068,6 +33792,7 @@ public final class ContextOuterClass { */ public Builder setIncludeEndpointIds(boolean value) { includeEndpointIds_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -34077,6 +33802,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeEndpointIds() { + bitField0_ = (bitField0_ & ~0x00000002); includeEndpointIds_ = false; onChanged(); return this; @@ -34100,6 +33826,7 @@ public final class ContextOuterClass { */ public Builder setIncludeConstraints(boolean value) { includeConstraints_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -34109,6 +33836,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeConstraints() { + bitField0_ = (bitField0_ & ~0x00000004); includeConstraints_ = false; onChanged(); return this; @@ -34132,6 +33860,7 @@ public final class ContextOuterClass { */ public Builder setIncludeConfigRules(boolean value) { includeConfigRules_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -34141,6 +33870,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeConfigRules() { + bitField0_ = (bitField0_ & ~0x00000008); includeConfigRules_ = false; onChanged(); return this; @@ -34173,7 +33903,17 @@ public final class ContextOuterClass { @java.lang.Override public ServiceFilter parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ServiceFilter(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -34252,70 +33992,6 @@ public final class ContextOuterClass { return new ServiceEvent(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ServiceEvent(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Event.Builder subBuilder = null; - if (event_ != null) { - subBuilder = event_.toBuilder(); - } - event_ = input.readMessage(context.ContextOuterClass.Event.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(event_); - event_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.ServiceId.Builder subBuilder = null; - if (serviceId_ != null) { - subBuilder = serviceId_.toBuilder(); - } - serviceId_ = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(serviceId_); - serviceId_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ServiceEvent_descriptor; } @@ -34352,7 +34028,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - return getEvent(); + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } public static final int SERVICE_ID_FIELD_NUMBER = 2; @@ -34382,7 +34058,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { - return getServiceId(); + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } private byte memoizedIsInitialized = -1; @@ -34406,7 +34082,7 @@ public final class ContextOuterClass { if (serviceId_ != null) { output.writeMessage(2, getServiceId()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -34421,7 +34097,7 @@ public final class ContextOuterClass { if (serviceId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getServiceId()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -34447,7 +34123,7 @@ public final class ContextOuterClass { if (!getServiceId().equals(other.getServiceId())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -34467,7 +34143,7 @@ public final class ContextOuterClass { hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER; hash = (53 * hash) + getServiceId().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -34561,32 +34237,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ServiceEvent.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (eventBuilder_ == null) { - event_ = null; - } else { - event_ = null; + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } - if (serviceIdBuilder_ == null) { - serviceId_ = null; - } else { - serviceId_ = null; + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); serviceIdBuilder_ = null; } return this; @@ -34614,48 +34282,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ServiceEvent buildPartial() { context.ContextOuterClass.ServiceEvent result = new context.ContextOuterClass.ServiceEvent(this); - if (eventBuilder_ == null) { - result.event_ = event_; - } else { - result.event_ = eventBuilder_.build(); - } - if (serviceIdBuilder_ == null) { - result.serviceId_ = serviceId_; - } else { - result.serviceId_ = serviceIdBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ServiceEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.serviceId_ = serviceIdBuilder_ == null ? serviceId_ : serviceIdBuilder_.build(); + } } @java.lang.Override @@ -34677,7 +34318,7 @@ public final class ContextOuterClass { if (other.hasServiceId()) { mergeServiceId(other.getServiceId()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -34689,20 +34330,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ServiceEvent parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getServiceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ServiceEvent) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Event event_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; @@ -34712,7 +34387,7 @@ public final class ContextOuterClass { * @return Whether the event field is set. */ public boolean hasEvent() { - return eventBuilder_ != null || event_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -34736,10 +34411,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } event_ = value; - onChanged(); } else { eventBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -34749,10 +34425,11 @@ public final class ContextOuterClass { public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { if (eventBuilder_ == null) { event_ = builderForValue.build(); - onChanged(); } else { eventBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -34761,15 +34438,16 @@ public final class ContextOuterClass { */ public Builder mergeEvent(context.ContextOuterClass.Event value) { if (eventBuilder_ == null) { - if (event_ != null) { - event_ = context.ContextOuterClass.Event.newBuilder(event_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); } else { event_ = value; } - onChanged(); } else { eventBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -34777,13 +34455,13 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public Builder clearEvent() { - if (eventBuilder_ == null) { - event_ = null; - onChanged(); - } else { - event_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } + onChanged(); return this; } @@ -34791,6 +34469,7 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEventFieldBuilder().getBuilder(); } @@ -34826,7 +34505,7 @@ public final class ContextOuterClass { * @return Whether the serviceId field is set. */ public boolean hasServiceId() { - return serviceIdBuilder_ != null || serviceId_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -34850,10 +34529,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } serviceId_ = value; - onChanged(); } else { serviceIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -34863,10 +34543,11 @@ public final class ContextOuterClass { public Builder setServiceId(context.ContextOuterClass.ServiceId.Builder builderForValue) { if (serviceIdBuilder_ == null) { serviceId_ = builderForValue.build(); - onChanged(); } else { serviceIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -34875,15 +34556,16 @@ public final class ContextOuterClass { */ public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) { if (serviceIdBuilder_ == null) { - if (serviceId_ != null) { - serviceId_ = context.ContextOuterClass.ServiceId.newBuilder(serviceId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && serviceId_ != null && serviceId_ != context.ContextOuterClass.ServiceId.getDefaultInstance()) { + getServiceIdBuilder().mergeFrom(value); } else { serviceId_ = value; } - onChanged(); } else { serviceIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -34891,13 +34573,13 @@ public final class ContextOuterClass { * <code>.context.ServiceId service_id = 2;</code> */ public Builder clearServiceId() { - if (serviceIdBuilder_ == null) { - serviceId_ = null; - onChanged(); - } else { - serviceId_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); serviceIdBuilder_ = null; } + onChanged(); return this; } @@ -34905,6 +34587,7 @@ public final class ContextOuterClass { * <code>.context.ServiceId service_id = 2;</code> */ public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getServiceIdFieldBuilder().getBuilder(); } @@ -34958,7 +34641,17 @@ public final class ContextOuterClass { @java.lang.Override public ServiceEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ServiceEvent(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -35041,70 +34734,6 @@ public final class ContextOuterClass { return new SliceId(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private SliceId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.ContextId.Builder subBuilder = null; - if (contextId_ != null) { - subBuilder = contextId_.toBuilder(); - } - contextId_ = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextId_); - contextId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (sliceUuid_ != null) { - subBuilder = sliceUuid_.toBuilder(); - } - sliceUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(sliceUuid_); - sliceUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_SliceId_descriptor; } @@ -35141,7 +34770,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return getContextId(); + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } public static final int SLICE_UUID_FIELD_NUMBER = 2; @@ -35171,7 +34800,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.UuidOrBuilder getSliceUuidOrBuilder() { - return getSliceUuid(); + return sliceUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : sliceUuid_; } private byte memoizedIsInitialized = -1; @@ -35195,7 +34824,7 @@ public final class ContextOuterClass { if (sliceUuid_ != null) { output.writeMessage(2, getSliceUuid()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -35210,7 +34839,7 @@ public final class ContextOuterClass { if (sliceUuid_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSliceUuid()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -35236,7 +34865,7 @@ public final class ContextOuterClass { if (!getSliceUuid().equals(other.getSliceUuid())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -35256,7 +34885,7 @@ public final class ContextOuterClass { hash = (37 * hash) + SLICE_UUID_FIELD_NUMBER; hash = (53 * hash) + getSliceUuid().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -35354,32 +34983,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.SliceId.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (contextIdBuilder_ == null) { - contextId_ = null; - } else { - contextId_ = null; + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } - if (sliceUuidBuilder_ == null) { - sliceUuid_ = null; - } else { - sliceUuid_ = null; + sliceUuid_ = null; + if (sliceUuidBuilder_ != null) { + sliceUuidBuilder_.dispose(); sliceUuidBuilder_ = null; } return this; @@ -35407,48 +35028,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.SliceId buildPartial() { context.ContextOuterClass.SliceId result = new context.ContextOuterClass.SliceId(this); - if (contextIdBuilder_ == null) { - result.contextId_ = contextId_; - } else { - result.contextId_ = contextIdBuilder_.build(); - } - if (sliceUuidBuilder_ == null) { - result.sliceUuid_ = sliceUuid_; - } else { - result.sliceUuid_ = sliceUuidBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.SliceId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.sliceUuid_ = sliceUuidBuilder_ == null ? sliceUuid_ : sliceUuidBuilder_.build(); + } } @java.lang.Override @@ -35470,7 +35064,7 @@ public final class ContextOuterClass { if (other.hasSliceUuid()) { mergeSliceUuid(other.getSliceUuid()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -35482,20 +35076,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.SliceId parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getSliceUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.SliceId) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.ContextId contextId_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; @@ -35505,7 +35133,7 @@ public final class ContextOuterClass { * @return Whether the contextId field is set. */ public boolean hasContextId() { - return contextIdBuilder_ != null || contextId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -35529,10 +35157,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } contextId_ = value; - onChanged(); } else { contextIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -35542,10 +35171,11 @@ public final class ContextOuterClass { public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { if (contextIdBuilder_ == null) { contextId_ = builderForValue.build(); - onChanged(); } else { contextIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -35554,15 +35184,16 @@ public final class ContextOuterClass { */ public Builder mergeContextId(context.ContextOuterClass.ContextId value) { if (contextIdBuilder_ == null) { - if (contextId_ != null) { - contextId_ = context.ContextOuterClass.ContextId.newBuilder(contextId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); } else { contextId_ = value; } - onChanged(); } else { contextIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -35570,13 +35201,13 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 1;</code> */ public Builder clearContextId() { - if (contextIdBuilder_ == null) { - contextId_ = null; - onChanged(); - } else { - contextId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } + onChanged(); return this; } @@ -35584,6 +35215,7 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 1;</code> */ public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getContextIdFieldBuilder().getBuilder(); } @@ -35619,7 +35251,7 @@ public final class ContextOuterClass { * @return Whether the sliceUuid field is set. */ public boolean hasSliceUuid() { - return sliceUuidBuilder_ != null || sliceUuid_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -35643,10 +35275,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } sliceUuid_ = value; - onChanged(); } else { sliceUuidBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -35656,10 +35289,11 @@ public final class ContextOuterClass { public Builder setSliceUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { if (sliceUuidBuilder_ == null) { sliceUuid_ = builderForValue.build(); - onChanged(); } else { sliceUuidBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -35668,15 +35302,16 @@ public final class ContextOuterClass { */ public Builder mergeSliceUuid(context.ContextOuterClass.Uuid value) { if (sliceUuidBuilder_ == null) { - if (sliceUuid_ != null) { - sliceUuid_ = context.ContextOuterClass.Uuid.newBuilder(sliceUuid_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && sliceUuid_ != null && sliceUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getSliceUuidBuilder().mergeFrom(value); } else { sliceUuid_ = value; } - onChanged(); } else { sliceUuidBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -35684,13 +35319,13 @@ public final class ContextOuterClass { * <code>.context.Uuid slice_uuid = 2;</code> */ public Builder clearSliceUuid() { - if (sliceUuidBuilder_ == null) { - sliceUuid_ = null; - onChanged(); - } else { - sliceUuid_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + sliceUuid_ = null; + if (sliceUuidBuilder_ != null) { + sliceUuidBuilder_.dispose(); sliceUuidBuilder_ = null; } + onChanged(); return this; } @@ -35698,6 +35333,7 @@ public final class ContextOuterClass { * <code>.context.Uuid slice_uuid = 2;</code> */ public context.ContextOuterClass.Uuid.Builder getSliceUuidBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getSliceUuidFieldBuilder().getBuilder(); } @@ -35751,7 +35387,17 @@ public final class ContextOuterClass { @java.lang.Override public SliceId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new SliceId(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -35998,164 +35644,6 @@ public final class ContextOuterClass { return new Slice(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Slice(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.SliceId.Builder subBuilder = null; - if (sliceId_ != null) { - subBuilder = sliceId_.toBuilder(); - } - sliceId_ = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(sliceId_); - sliceId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 26: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - sliceEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(); - mutable_bitField0_ |= 0x00000001; - } - sliceEndpointIds_.add(input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry)); - break; - } - case 34: - { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - sliceConstraints_ = new java.util.ArrayList<context.ContextOuterClass.Constraint>(); - mutable_bitField0_ |= 0x00000002; - } - sliceConstraints_.add(input.readMessage(context.ContextOuterClass.Constraint.parser(), extensionRegistry)); - break; - } - case 42: - { - if (!((mutable_bitField0_ & 0x00000004) != 0)) { - sliceServiceIds_ = new java.util.ArrayList<context.ContextOuterClass.ServiceId>(); - mutable_bitField0_ |= 0x00000004; - } - sliceServiceIds_.add(input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry)); - break; - } - case 50: - { - if (!((mutable_bitField0_ & 0x00000008) != 0)) { - sliceSubsliceIds_ = new java.util.ArrayList<context.ContextOuterClass.SliceId>(); - mutable_bitField0_ |= 0x00000008; - } - sliceSubsliceIds_.add(input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry)); - break; - } - case 58: - { - context.ContextOuterClass.SliceStatus.Builder subBuilder = null; - if (sliceStatus_ != null) { - subBuilder = sliceStatus_.toBuilder(); - } - sliceStatus_ = input.readMessage(context.ContextOuterClass.SliceStatus.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(sliceStatus_); - sliceStatus_ = subBuilder.buildPartial(); - } - break; - } - case 66: - { - context.ContextOuterClass.SliceConfig.Builder subBuilder = null; - if (sliceConfig_ != null) { - subBuilder = sliceConfig_.toBuilder(); - } - sliceConfig_ = input.readMessage(context.ContextOuterClass.SliceConfig.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(sliceConfig_); - sliceConfig_ = subBuilder.buildPartial(); - } - break; - } - case 74: - { - context.ContextOuterClass.SliceOwner.Builder subBuilder = null; - if (sliceOwner_ != null) { - subBuilder = sliceOwner_.toBuilder(); - } - sliceOwner_ = input.readMessage(context.ContextOuterClass.SliceOwner.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(sliceOwner_); - sliceOwner_ = subBuilder.buildPartial(); - } - break; - } - case 82: - { - context.ContextOuterClass.Timestamp.Builder subBuilder = null; - if (timestamp_ != null) { - subBuilder = timestamp_.toBuilder(); - } - timestamp_ = input.readMessage(context.ContextOuterClass.Timestamp.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(timestamp_); - timestamp_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - sliceEndpointIds_ = java.util.Collections.unmodifiableList(sliceEndpointIds_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - sliceConstraints_ = java.util.Collections.unmodifiableList(sliceConstraints_); - } - if (((mutable_bitField0_ & 0x00000004) != 0)) { - sliceServiceIds_ = java.util.Collections.unmodifiableList(sliceServiceIds_); - } - if (((mutable_bitField0_ & 0x00000008) != 0)) { - sliceSubsliceIds_ = java.util.Collections.unmodifiableList(sliceSubsliceIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Slice_descriptor; } @@ -36192,12 +35680,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder() { - return getSliceId(); + return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_; } public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * <code>string name = 2;</code> @@ -36234,6 +35723,7 @@ public final class ContextOuterClass { public static final int SLICE_ENDPOINT_IDS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.EndPointId> sliceEndpointIds_; /** @@ -36278,6 +35768,7 @@ public final class ContextOuterClass { public static final int SLICE_CONSTRAINTS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Constraint> sliceConstraints_; /** @@ -36322,6 +35813,7 @@ public final class ContextOuterClass { public static final int SLICE_SERVICE_IDS_FIELD_NUMBER = 5; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.ServiceId> sliceServiceIds_; /** @@ -36366,6 +35858,7 @@ public final class ContextOuterClass { public static final int SLICE_SUBSLICE_IDS_FIELD_NUMBER = 6; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.SliceId> sliceSubsliceIds_; /** @@ -36435,7 +35928,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.SliceStatusOrBuilder getSliceStatusOrBuilder() { - return getSliceStatus(); + return sliceStatus_ == null ? context.ContextOuterClass.SliceStatus.getDefaultInstance() : sliceStatus_; } public static final int SLICE_CONFIG_FIELD_NUMBER = 8; @@ -36465,7 +35958,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.SliceConfigOrBuilder getSliceConfigOrBuilder() { - return getSliceConfig(); + return sliceConfig_ == null ? context.ContextOuterClass.SliceConfig.getDefaultInstance() : sliceConfig_; } public static final int SLICE_OWNER_FIELD_NUMBER = 9; @@ -36495,7 +35988,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.SliceOwnerOrBuilder getSliceOwnerOrBuilder() { - return getSliceOwner(); + return sliceOwner_ == null ? context.ContextOuterClass.SliceOwner.getDefaultInstance() : sliceOwner_; } public static final int TIMESTAMP_FIELD_NUMBER = 10; @@ -36525,7 +36018,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.TimestampOrBuilder getTimestampOrBuilder() { - return getTimestamp(); + return timestamp_ == null ? context.ContextOuterClass.Timestamp.getDefaultInstance() : timestamp_; } private byte memoizedIsInitialized = -1; @@ -36546,7 +36039,7 @@ public final class ContextOuterClass { if (sliceId_ != null) { output.writeMessage(1, getSliceId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } for (int i = 0; i < sliceEndpointIds_.size(); i++) { @@ -36573,7 +36066,7 @@ public final class ContextOuterClass { if (timestamp_ != null) { output.writeMessage(10, getTimestamp()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -36585,7 +36078,7 @@ public final class ContextOuterClass { if (sliceId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSliceId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } for (int i = 0; i < sliceEndpointIds_.size(); i++) { @@ -36612,7 +36105,7 @@ public final class ContextOuterClass { if (timestamp_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getTimestamp()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -36666,7 +36159,7 @@ public final class ContextOuterClass { if (!getTimestamp().equals(other.getTimestamp())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -36716,7 +36209,7 @@ public final class ContextOuterClass { hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; hash = (53 * hash) + getTimestamp().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -36810,79 +36303,68 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Slice.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getSliceEndpointIdsFieldBuilder(); - getSliceConstraintsFieldBuilder(); - getSliceServiceIdsFieldBuilder(); - getSliceSubsliceIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); - if (sliceIdBuilder_ == null) { - sliceId_ = null; - } else { - sliceId_ = null; + bitField0_ = 0; + sliceId_ = null; + if (sliceIdBuilder_ != null) { + sliceIdBuilder_.dispose(); sliceIdBuilder_ = null; } name_ = ""; if (sliceEndpointIdsBuilder_ == null) { sliceEndpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + sliceEndpointIds_ = null; sliceEndpointIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000004); if (sliceConstraintsBuilder_ == null) { sliceConstraints_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); } else { + sliceConstraints_ = null; sliceConstraintsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000008); if (sliceServiceIdsBuilder_ == null) { sliceServiceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); } else { + sliceServiceIds_ = null; sliceServiceIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000010); if (sliceSubsliceIdsBuilder_ == null) { sliceSubsliceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); } else { + sliceSubsliceIds_ = null; sliceSubsliceIdsBuilder_.clear(); } - if (sliceStatusBuilder_ == null) { - sliceStatus_ = null; - } else { - sliceStatus_ = null; + bitField0_ = (bitField0_ & ~0x00000020); + sliceStatus_ = null; + if (sliceStatusBuilder_ != null) { + sliceStatusBuilder_.dispose(); sliceStatusBuilder_ = null; } - if (sliceConfigBuilder_ == null) { - sliceConfig_ = null; - } else { - sliceConfig_ = null; + sliceConfig_ = null; + if (sliceConfigBuilder_ != null) { + sliceConfigBuilder_.dispose(); sliceConfigBuilder_ = null; } - if (sliceOwnerBuilder_ == null) { - sliceOwner_ = null; - } else { - sliceOwner_ = null; + sliceOwner_ = null; + if (sliceOwnerBuilder_ != null) { + sliceOwnerBuilder_.dispose(); sliceOwnerBuilder_ = null; } - if (timestampBuilder_ == null) { - timestamp_ = null; - } else { - timestamp_ = null; + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); timestampBuilder_ = null; } return this; @@ -36910,101 +36392,73 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Slice buildPartial() { context.ContextOuterClass.Slice result = new context.ContextOuterClass.Slice(this); - int from_bitField0_ = bitField0_; - if (sliceIdBuilder_ == null) { - result.sliceId_ = sliceId_; - } else { - result.sliceId_ = sliceIdBuilder_.build(); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } - result.name_ = name_; + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Slice result) { if (sliceEndpointIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000004) != 0)) { sliceEndpointIds_ = java.util.Collections.unmodifiableList(sliceEndpointIds_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); } result.sliceEndpointIds_ = sliceEndpointIds_; } else { result.sliceEndpointIds_ = sliceEndpointIdsBuilder_.build(); } if (sliceConstraintsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { + if (((bitField0_ & 0x00000008) != 0)) { sliceConstraints_ = java.util.Collections.unmodifiableList(sliceConstraints_); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); } result.sliceConstraints_ = sliceConstraints_; } else { result.sliceConstraints_ = sliceConstraintsBuilder_.build(); } if (sliceServiceIdsBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0)) { + if (((bitField0_ & 0x00000010) != 0)) { sliceServiceIds_ = java.util.Collections.unmodifiableList(sliceServiceIds_); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); } result.sliceServiceIds_ = sliceServiceIds_; } else { result.sliceServiceIds_ = sliceServiceIdsBuilder_.build(); } if (sliceSubsliceIdsBuilder_ == null) { - if (((bitField0_ & 0x00000008) != 0)) { + if (((bitField0_ & 0x00000020) != 0)) { sliceSubsliceIds_ = java.util.Collections.unmodifiableList(sliceSubsliceIds_); - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000020); } result.sliceSubsliceIds_ = sliceSubsliceIds_; } else { result.sliceSubsliceIds_ = sliceSubsliceIdsBuilder_.build(); } - if (sliceStatusBuilder_ == null) { - result.sliceStatus_ = sliceStatus_; - } else { - result.sliceStatus_ = sliceStatusBuilder_.build(); + } + + private void buildPartial0(context.ContextOuterClass.Slice result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sliceId_ = sliceIdBuilder_ == null ? sliceId_ : sliceIdBuilder_.build(); } - if (sliceConfigBuilder_ == null) { - result.sliceConfig_ = sliceConfig_; - } else { - result.sliceConfig_ = sliceConfigBuilder_.build(); + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; } - if (sliceOwnerBuilder_ == null) { - result.sliceOwner_ = sliceOwner_; - } else { - result.sliceOwner_ = sliceOwnerBuilder_.build(); + if (((from_bitField0_ & 0x00000040) != 0)) { + result.sliceStatus_ = sliceStatusBuilder_ == null ? sliceStatus_ : sliceStatusBuilder_.build(); } - if (timestampBuilder_ == null) { - result.timestamp_ = timestamp_; - } else { - result.timestamp_ = timestampBuilder_.build(); + if (((from_bitField0_ & 0x00000080) != 0)) { + result.sliceConfig_ = sliceConfigBuilder_ == null ? sliceConfig_ : sliceConfigBuilder_.build(); + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.sliceOwner_ = sliceOwnerBuilder_ == null ? sliceOwner_ : sliceOwnerBuilder_.build(); + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.timestamp_ = timestampBuilder_ == null ? timestamp_ : timestampBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); } @java.lang.Override @@ -37025,13 +36479,14 @@ public final class ContextOuterClass { } if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000002; onChanged(); } if (sliceEndpointIdsBuilder_ == null) { if (!other.sliceEndpointIds_.isEmpty()) { if (sliceEndpointIds_.isEmpty()) { sliceEndpointIds_ = other.sliceEndpointIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); } else { ensureSliceEndpointIdsIsMutable(); sliceEndpointIds_.addAll(other.sliceEndpointIds_); @@ -37044,7 +36499,7 @@ public final class ContextOuterClass { sliceEndpointIdsBuilder_.dispose(); sliceEndpointIdsBuilder_ = null; sliceEndpointIds_ = other.sliceEndpointIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); sliceEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceEndpointIdsFieldBuilder() : null; } else { sliceEndpointIdsBuilder_.addAllMessages(other.sliceEndpointIds_); @@ -37055,7 +36510,7 @@ public final class ContextOuterClass { if (!other.sliceConstraints_.isEmpty()) { if (sliceConstraints_.isEmpty()) { sliceConstraints_ = other.sliceConstraints_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensureSliceConstraintsIsMutable(); sliceConstraints_.addAll(other.sliceConstraints_); @@ -37068,7 +36523,7 @@ public final class ContextOuterClass { sliceConstraintsBuilder_.dispose(); sliceConstraintsBuilder_ = null; sliceConstraints_ = other.sliceConstraints_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); sliceConstraintsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceConstraintsFieldBuilder() : null; } else { sliceConstraintsBuilder_.addAllMessages(other.sliceConstraints_); @@ -37079,7 +36534,7 @@ public final class ContextOuterClass { if (!other.sliceServiceIds_.isEmpty()) { if (sliceServiceIds_.isEmpty()) { sliceServiceIds_ = other.sliceServiceIds_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); } else { ensureSliceServiceIdsIsMutable(); sliceServiceIds_.addAll(other.sliceServiceIds_); @@ -37092,7 +36547,7 @@ public final class ContextOuterClass { sliceServiceIdsBuilder_.dispose(); sliceServiceIdsBuilder_ = null; sliceServiceIds_ = other.sliceServiceIds_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); sliceServiceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceServiceIdsFieldBuilder() : null; } else { sliceServiceIdsBuilder_.addAllMessages(other.sliceServiceIds_); @@ -37103,7 +36558,7 @@ public final class ContextOuterClass { if (!other.sliceSubsliceIds_.isEmpty()) { if (sliceSubsliceIds_.isEmpty()) { sliceSubsliceIds_ = other.sliceSubsliceIds_; - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000020); } else { ensureSliceSubsliceIdsIsMutable(); sliceSubsliceIds_.addAll(other.sliceSubsliceIds_); @@ -37116,7 +36571,7 @@ public final class ContextOuterClass { sliceSubsliceIdsBuilder_.dispose(); sliceSubsliceIdsBuilder_ = null; sliceSubsliceIds_ = other.sliceSubsliceIds_; - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000020); sliceSubsliceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSliceSubsliceIdsFieldBuilder() : null; } else { sliceSubsliceIdsBuilder_.addAllMessages(other.sliceSubsliceIds_); @@ -37135,7 +36590,7 @@ public final class ContextOuterClass { if (other.hasTimestamp()) { mergeTimestamp(other.getTimestamp()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -37147,17 +36602,125 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Slice parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getSliceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (sliceEndpointIdsBuilder_ == null) { + ensureSliceEndpointIdsIsMutable(); + sliceEndpointIds_.add(m); + } else { + sliceEndpointIdsBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.Constraint m = input.readMessage(context.ContextOuterClass.Constraint.parser(), extensionRegistry); + if (sliceConstraintsBuilder_ == null) { + ensureSliceConstraintsIsMutable(); + sliceConstraints_.add(m); + } else { + sliceConstraintsBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + context.ContextOuterClass.ServiceId m = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); + if (sliceServiceIdsBuilder_ == null) { + ensureSliceServiceIdsIsMutable(); + sliceServiceIds_.add(m); + } else { + sliceServiceIdsBuilder_.addMessage(m); + } + break; + } + // case 42 + case 50: + { + context.ContextOuterClass.SliceId m = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry); + if (sliceSubsliceIdsBuilder_ == null) { + ensureSliceSubsliceIdsIsMutable(); + sliceSubsliceIds_.add(m); + } else { + sliceSubsliceIdsBuilder_.addMessage(m); + } + break; + } + // case 50 + case 58: + { + input.readMessage(getSliceStatusFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000040; + break; + } + // case 58 + case 66: + { + input.readMessage(getSliceConfigFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000080; + break; + } + // case 66 + case 74: + { + input.readMessage(getSliceOwnerFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000100; + break; + } + // case 74 + case 82: + { + input.readMessage(getTimestampFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000200; + break; + } + // case 82 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Slice) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -37172,7 +36735,7 @@ public final class ContextOuterClass { * @return Whether the sliceId field is set. */ public boolean hasSliceId() { - return sliceIdBuilder_ != null || sliceId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -37196,10 +36759,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } sliceId_ = value; - onChanged(); } else { sliceIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -37209,10 +36773,11 @@ public final class ContextOuterClass { public Builder setSliceId(context.ContextOuterClass.SliceId.Builder builderForValue) { if (sliceIdBuilder_ == null) { sliceId_ = builderForValue.build(); - onChanged(); } else { sliceIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -37221,15 +36786,16 @@ public final class ContextOuterClass { */ public Builder mergeSliceId(context.ContextOuterClass.SliceId value) { if (sliceIdBuilder_ == null) { - if (sliceId_ != null) { - sliceId_ = context.ContextOuterClass.SliceId.newBuilder(sliceId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && sliceId_ != null && sliceId_ != context.ContextOuterClass.SliceId.getDefaultInstance()) { + getSliceIdBuilder().mergeFrom(value); } else { sliceId_ = value; } - onChanged(); } else { sliceIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -37237,13 +36803,13 @@ public final class ContextOuterClass { * <code>.context.SliceId slice_id = 1;</code> */ public Builder clearSliceId() { - if (sliceIdBuilder_ == null) { - sliceId_ = null; - onChanged(); - } else { - sliceId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + sliceId_ = null; + if (sliceIdBuilder_ != null) { + sliceIdBuilder_.dispose(); sliceIdBuilder_ = null; } + onChanged(); return this; } @@ -37251,6 +36817,7 @@ public final class ContextOuterClass { * <code>.context.SliceId slice_id = 1;</code> */ public context.ContextOuterClass.SliceId.Builder getSliceIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getSliceIdFieldBuilder().getBuilder(); } @@ -37320,6 +36887,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -37330,6 +36898,7 @@ public final class ContextOuterClass { */ public Builder clearName() { name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -37345,6 +36914,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -37352,9 +36922,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.EndPointId> sliceEndpointIds_ = java.util.Collections.emptyList(); private void ensureSliceEndpointIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000004) != 0)) { sliceEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(sliceEndpointIds_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000004; } } @@ -37506,7 +37076,7 @@ public final class ContextOuterClass { public Builder clearSliceEndpointIds() { if (sliceEndpointIdsBuilder_ == null) { sliceEndpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { sliceEndpointIdsBuilder_.clear(); @@ -37580,7 +37150,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> getSliceEndpointIdsFieldBuilder() { if (sliceEndpointIdsBuilder_ == null) { - sliceEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(sliceEndpointIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + sliceEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(sliceEndpointIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); sliceEndpointIds_ = null; } return sliceEndpointIdsBuilder_; @@ -37589,9 +37159,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.Constraint> sliceConstraints_ = java.util.Collections.emptyList(); private void ensureSliceConstraintsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!((bitField0_ & 0x00000008) != 0)) { sliceConstraints_ = new java.util.ArrayList<context.ContextOuterClass.Constraint>(sliceConstraints_); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000008; } } @@ -37743,7 +37313,7 @@ public final class ContextOuterClass { public Builder clearSliceConstraints() { if (sliceConstraintsBuilder_ == null) { sliceConstraints_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { sliceConstraintsBuilder_.clear(); @@ -37817,7 +37387,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Constraint, context.ContextOuterClass.Constraint.Builder, context.ContextOuterClass.ConstraintOrBuilder> getSliceConstraintsFieldBuilder() { if (sliceConstraintsBuilder_ == null) { - sliceConstraintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Constraint, context.ContextOuterClass.Constraint.Builder, context.ContextOuterClass.ConstraintOrBuilder>(sliceConstraints_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); + sliceConstraintsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Constraint, context.ContextOuterClass.Constraint.Builder, context.ContextOuterClass.ConstraintOrBuilder>(sliceConstraints_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); sliceConstraints_ = null; } return sliceConstraintsBuilder_; @@ -37826,9 +37396,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.ServiceId> sliceServiceIds_ = java.util.Collections.emptyList(); private void ensureSliceServiceIdsIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { + if (!((bitField0_ & 0x00000010) != 0)) { sliceServiceIds_ = new java.util.ArrayList<context.ContextOuterClass.ServiceId>(sliceServiceIds_); - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000010; } } @@ -37980,7 +37550,7 @@ public final class ContextOuterClass { public Builder clearSliceServiceIds() { if (sliceServiceIdsBuilder_ == null) { sliceServiceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); } else { sliceServiceIdsBuilder_.clear(); @@ -38054,7 +37624,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> getSliceServiceIdsFieldBuilder() { if (sliceServiceIdsBuilder_ == null) { - sliceServiceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(sliceServiceIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + sliceServiceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(sliceServiceIds_, ((bitField0_ & 0x00000010) != 0), getParentForChildren(), isClean()); sliceServiceIds_ = null; } return sliceServiceIdsBuilder_; @@ -38063,9 +37633,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.SliceId> sliceSubsliceIds_ = java.util.Collections.emptyList(); private void ensureSliceSubsliceIdsIsMutable() { - if (!((bitField0_ & 0x00000008) != 0)) { + if (!((bitField0_ & 0x00000020) != 0)) { sliceSubsliceIds_ = new java.util.ArrayList<context.ContextOuterClass.SliceId>(sliceSubsliceIds_); - bitField0_ |= 0x00000008; + bitField0_ |= 0x00000020; } } @@ -38217,7 +37787,7 @@ public final class ContextOuterClass { public Builder clearSliceSubsliceIds() { if (sliceSubsliceIdsBuilder_ == null) { sliceSubsliceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000008); + bitField0_ = (bitField0_ & ~0x00000020); onChanged(); } else { sliceSubsliceIdsBuilder_.clear(); @@ -38291,7 +37861,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder> getSliceSubsliceIdsFieldBuilder() { if (sliceSubsliceIdsBuilder_ == null) { - sliceSubsliceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder>(sliceSubsliceIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); + sliceSubsliceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.SliceId, context.ContextOuterClass.SliceId.Builder, context.ContextOuterClass.SliceIdOrBuilder>(sliceSubsliceIds_, ((bitField0_ & 0x00000020) != 0), getParentForChildren(), isClean()); sliceSubsliceIds_ = null; } return sliceSubsliceIdsBuilder_; @@ -38306,7 +37876,7 @@ public final class ContextOuterClass { * @return Whether the sliceStatus field is set. */ public boolean hasSliceStatus() { - return sliceStatusBuilder_ != null || sliceStatus_ != null; + return ((bitField0_ & 0x00000040) != 0); } /** @@ -38330,10 +37900,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } sliceStatus_ = value; - onChanged(); } else { sliceStatusBuilder_.setMessage(value); } + bitField0_ |= 0x00000040; + onChanged(); return this; } @@ -38343,10 +37914,11 @@ public final class ContextOuterClass { public Builder setSliceStatus(context.ContextOuterClass.SliceStatus.Builder builderForValue) { if (sliceStatusBuilder_ == null) { sliceStatus_ = builderForValue.build(); - onChanged(); } else { sliceStatusBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000040; + onChanged(); return this; } @@ -38355,15 +37927,16 @@ public final class ContextOuterClass { */ public Builder mergeSliceStatus(context.ContextOuterClass.SliceStatus value) { if (sliceStatusBuilder_ == null) { - if (sliceStatus_ != null) { - sliceStatus_ = context.ContextOuterClass.SliceStatus.newBuilder(sliceStatus_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000040) != 0) && sliceStatus_ != null && sliceStatus_ != context.ContextOuterClass.SliceStatus.getDefaultInstance()) { + getSliceStatusBuilder().mergeFrom(value); } else { sliceStatus_ = value; } - onChanged(); } else { sliceStatusBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000040; + onChanged(); return this; } @@ -38371,13 +37944,13 @@ public final class ContextOuterClass { * <code>.context.SliceStatus slice_status = 7;</code> */ public Builder clearSliceStatus() { - if (sliceStatusBuilder_ == null) { - sliceStatus_ = null; - onChanged(); - } else { - sliceStatus_ = null; + bitField0_ = (bitField0_ & ~0x00000040); + sliceStatus_ = null; + if (sliceStatusBuilder_ != null) { + sliceStatusBuilder_.dispose(); sliceStatusBuilder_ = null; } + onChanged(); return this; } @@ -38385,6 +37958,7 @@ public final class ContextOuterClass { * <code>.context.SliceStatus slice_status = 7;</code> */ public context.ContextOuterClass.SliceStatus.Builder getSliceStatusBuilder() { + bitField0_ |= 0x00000040; onChanged(); return getSliceStatusFieldBuilder().getBuilder(); } @@ -38420,7 +37994,7 @@ public final class ContextOuterClass { * @return Whether the sliceConfig field is set. */ public boolean hasSliceConfig() { - return sliceConfigBuilder_ != null || sliceConfig_ != null; + return ((bitField0_ & 0x00000080) != 0); } /** @@ -38444,10 +38018,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } sliceConfig_ = value; - onChanged(); } else { sliceConfigBuilder_.setMessage(value); } + bitField0_ |= 0x00000080; + onChanged(); return this; } @@ -38457,10 +38032,11 @@ public final class ContextOuterClass { public Builder setSliceConfig(context.ContextOuterClass.SliceConfig.Builder builderForValue) { if (sliceConfigBuilder_ == null) { sliceConfig_ = builderForValue.build(); - onChanged(); } else { sliceConfigBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000080; + onChanged(); return this; } @@ -38469,15 +38045,16 @@ public final class ContextOuterClass { */ public Builder mergeSliceConfig(context.ContextOuterClass.SliceConfig value) { if (sliceConfigBuilder_ == null) { - if (sliceConfig_ != null) { - sliceConfig_ = context.ContextOuterClass.SliceConfig.newBuilder(sliceConfig_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000080) != 0) && sliceConfig_ != null && sliceConfig_ != context.ContextOuterClass.SliceConfig.getDefaultInstance()) { + getSliceConfigBuilder().mergeFrom(value); } else { sliceConfig_ = value; } - onChanged(); } else { sliceConfigBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000080; + onChanged(); return this; } @@ -38485,13 +38062,13 @@ public final class ContextOuterClass { * <code>.context.SliceConfig slice_config = 8;</code> */ public Builder clearSliceConfig() { - if (sliceConfigBuilder_ == null) { - sliceConfig_ = null; - onChanged(); - } else { - sliceConfig_ = null; + bitField0_ = (bitField0_ & ~0x00000080); + sliceConfig_ = null; + if (sliceConfigBuilder_ != null) { + sliceConfigBuilder_.dispose(); sliceConfigBuilder_ = null; } + onChanged(); return this; } @@ -38499,6 +38076,7 @@ public final class ContextOuterClass { * <code>.context.SliceConfig slice_config = 8;</code> */ public context.ContextOuterClass.SliceConfig.Builder getSliceConfigBuilder() { + bitField0_ |= 0x00000080; onChanged(); return getSliceConfigFieldBuilder().getBuilder(); } @@ -38534,7 +38112,7 @@ public final class ContextOuterClass { * @return Whether the sliceOwner field is set. */ public boolean hasSliceOwner() { - return sliceOwnerBuilder_ != null || sliceOwner_ != null; + return ((bitField0_ & 0x00000100) != 0); } /** @@ -38558,10 +38136,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } sliceOwner_ = value; - onChanged(); } else { sliceOwnerBuilder_.setMessage(value); } + bitField0_ |= 0x00000100; + onChanged(); return this; } @@ -38571,10 +38150,11 @@ public final class ContextOuterClass { public Builder setSliceOwner(context.ContextOuterClass.SliceOwner.Builder builderForValue) { if (sliceOwnerBuilder_ == null) { sliceOwner_ = builderForValue.build(); - onChanged(); } else { sliceOwnerBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000100; + onChanged(); return this; } @@ -38583,15 +38163,16 @@ public final class ContextOuterClass { */ public Builder mergeSliceOwner(context.ContextOuterClass.SliceOwner value) { if (sliceOwnerBuilder_ == null) { - if (sliceOwner_ != null) { - sliceOwner_ = context.ContextOuterClass.SliceOwner.newBuilder(sliceOwner_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000100) != 0) && sliceOwner_ != null && sliceOwner_ != context.ContextOuterClass.SliceOwner.getDefaultInstance()) { + getSliceOwnerBuilder().mergeFrom(value); } else { sliceOwner_ = value; } - onChanged(); } else { sliceOwnerBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000100; + onChanged(); return this; } @@ -38599,13 +38180,13 @@ public final class ContextOuterClass { * <code>.context.SliceOwner slice_owner = 9;</code> */ public Builder clearSliceOwner() { - if (sliceOwnerBuilder_ == null) { - sliceOwner_ = null; - onChanged(); - } else { - sliceOwner_ = null; + bitField0_ = (bitField0_ & ~0x00000100); + sliceOwner_ = null; + if (sliceOwnerBuilder_ != null) { + sliceOwnerBuilder_.dispose(); sliceOwnerBuilder_ = null; } + onChanged(); return this; } @@ -38613,6 +38194,7 @@ public final class ContextOuterClass { * <code>.context.SliceOwner slice_owner = 9;</code> */ public context.ContextOuterClass.SliceOwner.Builder getSliceOwnerBuilder() { + bitField0_ |= 0x00000100; onChanged(); return getSliceOwnerFieldBuilder().getBuilder(); } @@ -38648,7 +38230,7 @@ public final class ContextOuterClass { * @return Whether the timestamp field is set. */ public boolean hasTimestamp() { - return timestampBuilder_ != null || timestamp_ != null; + return ((bitField0_ & 0x00000200) != 0); } /** @@ -38672,10 +38254,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } timestamp_ = value; - onChanged(); } else { timestampBuilder_.setMessage(value); } + bitField0_ |= 0x00000200; + onChanged(); return this; } @@ -38685,10 +38268,11 @@ public final class ContextOuterClass { public Builder setTimestamp(context.ContextOuterClass.Timestamp.Builder builderForValue) { if (timestampBuilder_ == null) { timestamp_ = builderForValue.build(); - onChanged(); } else { timestampBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000200; + onChanged(); return this; } @@ -38697,15 +38281,16 @@ public final class ContextOuterClass { */ public Builder mergeTimestamp(context.ContextOuterClass.Timestamp value) { if (timestampBuilder_ == null) { - if (timestamp_ != null) { - timestamp_ = context.ContextOuterClass.Timestamp.newBuilder(timestamp_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000200) != 0) && timestamp_ != null && timestamp_ != context.ContextOuterClass.Timestamp.getDefaultInstance()) { + getTimestampBuilder().mergeFrom(value); } else { timestamp_ = value; } - onChanged(); } else { timestampBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000200; + onChanged(); return this; } @@ -38713,13 +38298,13 @@ public final class ContextOuterClass { * <code>.context.Timestamp timestamp = 10;</code> */ public Builder clearTimestamp() { - if (timestampBuilder_ == null) { - timestamp_ = null; - onChanged(); - } else { - timestamp_ = null; + bitField0_ = (bitField0_ & ~0x00000200); + timestamp_ = null; + if (timestampBuilder_ != null) { + timestampBuilder_.dispose(); timestampBuilder_ = null; } + onChanged(); return this; } @@ -38727,6 +38312,7 @@ public final class ContextOuterClass { * <code>.context.Timestamp timestamp = 10;</code> */ public context.ContextOuterClass.Timestamp.Builder getTimestampBuilder() { + bitField0_ |= 0x00000200; onChanged(); return getTimestampFieldBuilder().getBuilder(); } @@ -38780,7 +38366,17 @@ public final class ContextOuterClass { @java.lang.Override public Slice parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Slice(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -38855,63 +38451,6 @@ public final class ContextOuterClass { return new SliceOwner(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private SliceOwner(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (ownerUuid_ != null) { - subBuilder = ownerUuid_.toBuilder(); - } - ownerUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(ownerUuid_); - ownerUuid_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - ownerString_ = s; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_SliceOwner_descriptor; } @@ -38948,12 +38487,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.UuidOrBuilder getOwnerUuidOrBuilder() { - return getOwnerUuid(); + return ownerUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : ownerUuid_; } public static final int OWNER_STRING_FIELD_NUMBER = 2; - private volatile java.lang.Object ownerString_; + @SuppressWarnings("serial") + private volatile java.lang.Object ownerString_ = ""; /** * <code>string owner_string = 2;</code> @@ -39006,10 +38546,10 @@ public final class ContextOuterClass { if (ownerUuid_ != null) { output.writeMessage(1, getOwnerUuid()); } - if (!getOwnerStringBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ownerString_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ownerString_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -39021,10 +38561,10 @@ public final class ContextOuterClass { if (ownerUuid_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOwnerUuid()); } - if (!getOwnerStringBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ownerString_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, ownerString_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -39046,7 +38586,7 @@ public final class ContextOuterClass { } if (!getOwnerString().equals(other.getOwnerString())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -39064,7 +38604,7 @@ public final class ContextOuterClass { } hash = (37 * hash) + OWNER_STRING_FIELD_NUMBER; hash = (53 * hash) + getOwnerString().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -39158,26 +38698,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.SliceOwner.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (ownerUuidBuilder_ == null) { - ownerUuid_ = null; - } else { - ownerUuid_ = null; + bitField0_ = 0; + ownerUuid_ = null; + if (ownerUuidBuilder_ != null) { + ownerUuidBuilder_.dispose(); ownerUuidBuilder_ = null; } ownerString_ = ""; @@ -39206,44 +38739,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.SliceOwner buildPartial() { context.ContextOuterClass.SliceOwner result = new context.ContextOuterClass.SliceOwner(this); - if (ownerUuidBuilder_ == null) { - result.ownerUuid_ = ownerUuid_; - } else { - result.ownerUuid_ = ownerUuidBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } - result.ownerString_ = ownerString_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.SliceOwner result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.ownerUuid_ = ownerUuidBuilder_ == null ? ownerUuid_ : ownerUuidBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ownerString_ = ownerString_; + } } @java.lang.Override @@ -39264,9 +38774,10 @@ public final class ContextOuterClass { } if (!other.getOwnerString().isEmpty()) { ownerString_ = other.ownerString_; + bitField0_ |= 0x00000002; onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -39278,20 +38789,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.SliceOwner parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getOwnerUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + ownerString_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.SliceOwner) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Uuid ownerUuid_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> ownerUuidBuilder_; @@ -39301,7 +38846,7 @@ public final class ContextOuterClass { * @return Whether the ownerUuid field is set. */ public boolean hasOwnerUuid() { - return ownerUuidBuilder_ != null || ownerUuid_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -39325,10 +38870,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } ownerUuid_ = value; - onChanged(); } else { ownerUuidBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -39338,10 +38884,11 @@ public final class ContextOuterClass { public Builder setOwnerUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { if (ownerUuidBuilder_ == null) { ownerUuid_ = builderForValue.build(); - onChanged(); } else { ownerUuidBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -39350,15 +38897,16 @@ public final class ContextOuterClass { */ public Builder mergeOwnerUuid(context.ContextOuterClass.Uuid value) { if (ownerUuidBuilder_ == null) { - if (ownerUuid_ != null) { - ownerUuid_ = context.ContextOuterClass.Uuid.newBuilder(ownerUuid_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && ownerUuid_ != null && ownerUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getOwnerUuidBuilder().mergeFrom(value); } else { ownerUuid_ = value; } - onChanged(); } else { ownerUuidBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -39366,13 +38914,13 @@ public final class ContextOuterClass { * <code>.context.Uuid owner_uuid = 1;</code> */ public Builder clearOwnerUuid() { - if (ownerUuidBuilder_ == null) { - ownerUuid_ = null; - onChanged(); - } else { - ownerUuid_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + ownerUuid_ = null; + if (ownerUuidBuilder_ != null) { + ownerUuidBuilder_.dispose(); ownerUuidBuilder_ = null; } + onChanged(); return this; } @@ -39380,6 +38928,7 @@ public final class ContextOuterClass { * <code>.context.Uuid owner_uuid = 1;</code> */ public context.ContextOuterClass.Uuid.Builder getOwnerUuidBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getOwnerUuidFieldBuilder().getBuilder(); } @@ -39449,6 +38998,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } ownerString_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -39459,6 +39009,7 @@ public final class ContextOuterClass { */ public Builder clearOwnerString() { ownerString_ = getDefaultInstance().getOwnerString(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -39474,6 +39025,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); ownerString_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -39505,7 +39057,17 @@ public final class ContextOuterClass { @java.lang.Override public SliceOwner parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new SliceOwner(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -39563,50 +39125,6 @@ public final class ContextOuterClass { return new SliceStatus(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private SliceStatus(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - int rawValue = input.readEnum(); - sliceStatus_ = rawValue; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_SliceStatus_descriptor; } @@ -39618,7 +39136,7 @@ public final class ContextOuterClass { public static final int SLICE_STATUS_FIELD_NUMBER = 1; - private int sliceStatus_; + private int sliceStatus_ = 0; /** * <code>.context.SliceStatusEnum slice_status = 1;</code> @@ -39635,8 +39153,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.SliceStatusEnum getSliceStatus() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.SliceStatusEnum result = context.ContextOuterClass.SliceStatusEnum.valueOf(sliceStatus_); + context.ContextOuterClass.SliceStatusEnum result = context.ContextOuterClass.SliceStatusEnum.forNumber(sliceStatus_); return result == null ? context.ContextOuterClass.SliceStatusEnum.UNRECOGNIZED : result; } @@ -39658,7 +39175,7 @@ public final class ContextOuterClass { if (sliceStatus_ != context.ContextOuterClass.SliceStatusEnum.SLICESTATUS_UNDEFINED.getNumber()) { output.writeEnum(1, sliceStatus_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -39670,7 +39187,7 @@ public final class ContextOuterClass { if (sliceStatus_ != context.ContextOuterClass.SliceStatusEnum.SLICESTATUS_UNDEFINED.getNumber()) { size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, sliceStatus_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -39686,7 +39203,7 @@ public final class ContextOuterClass { context.ContextOuterClass.SliceStatus other = (context.ContextOuterClass.SliceStatus) obj; if (sliceStatus_ != other.sliceStatus_) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -39700,7 +39217,7 @@ public final class ContextOuterClass { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + SLICE_STATUS_FIELD_NUMBER; hash = (53 * hash) + sliceStatus_; - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -39794,22 +39311,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.SliceStatus.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; sliceStatus_ = 0; return this; } @@ -39836,39 +39347,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.SliceStatus buildPartial() { context.ContextOuterClass.SliceStatus result = new context.ContextOuterClass.SliceStatus(this); - result.sliceStatus_ = sliceStatus_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.SliceStatus result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sliceStatus_ = sliceStatus_; + } } @java.lang.Override @@ -39887,7 +39377,7 @@ public final class ContextOuterClass { if (other.sliceStatus_ != 0) { setSliceStatusValue(other.getSliceStatusValue()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -39899,20 +39389,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.SliceStatus parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + sliceStatus_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.SliceStatus) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private int sliceStatus_ = 0; /** @@ -39931,6 +39448,7 @@ public final class ContextOuterClass { */ public Builder setSliceStatusValue(int value) { sliceStatus_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -39941,8 +39459,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.SliceStatusEnum getSliceStatus() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.SliceStatusEnum result = context.ContextOuterClass.SliceStatusEnum.valueOf(sliceStatus_); + context.ContextOuterClass.SliceStatusEnum result = context.ContextOuterClass.SliceStatusEnum.forNumber(sliceStatus_); return result == null ? context.ContextOuterClass.SliceStatusEnum.UNRECOGNIZED : result; } @@ -39955,6 +39472,7 @@ public final class ContextOuterClass { if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000001; sliceStatus_ = value.getNumber(); onChanged(); return this; @@ -39965,6 +39483,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearSliceStatus() { + bitField0_ = (bitField0_ & ~0x00000001); sliceStatus_ = 0; onChanged(); return this; @@ -39997,7 +39516,17 @@ public final class ContextOuterClass { @java.lang.Override public SliceStatus parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new SliceStatus(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -40068,57 +39597,6 @@ public final class ContextOuterClass { return new SliceConfig(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private SliceConfig(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - configRules_ = new java.util.ArrayList<context.ContextOuterClass.ConfigRule>(); - mutable_bitField0_ |= 0x00000001; - } - configRules_.add(input.readMessage(context.ContextOuterClass.ConfigRule.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - configRules_ = java.util.Collections.unmodifiableList(configRules_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_SliceConfig_descriptor; } @@ -40130,6 +39608,7 @@ public final class ContextOuterClass { public static final int CONFIG_RULES_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.ConfigRule> configRules_; /** @@ -40190,7 +39669,7 @@ public final class ContextOuterClass { for (int i = 0; i < configRules_.size(); i++) { output.writeMessage(1, configRules_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -40202,7 +39681,7 @@ public final class ContextOuterClass { for (int i = 0; i < configRules_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, configRules_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -40218,7 +39697,7 @@ public final class ContextOuterClass { context.ContextOuterClass.SliceConfig other = (context.ContextOuterClass.SliceConfig) obj; if (!getConfigRulesList().equals(other.getConfigRulesList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -40234,7 +39713,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONFIG_RULES_FIELD_NUMBER; hash = (53 * hash) + getConfigRulesList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -40328,29 +39807,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.SliceConfig.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getConfigRulesFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (configRulesBuilder_ == null) { configRules_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + configRules_ = null; configRulesBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -40376,7 +39849,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.SliceConfig buildPartial() { context.ContextOuterClass.SliceConfig result = new context.ContextOuterClass.SliceConfig(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.SliceConfig result) { if (configRulesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { configRules_ = java.util.Collections.unmodifiableList(configRules_); @@ -40386,38 +39867,10 @@ public final class ContextOuterClass { } else { result.configRules_ = configRulesBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.SliceConfig result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -40457,7 +39910,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -40469,17 +39922,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.SliceConfig parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ConfigRule m = input.readMessage(context.ContextOuterClass.ConfigRule.parser(), extensionRegistry); + if (configRulesBuilder_ == null) { + ensureConfigRulesIsMutable(); + configRules_.add(m); + } else { + configRulesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.SliceConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -40749,7 +40232,17 @@ public final class ContextOuterClass { @java.lang.Override public SliceConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new SliceConfig(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -40820,57 +40313,6 @@ public final class ContextOuterClass { return new SliceIdList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private SliceIdList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - sliceIds_ = new java.util.ArrayList<context.ContextOuterClass.SliceId>(); - mutable_bitField0_ |= 0x00000001; - } - sliceIds_.add(input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - sliceIds_ = java.util.Collections.unmodifiableList(sliceIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_SliceIdList_descriptor; } @@ -40882,6 +40324,7 @@ public final class ContextOuterClass { public static final int SLICE_IDS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.SliceId> sliceIds_; /** @@ -40942,7 +40385,7 @@ public final class ContextOuterClass { for (int i = 0; i < sliceIds_.size(); i++) { output.writeMessage(1, sliceIds_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -40954,7 +40397,7 @@ public final class ContextOuterClass { for (int i = 0; i < sliceIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, sliceIds_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -40970,7 +40413,7 @@ public final class ContextOuterClass { context.ContextOuterClass.SliceIdList other = (context.ContextOuterClass.SliceIdList) obj; if (!getSliceIdsList().equals(other.getSliceIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -40986,7 +40429,7 @@ public final class ContextOuterClass { hash = (37 * hash) + SLICE_IDS_FIELD_NUMBER; hash = (53 * hash) + getSliceIdsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -41080,29 +40523,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.SliceIdList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getSliceIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (sliceIdsBuilder_ == null) { sliceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + sliceIds_ = null; sliceIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -41128,7 +40565,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.SliceIdList buildPartial() { context.ContextOuterClass.SliceIdList result = new context.ContextOuterClass.SliceIdList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.SliceIdList result) { if (sliceIdsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { sliceIds_ = java.util.Collections.unmodifiableList(sliceIds_); @@ -41138,38 +40583,10 @@ public final class ContextOuterClass { } else { result.sliceIds_ = sliceIdsBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); } - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.SliceIdList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -41209,7 +40626,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -41221,17 +40638,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.SliceIdList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.SliceId m = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry); + if (sliceIdsBuilder_ == null) { + ensureSliceIdsIsMutable(); + sliceIds_.add(m); + } else { + sliceIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.SliceIdList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -41501,7 +40948,17 @@ public final class ContextOuterClass { @java.lang.Override public SliceIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new SliceIdList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -41572,57 +41029,6 @@ public final class ContextOuterClass { return new SliceList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private SliceList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - slices_ = new java.util.ArrayList<context.ContextOuterClass.Slice>(); - mutable_bitField0_ |= 0x00000001; - } - slices_.add(input.readMessage(context.ContextOuterClass.Slice.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - slices_ = java.util.Collections.unmodifiableList(slices_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_SliceList_descriptor; } @@ -41634,6 +41040,7 @@ public final class ContextOuterClass { public static final int SLICES_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Slice> slices_; /** @@ -41694,7 +41101,7 @@ public final class ContextOuterClass { for (int i = 0; i < slices_.size(); i++) { output.writeMessage(1, slices_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -41706,7 +41113,7 @@ public final class ContextOuterClass { for (int i = 0; i < slices_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, slices_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -41722,7 +41129,7 @@ public final class ContextOuterClass { context.ContextOuterClass.SliceList other = (context.ContextOuterClass.SliceList) obj; if (!getSlicesList().equals(other.getSlicesList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -41738,7 +41145,7 @@ public final class ContextOuterClass { hash = (37 * hash) + SLICES_FIELD_NUMBER; hash = (53 * hash) + getSlicesList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -41832,29 +41239,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.SliceList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getSlicesFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (slicesBuilder_ == null) { slices_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + slices_ = null; slicesBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -41880,7 +41281,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.SliceList buildPartial() { context.ContextOuterClass.SliceList result = new context.ContextOuterClass.SliceList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.SliceList result) { if (slicesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { slices_ = java.util.Collections.unmodifiableList(slices_); @@ -41890,38 +41299,10 @@ public final class ContextOuterClass { } else { result.slices_ = slicesBuilder_.build(); } - onBuilt(); - return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.SliceList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -41961,7 +41342,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -41973,17 +41354,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.SliceList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Slice m = input.readMessage(context.ContextOuterClass.Slice.parser(), extensionRegistry); + if (slicesBuilder_ == null) { + ensureSlicesIsMutable(); + slices_.add(m); + } else { + slicesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.SliceList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -42253,7 +41664,17 @@ public final class ContextOuterClass { @java.lang.Override public SliceList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new SliceList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -42345,82 +41766,6 @@ public final class ContextOuterClass { return new SliceFilter(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private SliceFilter(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.SliceIdList.Builder subBuilder = null; - if (sliceIds_ != null) { - subBuilder = sliceIds_.toBuilder(); - } - sliceIds_ = input.readMessage(context.ContextOuterClass.SliceIdList.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(sliceIds_); - sliceIds_ = subBuilder.buildPartial(); - } - break; - } - case 16: - { - includeEndpointIds_ = input.readBool(); - break; - } - case 24: - { - includeConstraints_ = input.readBool(); - break; - } - case 32: - { - includeServiceIds_ = input.readBool(); - break; - } - case 40: - { - includeSubsliceIds_ = input.readBool(); - break; - } - case 48: - { - includeConfigRules_ = input.readBool(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_SliceFilter_descriptor; } @@ -42457,12 +41802,12 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.SliceIdListOrBuilder getSliceIdsOrBuilder() { - return getSliceIds(); + return sliceIds_ == null ? context.ContextOuterClass.SliceIdList.getDefaultInstance() : sliceIds_; } public static final int INCLUDE_ENDPOINT_IDS_FIELD_NUMBER = 2; - private boolean includeEndpointIds_; + private boolean includeEndpointIds_ = false; /** * <code>bool include_endpoint_ids = 2;</code> @@ -42475,7 +41820,7 @@ public final class ContextOuterClass { public static final int INCLUDE_CONSTRAINTS_FIELD_NUMBER = 3; - private boolean includeConstraints_; + private boolean includeConstraints_ = false; /** * <code>bool include_constraints = 3;</code> @@ -42488,7 +41833,7 @@ public final class ContextOuterClass { public static final int INCLUDE_SERVICE_IDS_FIELD_NUMBER = 4; - private boolean includeServiceIds_; + private boolean includeServiceIds_ = false; /** * <code>bool include_service_ids = 4;</code> @@ -42501,7 +41846,7 @@ public final class ContextOuterClass { public static final int INCLUDE_SUBSLICE_IDS_FIELD_NUMBER = 5; - private boolean includeSubsliceIds_; + private boolean includeSubsliceIds_ = false; /** * <code>bool include_subslice_ids = 5;</code> @@ -42514,7 +41859,7 @@ public final class ContextOuterClass { public static final int INCLUDE_CONFIG_RULES_FIELD_NUMBER = 6; - private boolean includeConfigRules_; + private boolean includeConfigRules_ = false; /** * <code>bool include_config_rules = 6;</code> @@ -42558,7 +41903,7 @@ public final class ContextOuterClass { if (includeConfigRules_ != false) { output.writeBool(6, includeConfigRules_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -42585,7 +41930,7 @@ public final class ContextOuterClass { if (includeConfigRules_ != false) { size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, includeConfigRules_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -42615,7 +41960,7 @@ public final class ContextOuterClass { return false; if (getIncludeConfigRules() != other.getIncludeConfigRules()) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -42641,7 +41986,7 @@ public final class ContextOuterClass { hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeSubsliceIds()); hash = (37 * hash) + INCLUDE_CONFIG_RULES_FIELD_NUMBER; hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getIncludeConfigRules()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -42735,26 +42080,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.SliceFilter.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (sliceIdsBuilder_ == null) { - sliceIds_ = null; - } else { - sliceIds_ = null; + bitField0_ = 0; + sliceIds_ = null; + if (sliceIdsBuilder_ != null) { + sliceIdsBuilder_.dispose(); sliceIdsBuilder_ = null; } includeEndpointIds_ = false; @@ -42787,48 +42125,33 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.SliceFilter buildPartial() { context.ContextOuterClass.SliceFilter result = new context.ContextOuterClass.SliceFilter(this); - if (sliceIdsBuilder_ == null) { - result.sliceIds_ = sliceIds_; - } else { - result.sliceIds_ = sliceIdsBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } - result.includeEndpointIds_ = includeEndpointIds_; - result.includeConstraints_ = includeConstraints_; - result.includeServiceIds_ = includeServiceIds_; - result.includeSubsliceIds_ = includeSubsliceIds_; - result.includeConfigRules_ = includeConfigRules_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.SliceFilter result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sliceIds_ = sliceIdsBuilder_ == null ? sliceIds_ : sliceIdsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.includeEndpointIds_ = includeEndpointIds_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.includeConstraints_ = includeConstraints_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.includeServiceIds_ = includeServiceIds_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.includeSubsliceIds_ = includeSubsliceIds_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.includeConfigRules_ = includeConfigRules_; + } } @java.lang.Override @@ -42862,7 +42185,7 @@ public final class ContextOuterClass { if (other.getIncludeConfigRules() != false) { setIncludeConfigRules(other.getIncludeConfigRules()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -42874,20 +42197,82 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.SliceFilter parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getSliceIdsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + includeEndpointIds_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 24: + { + includeConstraints_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + includeServiceIds_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + case 40: + { + includeSubsliceIds_ = input.readBool(); + bitField0_ |= 0x00000010; + break; + } + // case 40 + case 48: + { + includeConfigRules_ = input.readBool(); + bitField0_ |= 0x00000020; + break; + } + // case 48 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.SliceFilter) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.SliceIdList sliceIds_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.SliceIdList, context.ContextOuterClass.SliceIdList.Builder, context.ContextOuterClass.SliceIdListOrBuilder> sliceIdsBuilder_; @@ -42897,7 +42282,7 @@ public final class ContextOuterClass { * @return Whether the sliceIds field is set. */ public boolean hasSliceIds() { - return sliceIdsBuilder_ != null || sliceIds_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -42921,10 +42306,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } sliceIds_ = value; - onChanged(); } else { sliceIdsBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -42934,10 +42320,11 @@ public final class ContextOuterClass { public Builder setSliceIds(context.ContextOuterClass.SliceIdList.Builder builderForValue) { if (sliceIdsBuilder_ == null) { sliceIds_ = builderForValue.build(); - onChanged(); } else { sliceIdsBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -42946,15 +42333,16 @@ public final class ContextOuterClass { */ public Builder mergeSliceIds(context.ContextOuterClass.SliceIdList value) { if (sliceIdsBuilder_ == null) { - if (sliceIds_ != null) { - sliceIds_ = context.ContextOuterClass.SliceIdList.newBuilder(sliceIds_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && sliceIds_ != null && sliceIds_ != context.ContextOuterClass.SliceIdList.getDefaultInstance()) { + getSliceIdsBuilder().mergeFrom(value); } else { sliceIds_ = value; } - onChanged(); } else { sliceIdsBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -42962,13 +42350,13 @@ public final class ContextOuterClass { * <code>.context.SliceIdList slice_ids = 1;</code> */ public Builder clearSliceIds() { - if (sliceIdsBuilder_ == null) { - sliceIds_ = null; - onChanged(); - } else { - sliceIds_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + sliceIds_ = null; + if (sliceIdsBuilder_ != null) { + sliceIdsBuilder_.dispose(); sliceIdsBuilder_ = null; } + onChanged(); return this; } @@ -42976,6 +42364,7 @@ public final class ContextOuterClass { * <code>.context.SliceIdList slice_ids = 1;</code> */ public context.ContextOuterClass.SliceIdList.Builder getSliceIdsBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getSliceIdsFieldBuilder().getBuilder(); } @@ -43020,6 +42409,7 @@ public final class ContextOuterClass { */ public Builder setIncludeEndpointIds(boolean value) { includeEndpointIds_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -43029,6 +42419,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeEndpointIds() { + bitField0_ = (bitField0_ & ~0x00000002); includeEndpointIds_ = false; onChanged(); return this; @@ -43052,6 +42443,7 @@ public final class ContextOuterClass { */ public Builder setIncludeConstraints(boolean value) { includeConstraints_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -43061,6 +42453,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeConstraints() { + bitField0_ = (bitField0_ & ~0x00000004); includeConstraints_ = false; onChanged(); return this; @@ -43084,6 +42477,7 @@ public final class ContextOuterClass { */ public Builder setIncludeServiceIds(boolean value) { includeServiceIds_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -43093,6 +42487,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeServiceIds() { + bitField0_ = (bitField0_ & ~0x00000008); includeServiceIds_ = false; onChanged(); return this; @@ -43116,6 +42511,7 @@ public final class ContextOuterClass { */ public Builder setIncludeSubsliceIds(boolean value) { includeSubsliceIds_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -43125,6 +42521,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeSubsliceIds() { + bitField0_ = (bitField0_ & ~0x00000010); includeSubsliceIds_ = false; onChanged(); return this; @@ -43148,6 +42545,7 @@ public final class ContextOuterClass { */ public Builder setIncludeConfigRules(boolean value) { includeConfigRules_ = value; + bitField0_ |= 0x00000020; onChanged(); return this; } @@ -43157,6 +42555,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIncludeConfigRules() { + bitField0_ = (bitField0_ & ~0x00000020); includeConfigRules_ = false; onChanged(); return this; @@ -43189,7 +42588,17 @@ public final class ContextOuterClass { @java.lang.Override public SliceFilter parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new SliceFilter(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -43268,70 +42677,6 @@ public final class ContextOuterClass { return new SliceEvent(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private SliceEvent(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Event.Builder subBuilder = null; - if (event_ != null) { - subBuilder = event_.toBuilder(); - } - event_ = input.readMessage(context.ContextOuterClass.Event.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(event_); - event_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.SliceId.Builder subBuilder = null; - if (sliceId_ != null) { - subBuilder = sliceId_.toBuilder(); - } - sliceId_ = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(sliceId_); - sliceId_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_SliceEvent_descriptor; } @@ -43368,7 +42713,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - return getEvent(); + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } public static final int SLICE_ID_FIELD_NUMBER = 2; @@ -43398,7 +42743,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.SliceIdOrBuilder getSliceIdOrBuilder() { - return getSliceId(); + return sliceId_ == null ? context.ContextOuterClass.SliceId.getDefaultInstance() : sliceId_; } private byte memoizedIsInitialized = -1; @@ -43422,7 +42767,7 @@ public final class ContextOuterClass { if (sliceId_ != null) { output.writeMessage(2, getSliceId()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -43437,7 +42782,7 @@ public final class ContextOuterClass { if (sliceId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSliceId()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -43463,7 +42808,7 @@ public final class ContextOuterClass { if (!getSliceId().equals(other.getSliceId())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -43483,7 +42828,7 @@ public final class ContextOuterClass { hash = (37 * hash) + SLICE_ID_FIELD_NUMBER; hash = (53 * hash) + getSliceId().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -43577,32 +42922,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.SliceEvent.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (eventBuilder_ == null) { - event_ = null; - } else { - event_ = null; + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } - if (sliceIdBuilder_ == null) { - sliceId_ = null; - } else { - sliceId_ = null; + sliceId_ = null; + if (sliceIdBuilder_ != null) { + sliceIdBuilder_.dispose(); sliceIdBuilder_ = null; } return this; @@ -43630,48 +42967,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.SliceEvent buildPartial() { context.ContextOuterClass.SliceEvent result = new context.ContextOuterClass.SliceEvent(this); - if (eventBuilder_ == null) { - result.event_ = event_; - } else { - result.event_ = eventBuilder_.build(); - } - if (sliceIdBuilder_ == null) { - result.sliceId_ = sliceId_; - } else { - result.sliceId_ = sliceIdBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.SliceEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.sliceId_ = sliceIdBuilder_ == null ? sliceId_ : sliceIdBuilder_.build(); + } } @java.lang.Override @@ -43693,7 +43003,7 @@ public final class ContextOuterClass { if (other.hasSliceId()) { mergeSliceId(other.getSliceId()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -43705,20 +43015,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.SliceEvent parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getSliceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.SliceEvent) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Event event_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; @@ -43728,7 +43072,7 @@ public final class ContextOuterClass { * @return Whether the event field is set. */ public boolean hasEvent() { - return eventBuilder_ != null || event_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -43752,10 +43096,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } event_ = value; - onChanged(); } else { eventBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -43765,10 +43110,11 @@ public final class ContextOuterClass { public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { if (eventBuilder_ == null) { event_ = builderForValue.build(); - onChanged(); } else { eventBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -43777,15 +43123,16 @@ public final class ContextOuterClass { */ public Builder mergeEvent(context.ContextOuterClass.Event value) { if (eventBuilder_ == null) { - if (event_ != null) { - event_ = context.ContextOuterClass.Event.newBuilder(event_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); } else { event_ = value; } - onChanged(); } else { eventBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -43793,13 +43140,13 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public Builder clearEvent() { - if (eventBuilder_ == null) { - event_ = null; - onChanged(); - } else { - event_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } + onChanged(); return this; } @@ -43807,6 +43154,7 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEventFieldBuilder().getBuilder(); } @@ -43842,7 +43190,7 @@ public final class ContextOuterClass { * @return Whether the sliceId field is set. */ public boolean hasSliceId() { - return sliceIdBuilder_ != null || sliceId_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -43866,10 +43214,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } sliceId_ = value; - onChanged(); } else { sliceIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -43879,10 +43228,11 @@ public final class ContextOuterClass { public Builder setSliceId(context.ContextOuterClass.SliceId.Builder builderForValue) { if (sliceIdBuilder_ == null) { sliceId_ = builderForValue.build(); - onChanged(); } else { sliceIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -43891,15 +43241,16 @@ public final class ContextOuterClass { */ public Builder mergeSliceId(context.ContextOuterClass.SliceId value) { if (sliceIdBuilder_ == null) { - if (sliceId_ != null) { - sliceId_ = context.ContextOuterClass.SliceId.newBuilder(sliceId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && sliceId_ != null && sliceId_ != context.ContextOuterClass.SliceId.getDefaultInstance()) { + getSliceIdBuilder().mergeFrom(value); } else { sliceId_ = value; } - onChanged(); } else { sliceIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -43907,13 +43258,13 @@ public final class ContextOuterClass { * <code>.context.SliceId slice_id = 2;</code> */ public Builder clearSliceId() { - if (sliceIdBuilder_ == null) { - sliceId_ = null; - onChanged(); - } else { - sliceId_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + sliceId_ = null; + if (sliceIdBuilder_ != null) { + sliceIdBuilder_.dispose(); sliceIdBuilder_ = null; } + onChanged(); return this; } @@ -43921,6 +43272,7 @@ public final class ContextOuterClass { * <code>.context.SliceId slice_id = 2;</code> */ public context.ContextOuterClass.SliceId.Builder getSliceIdBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getSliceIdFieldBuilder().getBuilder(); } @@ -43974,7 +43326,17 @@ public final class ContextOuterClass { @java.lang.Override public SliceEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new SliceEvent(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -44040,57 +43402,6 @@ public final class ContextOuterClass { return new ConnectionId(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConnectionId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (connectionUuid_ != null) { - subBuilder = connectionUuid_.toBuilder(); - } - connectionUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(connectionUuid_); - connectionUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConnectionId_descriptor; } @@ -44127,7 +43438,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.UuidOrBuilder getConnectionUuidOrBuilder() { - return getConnectionUuid(); + return connectionUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : connectionUuid_; } private byte memoizedIsInitialized = -1; @@ -44148,7 +43459,7 @@ public final class ContextOuterClass { if (connectionUuid_ != null) { output.writeMessage(1, getConnectionUuid()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -44160,7 +43471,7 @@ public final class ContextOuterClass { if (connectionUuid_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getConnectionUuid()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -44180,7 +43491,7 @@ public final class ContextOuterClass { if (!getConnectionUuid().equals(other.getConnectionUuid())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -44196,7 +43507,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONNECTION_UUID_FIELD_NUMBER; hash = (53 * hash) + getConnectionUuid().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -44294,26 +43605,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConnectionId.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (connectionUuidBuilder_ == null) { - connectionUuid_ = null; - } else { - connectionUuid_ = null; + bitField0_ = 0; + connectionUuid_ = null; + if (connectionUuidBuilder_ != null) { + connectionUuidBuilder_.dispose(); connectionUuidBuilder_ = null; } return this; @@ -44341,43 +43645,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConnectionId buildPartial() { context.ContextOuterClass.ConnectionId result = new context.ContextOuterClass.ConnectionId(this); - if (connectionUuidBuilder_ == null) { - result.connectionUuid_ = connectionUuid_; - } else { - result.connectionUuid_ = connectionUuidBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConnectionId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.connectionUuid_ = connectionUuidBuilder_ == null ? connectionUuid_ : connectionUuidBuilder_.build(); + } } @java.lang.Override @@ -44396,7 +43675,7 @@ public final class ContextOuterClass { if (other.hasConnectionUuid()) { mergeConnectionUuid(other.getConnectionUuid()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -44408,20 +43687,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConnectionId parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getConnectionUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConnectionId) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Uuid connectionUuid_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> connectionUuidBuilder_; @@ -44431,7 +43737,7 @@ public final class ContextOuterClass { * @return Whether the connectionUuid field is set. */ public boolean hasConnectionUuid() { - return connectionUuidBuilder_ != null || connectionUuid_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -44455,10 +43761,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } connectionUuid_ = value; - onChanged(); } else { connectionUuidBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -44468,10 +43775,11 @@ public final class ContextOuterClass { public Builder setConnectionUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { if (connectionUuidBuilder_ == null) { connectionUuid_ = builderForValue.build(); - onChanged(); } else { connectionUuidBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -44480,15 +43788,16 @@ public final class ContextOuterClass { */ public Builder mergeConnectionUuid(context.ContextOuterClass.Uuid value) { if (connectionUuidBuilder_ == null) { - if (connectionUuid_ != null) { - connectionUuid_ = context.ContextOuterClass.Uuid.newBuilder(connectionUuid_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && connectionUuid_ != null && connectionUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getConnectionUuidBuilder().mergeFrom(value); } else { connectionUuid_ = value; } - onChanged(); } else { connectionUuidBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -44496,13 +43805,13 @@ public final class ContextOuterClass { * <code>.context.Uuid connection_uuid = 1;</code> */ public Builder clearConnectionUuid() { - if (connectionUuidBuilder_ == null) { - connectionUuid_ = null; - onChanged(); - } else { - connectionUuid_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + connectionUuid_ = null; + if (connectionUuidBuilder_ != null) { + connectionUuidBuilder_.dispose(); connectionUuidBuilder_ = null; } + onChanged(); return this; } @@ -44510,6 +43819,7 @@ public final class ContextOuterClass { * <code>.context.Uuid connection_uuid = 1;</code> */ public context.ContextOuterClass.Uuid.Builder getConnectionUuidBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getConnectionUuidFieldBuilder().getBuilder(); } @@ -44563,7 +43873,17 @@ public final class ContextOuterClass { @java.lang.Override public ConnectionId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConnectionId(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -44621,50 +43941,6 @@ public final class ContextOuterClass { return new ConnectionSettings_L0(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConnectionSettings_L0(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - lspSymbolicName_ = s; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConnectionSettings_L0_descriptor; } @@ -44676,7 +43952,8 @@ public final class ContextOuterClass { public static final int LSP_SYMBOLIC_NAME_FIELD_NUMBER = 1; - private volatile java.lang.Object lspSymbolicName_; + @SuppressWarnings("serial") + private volatile java.lang.Object lspSymbolicName_ = ""; /** * <code>string lsp_symbolic_name = 1;</code> @@ -44726,10 +44003,10 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getLspSymbolicNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lspSymbolicName_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, lspSymbolicName_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -44738,10 +44015,10 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!getLspSymbolicNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(lspSymbolicName_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, lspSymbolicName_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -44757,7 +44034,7 @@ public final class ContextOuterClass { context.ContextOuterClass.ConnectionSettings_L0 other = (context.ContextOuterClass.ConnectionSettings_L0) obj; if (!getLspSymbolicName().equals(other.getLspSymbolicName())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -44771,7 +44048,7 @@ public final class ContextOuterClass { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + LSP_SYMBOLIC_NAME_FIELD_NUMBER; hash = (53 * hash) + getLspSymbolicName().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -44865,22 +44142,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConnectionSettings_L0.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; lspSymbolicName_ = ""; return this; } @@ -44907,39 +44178,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConnectionSettings_L0 buildPartial() { context.ContextOuterClass.ConnectionSettings_L0 result = new context.ContextOuterClass.ConnectionSettings_L0(this); - result.lspSymbolicName_ = lspSymbolicName_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConnectionSettings_L0 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.lspSymbolicName_ = lspSymbolicName_; + } } @java.lang.Override @@ -44957,9 +44207,10 @@ public final class ContextOuterClass { return this; if (!other.getLspSymbolicName().isEmpty()) { lspSymbolicName_ = other.lspSymbolicName_; + bitField0_ |= 0x00000001; onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -44971,20 +44222,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConnectionSettings_L0 parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + lspSymbolicName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConnectionSettings_L0) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private java.lang.Object lspSymbolicName_ = ""; /** @@ -45028,6 +44306,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } lspSymbolicName_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -45038,6 +44317,7 @@ public final class ContextOuterClass { */ public Builder clearLspSymbolicName() { lspSymbolicName_ = getDefaultInstance().getLspSymbolicName(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } @@ -45053,6 +44333,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); lspSymbolicName_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -45084,7 +44365,17 @@ public final class ContextOuterClass { @java.lang.Override public ConnectionSettings_L0 parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConnectionSettings_L0(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -45179,76 +44470,6 @@ public final class ContextOuterClass { return new ConnectionSettings_L2(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConnectionSettings_L2(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - srcMacAddress_ = s; - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - dstMacAddress_ = s; - break; - } - case 24: - { - etherType_ = input.readUInt32(); - break; - } - case 32: - { - vlanId_ = input.readUInt32(); - break; - } - case 40: - { - mplsLabel_ = input.readUInt32(); - break; - } - case 48: - { - mplsTrafficClass_ = input.readUInt32(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConnectionSettings_L2_descriptor; } @@ -45260,7 +44481,8 @@ public final class ContextOuterClass { public static final int SRC_MAC_ADDRESS_FIELD_NUMBER = 1; - private volatile java.lang.Object srcMacAddress_; + @SuppressWarnings("serial") + private volatile java.lang.Object srcMacAddress_ = ""; /** * <code>string src_mac_address = 1;</code> @@ -45297,7 +44519,8 @@ public final class ContextOuterClass { public static final int DST_MAC_ADDRESS_FIELD_NUMBER = 2; - private volatile java.lang.Object dstMacAddress_; + @SuppressWarnings("serial") + private volatile java.lang.Object dstMacAddress_ = ""; /** * <code>string dst_mac_address = 2;</code> @@ -45334,7 +44557,7 @@ public final class ContextOuterClass { public static final int ETHER_TYPE_FIELD_NUMBER = 3; - private int etherType_; + private int etherType_ = 0; /** * <code>uint32 ether_type = 3;</code> @@ -45347,7 +44570,7 @@ public final class ContextOuterClass { public static final int VLAN_ID_FIELD_NUMBER = 4; - private int vlanId_; + private int vlanId_ = 0; /** * <code>uint32 vlan_id = 4;</code> @@ -45360,7 +44583,7 @@ public final class ContextOuterClass { public static final int MPLS_LABEL_FIELD_NUMBER = 5; - private int mplsLabel_; + private int mplsLabel_ = 0; /** * <code>uint32 mpls_label = 5;</code> @@ -45373,7 +44596,7 @@ public final class ContextOuterClass { public static final int MPLS_TRAFFIC_CLASS_FIELD_NUMBER = 6; - private int mplsTrafficClass_; + private int mplsTrafficClass_ = 0; /** * <code>uint32 mpls_traffic_class = 6;</code> @@ -45399,10 +44622,10 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getSrcMacAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcMacAddress_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, srcMacAddress_); } - if (!getDstMacAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstMacAddress_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, dstMacAddress_); } if (etherType_ != 0) { @@ -45417,7 +44640,7 @@ public final class ContextOuterClass { if (mplsTrafficClass_ != 0) { output.writeUInt32(6, mplsTrafficClass_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -45426,10 +44649,10 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!getSrcMacAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcMacAddress_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, srcMacAddress_); } - if (!getDstMacAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstMacAddress_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, dstMacAddress_); } if (etherType_ != 0) { @@ -45444,7 +44667,7 @@ public final class ContextOuterClass { if (mplsTrafficClass_ != 0) { size += com.google.protobuf.CodedOutputStream.computeUInt32Size(6, mplsTrafficClass_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -45470,7 +44693,7 @@ public final class ContextOuterClass { return false; if (getMplsTrafficClass() != other.getMplsTrafficClass()) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -45494,7 +44717,7 @@ public final class ContextOuterClass { hash = (53 * hash) + getMplsLabel(); hash = (37 * hash) + MPLS_TRAFFIC_CLASS_FIELD_NUMBER; hash = (53 * hash) + getMplsTrafficClass(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -45588,22 +44811,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConnectionSettings_L2.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; srcMacAddress_ = ""; dstMacAddress_ = ""; etherType_ = 0; @@ -45635,44 +44852,33 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConnectionSettings_L2 buildPartial() { context.ContextOuterClass.ConnectionSettings_L2 result = new context.ContextOuterClass.ConnectionSettings_L2(this); - result.srcMacAddress_ = srcMacAddress_; - result.dstMacAddress_ = dstMacAddress_; - result.etherType_ = etherType_; - result.vlanId_ = vlanId_; - result.mplsLabel_ = mplsLabel_; - result.mplsTrafficClass_ = mplsTrafficClass_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConnectionSettings_L2 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.srcMacAddress_ = srcMacAddress_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.dstMacAddress_ = dstMacAddress_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.etherType_ = etherType_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.vlanId_ = vlanId_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.mplsLabel_ = mplsLabel_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.mplsTrafficClass_ = mplsTrafficClass_; + } } @java.lang.Override @@ -45690,10 +44896,12 @@ public final class ContextOuterClass { return this; if (!other.getSrcMacAddress().isEmpty()) { srcMacAddress_ = other.srcMacAddress_; + bitField0_ |= 0x00000001; onChanged(); } if (!other.getDstMacAddress().isEmpty()) { dstMacAddress_ = other.dstMacAddress_; + bitField0_ |= 0x00000002; onChanged(); } if (other.getEtherType() != 0) { @@ -45708,7 +44916,7 @@ public final class ContextOuterClass { if (other.getMplsTrafficClass() != 0) { setMplsTrafficClass(other.getMplsTrafficClass()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -45720,20 +44928,82 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConnectionSettings_L2 parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + srcMacAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + dstMacAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 24: + { + etherType_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + vlanId_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + case 40: + { + mplsLabel_ = input.readUInt32(); + bitField0_ |= 0x00000010; + break; + } + // case 40 + case 48: + { + mplsTrafficClass_ = input.readUInt32(); + bitField0_ |= 0x00000020; + break; + } + // case 48 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConnectionSettings_L2) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private java.lang.Object srcMacAddress_ = ""; /** @@ -45777,6 +45047,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } srcMacAddress_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -45787,6 +45058,7 @@ public final class ContextOuterClass { */ public Builder clearSrcMacAddress() { srcMacAddress_ = getDefaultInstance().getSrcMacAddress(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } @@ -45802,6 +45074,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); srcMacAddress_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -45849,6 +45122,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } dstMacAddress_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -45859,6 +45133,7 @@ public final class ContextOuterClass { */ public Builder clearDstMacAddress() { dstMacAddress_ = getDefaultInstance().getDstMacAddress(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -45874,6 +45149,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); dstMacAddress_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -45896,6 +45172,7 @@ public final class ContextOuterClass { */ public Builder setEtherType(int value) { etherType_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -45905,6 +45182,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearEtherType() { + bitField0_ = (bitField0_ & ~0x00000004); etherType_ = 0; onChanged(); return this; @@ -45928,6 +45206,7 @@ public final class ContextOuterClass { */ public Builder setVlanId(int value) { vlanId_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -45937,6 +45216,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearVlanId() { + bitField0_ = (bitField0_ & ~0x00000008); vlanId_ = 0; onChanged(); return this; @@ -45960,6 +45240,7 @@ public final class ContextOuterClass { */ public Builder setMplsLabel(int value) { mplsLabel_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -45969,6 +45250,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearMplsLabel() { + bitField0_ = (bitField0_ & ~0x00000010); mplsLabel_ = 0; onChanged(); return this; @@ -45992,6 +45274,7 @@ public final class ContextOuterClass { */ public Builder setMplsTrafficClass(int value) { mplsTrafficClass_ = value; + bitField0_ |= 0x00000020; onChanged(); return this; } @@ -46001,6 +45284,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearMplsTrafficClass() { + bitField0_ = (bitField0_ & ~0x00000020); mplsTrafficClass_ = 0; onChanged(); return this; @@ -46033,7 +45317,17 @@ public final class ContextOuterClass { @java.lang.Override public ConnectionSettings_L2 parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConnectionSettings_L2(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -46122,71 +45416,6 @@ public final class ContextOuterClass { return new ConnectionSettings_L3(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConnectionSettings_L3(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - srcIpAddress_ = s; - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - dstIpAddress_ = s; - break; - } - case 24: - { - dscp_ = input.readUInt32(); - break; - } - case 32: - { - protocol_ = input.readUInt32(); - break; - } - case 40: - { - ttl_ = input.readUInt32(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConnectionSettings_L3_descriptor; } @@ -46198,7 +45427,8 @@ public final class ContextOuterClass { public static final int SRC_IP_ADDRESS_FIELD_NUMBER = 1; - private volatile java.lang.Object srcIpAddress_; + @SuppressWarnings("serial") + private volatile java.lang.Object srcIpAddress_ = ""; /** * <code>string src_ip_address = 1;</code> @@ -46235,7 +45465,8 @@ public final class ContextOuterClass { public static final int DST_IP_ADDRESS_FIELD_NUMBER = 2; - private volatile java.lang.Object dstIpAddress_; + @SuppressWarnings("serial") + private volatile java.lang.Object dstIpAddress_ = ""; /** * <code>string dst_ip_address = 2;</code> @@ -46272,7 +45503,7 @@ public final class ContextOuterClass { public static final int DSCP_FIELD_NUMBER = 3; - private int dscp_; + private int dscp_ = 0; /** * <code>uint32 dscp = 3;</code> @@ -46285,7 +45516,7 @@ public final class ContextOuterClass { public static final int PROTOCOL_FIELD_NUMBER = 4; - private int protocol_; + private int protocol_ = 0; /** * <code>uint32 protocol = 4;</code> @@ -46298,7 +45529,7 @@ public final class ContextOuterClass { public static final int TTL_FIELD_NUMBER = 5; - private int ttl_; + private int ttl_ = 0; /** * <code>uint32 ttl = 5;</code> @@ -46324,10 +45555,10 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getSrcIpAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcIpAddress_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, srcIpAddress_); } - if (!getDstIpAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstIpAddress_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, dstIpAddress_); } if (dscp_ != 0) { @@ -46339,7 +45570,7 @@ public final class ContextOuterClass { if (ttl_ != 0) { output.writeUInt32(5, ttl_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -46348,10 +45579,10 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!getSrcIpAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcIpAddress_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, srcIpAddress_); } - if (!getDstIpAddressBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstIpAddress_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, dstIpAddress_); } if (dscp_ != 0) { @@ -46363,7 +45594,7 @@ public final class ContextOuterClass { if (ttl_ != 0) { size += com.google.protobuf.CodedOutputStream.computeUInt32Size(5, ttl_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -46387,7 +45618,7 @@ public final class ContextOuterClass { return false; if (getTtl() != other.getTtl()) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -46409,7 +45640,7 @@ public final class ContextOuterClass { hash = (53 * hash) + getProtocol(); hash = (37 * hash) + TTL_FIELD_NUMBER; hash = (53 * hash) + getTtl(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -46503,22 +45734,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConnectionSettings_L3.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; srcIpAddress_ = ""; dstIpAddress_ = ""; dscp_ = 0; @@ -46549,43 +45774,30 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConnectionSettings_L3 buildPartial() { context.ContextOuterClass.ConnectionSettings_L3 result = new context.ContextOuterClass.ConnectionSettings_L3(this); - result.srcIpAddress_ = srcIpAddress_; - result.dstIpAddress_ = dstIpAddress_; - result.dscp_ = dscp_; - result.protocol_ = protocol_; - result.ttl_ = ttl_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConnectionSettings_L3 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.srcIpAddress_ = srcIpAddress_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.dstIpAddress_ = dstIpAddress_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.dscp_ = dscp_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.protocol_ = protocol_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.ttl_ = ttl_; + } } @java.lang.Override @@ -46603,10 +45815,12 @@ public final class ContextOuterClass { return this; if (!other.getSrcIpAddress().isEmpty()) { srcIpAddress_ = other.srcIpAddress_; + bitField0_ |= 0x00000001; onChanged(); } if (!other.getDstIpAddress().isEmpty()) { dstIpAddress_ = other.dstIpAddress_; + bitField0_ |= 0x00000002; onChanged(); } if (other.getDscp() != 0) { @@ -46618,7 +45832,7 @@ public final class ContextOuterClass { if (other.getTtl() != 0) { setTtl(other.getTtl()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -46630,20 +45844,75 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConnectionSettings_L3 parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + srcIpAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + dstIpAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 24: + { + dscp_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + protocol_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + case 40: + { + ttl_ = input.readUInt32(); + bitField0_ |= 0x00000010; + break; + } + // case 40 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConnectionSettings_L3) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private java.lang.Object srcIpAddress_ = ""; /** @@ -46687,6 +45956,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } srcIpAddress_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -46697,6 +45967,7 @@ public final class ContextOuterClass { */ public Builder clearSrcIpAddress() { srcIpAddress_ = getDefaultInstance().getSrcIpAddress(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } @@ -46712,6 +45983,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); srcIpAddress_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -46759,6 +46031,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } dstIpAddress_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -46769,6 +46042,7 @@ public final class ContextOuterClass { */ public Builder clearDstIpAddress() { dstIpAddress_ = getDefaultInstance().getDstIpAddress(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -46784,6 +46058,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); dstIpAddress_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -46806,6 +46081,7 @@ public final class ContextOuterClass { */ public Builder setDscp(int value) { dscp_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -46815,6 +46091,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearDscp() { + bitField0_ = (bitField0_ & ~0x00000004); dscp_ = 0; onChanged(); return this; @@ -46838,6 +46115,7 @@ public final class ContextOuterClass { */ public Builder setProtocol(int value) { protocol_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -46847,6 +46125,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearProtocol() { + bitField0_ = (bitField0_ & ~0x00000008); protocol_ = 0; onChanged(); return this; @@ -46870,6 +46149,7 @@ public final class ContextOuterClass { */ public Builder setTtl(int value) { ttl_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } @@ -46879,6 +46159,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearTtl() { + bitField0_ = (bitField0_ & ~0x00000010); ttl_ = 0; onChanged(); return this; @@ -46911,7 +46192,17 @@ public final class ContextOuterClass { @java.lang.Override public ConnectionSettings_L3 parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConnectionSettings_L3(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -46980,64 +46271,6 @@ public final class ContextOuterClass { return new ConnectionSettings_L4(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConnectionSettings_L4(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - srcPort_ = input.readUInt32(); - break; - } - case 16: - { - dstPort_ = input.readUInt32(); - break; - } - case 24: - { - tcpFlags_ = input.readUInt32(); - break; - } - case 32: - { - ttl_ = input.readUInt32(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConnectionSettings_L4_descriptor; } @@ -47049,7 +46282,7 @@ public final class ContextOuterClass { public static final int SRC_PORT_FIELD_NUMBER = 1; - private int srcPort_; + private int srcPort_ = 0; /** * <code>uint32 src_port = 1;</code> @@ -47062,7 +46295,7 @@ public final class ContextOuterClass { public static final int DST_PORT_FIELD_NUMBER = 2; - private int dstPort_; + private int dstPort_ = 0; /** * <code>uint32 dst_port = 2;</code> @@ -47075,7 +46308,7 @@ public final class ContextOuterClass { public static final int TCP_FLAGS_FIELD_NUMBER = 3; - private int tcpFlags_; + private int tcpFlags_ = 0; /** * <code>uint32 tcp_flags = 3;</code> @@ -47088,7 +46321,7 @@ public final class ContextOuterClass { public static final int TTL_FIELD_NUMBER = 4; - private int ttl_; + private int ttl_ = 0; /** * <code>uint32 ttl = 4;</code> @@ -47126,7 +46359,7 @@ public final class ContextOuterClass { if (ttl_ != 0) { output.writeUInt32(4, ttl_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -47147,7 +46380,7 @@ public final class ContextOuterClass { if (ttl_ != 0) { size += com.google.protobuf.CodedOutputStream.computeUInt32Size(4, ttl_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -47169,7 +46402,7 @@ public final class ContextOuterClass { return false; if (getTtl() != other.getTtl()) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -47189,7 +46422,7 @@ public final class ContextOuterClass { hash = (53 * hash) + getTcpFlags(); hash = (37 * hash) + TTL_FIELD_NUMBER; hash = (53 * hash) + getTtl(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -47283,22 +46516,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConnectionSettings_L4.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; srcPort_ = 0; dstPort_ = 0; tcpFlags_ = 0; @@ -47328,42 +46555,27 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConnectionSettings_L4 buildPartial() { context.ContextOuterClass.ConnectionSettings_L4 result = new context.ContextOuterClass.ConnectionSettings_L4(this); - result.srcPort_ = srcPort_; - result.dstPort_ = dstPort_; - result.tcpFlags_ = tcpFlags_; - result.ttl_ = ttl_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConnectionSettings_L4 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.srcPort_ = srcPort_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.dstPort_ = dstPort_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.tcpFlags_ = tcpFlags_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.ttl_ = ttl_; + } } @java.lang.Override @@ -47391,7 +46603,7 @@ public final class ContextOuterClass { if (other.getTtl() != 0) { setTtl(other.getTtl()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -47403,20 +46615,68 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConnectionSettings_L4 parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + srcPort_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 16: + { + dstPort_ = input.readUInt32(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 24: + { + tcpFlags_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + case 32: + { + ttl_ = input.readUInt32(); + bitField0_ |= 0x00000008; + break; + } + // case 32 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConnectionSettings_L4) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private int srcPort_; /** @@ -47435,6 +46695,7 @@ public final class ContextOuterClass { */ public Builder setSrcPort(int value) { srcPort_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -47444,6 +46705,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearSrcPort() { + bitField0_ = (bitField0_ & ~0x00000001); srcPort_ = 0; onChanged(); return this; @@ -47467,6 +46729,7 @@ public final class ContextOuterClass { */ public Builder setDstPort(int value) { dstPort_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -47476,6 +46739,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearDstPort() { + bitField0_ = (bitField0_ & ~0x00000002); dstPort_ = 0; onChanged(); return this; @@ -47499,6 +46763,7 @@ public final class ContextOuterClass { */ public Builder setTcpFlags(int value) { tcpFlags_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -47508,6 +46773,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearTcpFlags() { + bitField0_ = (bitField0_ & ~0x00000004); tcpFlags_ = 0; onChanged(); return this; @@ -47531,6 +46797,7 @@ public final class ContextOuterClass { */ public Builder setTtl(int value) { ttl_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -47540,6 +46807,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearTtl() { + bitField0_ = (bitField0_ & ~0x00000008); ttl_ = 0; onChanged(); return this; @@ -47572,7 +46840,17 @@ public final class ContextOuterClass { @java.lang.Override public ConnectionSettings_L4 parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConnectionSettings_L4(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -47685,96 +46963,6 @@ public final class ContextOuterClass { return new ConnectionSettings(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConnectionSettings(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.ConnectionSettings_L0.Builder subBuilder = null; - if (l0_ != null) { - subBuilder = l0_.toBuilder(); - } - l0_ = input.readMessage(context.ContextOuterClass.ConnectionSettings_L0.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(l0_); - l0_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.ConnectionSettings_L2.Builder subBuilder = null; - if (l2_ != null) { - subBuilder = l2_.toBuilder(); - } - l2_ = input.readMessage(context.ContextOuterClass.ConnectionSettings_L2.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(l2_); - l2_ = subBuilder.buildPartial(); - } - break; - } - case 26: - { - context.ContextOuterClass.ConnectionSettings_L3.Builder subBuilder = null; - if (l3_ != null) { - subBuilder = l3_.toBuilder(); - } - l3_ = input.readMessage(context.ContextOuterClass.ConnectionSettings_L3.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(l3_); - l3_ = subBuilder.buildPartial(); - } - break; - } - case 34: - { - context.ContextOuterClass.ConnectionSettings_L4.Builder subBuilder = null; - if (l4_ != null) { - subBuilder = l4_.toBuilder(); - } - l4_ = input.readMessage(context.ContextOuterClass.ConnectionSettings_L4.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(l4_); - l4_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConnectionSettings_descriptor; } @@ -47811,7 +46999,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ConnectionSettings_L0OrBuilder getL0OrBuilder() { - return getL0(); + return l0_ == null ? context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance() : l0_; } public static final int L2_FIELD_NUMBER = 2; @@ -47841,7 +47029,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ConnectionSettings_L2OrBuilder getL2OrBuilder() { - return getL2(); + return l2_ == null ? context.ContextOuterClass.ConnectionSettings_L2.getDefaultInstance() : l2_; } public static final int L3_FIELD_NUMBER = 3; @@ -47871,7 +47059,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ConnectionSettings_L3OrBuilder getL3OrBuilder() { - return getL3(); + return l3_ == null ? context.ContextOuterClass.ConnectionSettings_L3.getDefaultInstance() : l3_; } public static final int L4_FIELD_NUMBER = 4; @@ -47901,7 +47089,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ConnectionSettings_L4OrBuilder getL4OrBuilder() { - return getL4(); + return l4_ == null ? context.ContextOuterClass.ConnectionSettings_L4.getDefaultInstance() : l4_; } private byte memoizedIsInitialized = -1; @@ -47931,7 +47119,7 @@ public final class ContextOuterClass { if (l4_ != null) { output.writeMessage(4, getL4()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -47952,7 +47140,7 @@ public final class ContextOuterClass { if (l4_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getL4()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -47990,7 +47178,7 @@ public final class ContextOuterClass { if (!getL4().equals(other.getL4())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -48018,7 +47206,7 @@ public final class ContextOuterClass { hash = (37 * hash) + L4_FIELD_NUMBER; hash = (53 * hash) + getL4().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -48112,44 +47300,34 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConnectionSettings.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (l0Builder_ == null) { - l0_ = null; - } else { - l0_ = null; + bitField0_ = 0; + l0_ = null; + if (l0Builder_ != null) { + l0Builder_.dispose(); l0Builder_ = null; } - if (l2Builder_ == null) { - l2_ = null; - } else { - l2_ = null; + l2_ = null; + if (l2Builder_ != null) { + l2Builder_.dispose(); l2Builder_ = null; } - if (l3Builder_ == null) { - l3_ = null; - } else { - l3_ = null; + l3_ = null; + if (l3Builder_ != null) { + l3Builder_.dispose(); l3Builder_ = null; } - if (l4Builder_ == null) { - l4_ = null; - } else { - l4_ = null; + l4_ = null; + if (l4Builder_ != null) { + l4Builder_.dispose(); l4Builder_ = null; } return this; @@ -48177,58 +47355,27 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConnectionSettings buildPartial() { context.ContextOuterClass.ConnectionSettings result = new context.ContextOuterClass.ConnectionSettings(this); - if (l0Builder_ == null) { - result.l0_ = l0_; - } else { - result.l0_ = l0Builder_.build(); - } - if (l2Builder_ == null) { - result.l2_ = l2_; - } else { - result.l2_ = l2Builder_.build(); - } - if (l3Builder_ == null) { - result.l3_ = l3_; - } else { - result.l3_ = l3Builder_.build(); - } - if (l4Builder_ == null) { - result.l4_ = l4_; - } else { - result.l4_ = l4Builder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConnectionSettings result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.l0_ = l0Builder_ == null ? l0_ : l0Builder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.l2_ = l2Builder_ == null ? l2_ : l2Builder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.l3_ = l3Builder_ == null ? l3_ : l3Builder_.build(); + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.l4_ = l4Builder_ == null ? l4_ : l4Builder_.build(); + } } @java.lang.Override @@ -48256,7 +47403,7 @@ public final class ContextOuterClass { if (other.hasL4()) { mergeL4(other.getL4()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -48268,20 +47415,68 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConnectionSettings parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getL0FieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getL2FieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getL3FieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + input.readMessage(getL4FieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000008; + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConnectionSettings) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.ConnectionSettings_L0 l0_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ConnectionSettings_L0, context.ContextOuterClass.ConnectionSettings_L0.Builder, context.ContextOuterClass.ConnectionSettings_L0OrBuilder> l0Builder_; @@ -48291,7 +47486,7 @@ public final class ContextOuterClass { * @return Whether the l0 field is set. */ public boolean hasL0() { - return l0Builder_ != null || l0_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -48315,10 +47510,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } l0_ = value; - onChanged(); } else { l0Builder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -48328,10 +47524,11 @@ public final class ContextOuterClass { public Builder setL0(context.ContextOuterClass.ConnectionSettings_L0.Builder builderForValue) { if (l0Builder_ == null) { l0_ = builderForValue.build(); - onChanged(); } else { l0Builder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -48340,15 +47537,16 @@ public final class ContextOuterClass { */ public Builder mergeL0(context.ContextOuterClass.ConnectionSettings_L0 value) { if (l0Builder_ == null) { - if (l0_ != null) { - l0_ = context.ContextOuterClass.ConnectionSettings_L0.newBuilder(l0_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && l0_ != null && l0_ != context.ContextOuterClass.ConnectionSettings_L0.getDefaultInstance()) { + getL0Builder().mergeFrom(value); } else { l0_ = value; } - onChanged(); } else { l0Builder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -48356,13 +47554,13 @@ public final class ContextOuterClass { * <code>.context.ConnectionSettings_L0 l0 = 1;</code> */ public Builder clearL0() { - if (l0Builder_ == null) { - l0_ = null; - onChanged(); - } else { - l0_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + l0_ = null; + if (l0Builder_ != null) { + l0Builder_.dispose(); l0Builder_ = null; } + onChanged(); return this; } @@ -48370,6 +47568,7 @@ public final class ContextOuterClass { * <code>.context.ConnectionSettings_L0 l0 = 1;</code> */ public context.ContextOuterClass.ConnectionSettings_L0.Builder getL0Builder() { + bitField0_ |= 0x00000001; onChanged(); return getL0FieldBuilder().getBuilder(); } @@ -48405,7 +47604,7 @@ public final class ContextOuterClass { * @return Whether the l2 field is set. */ public boolean hasL2() { - return l2Builder_ != null || l2_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -48429,10 +47628,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } l2_ = value; - onChanged(); } else { l2Builder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -48442,10 +47642,11 @@ public final class ContextOuterClass { public Builder setL2(context.ContextOuterClass.ConnectionSettings_L2.Builder builderForValue) { if (l2Builder_ == null) { l2_ = builderForValue.build(); - onChanged(); } else { l2Builder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -48454,15 +47655,16 @@ public final class ContextOuterClass { */ public Builder mergeL2(context.ContextOuterClass.ConnectionSettings_L2 value) { if (l2Builder_ == null) { - if (l2_ != null) { - l2_ = context.ContextOuterClass.ConnectionSettings_L2.newBuilder(l2_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && l2_ != null && l2_ != context.ContextOuterClass.ConnectionSettings_L2.getDefaultInstance()) { + getL2Builder().mergeFrom(value); } else { l2_ = value; } - onChanged(); } else { l2Builder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -48470,13 +47672,13 @@ public final class ContextOuterClass { * <code>.context.ConnectionSettings_L2 l2 = 2;</code> */ public Builder clearL2() { - if (l2Builder_ == null) { - l2_ = null; - onChanged(); - } else { - l2_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + l2_ = null; + if (l2Builder_ != null) { + l2Builder_.dispose(); l2Builder_ = null; } + onChanged(); return this; } @@ -48484,6 +47686,7 @@ public final class ContextOuterClass { * <code>.context.ConnectionSettings_L2 l2 = 2;</code> */ public context.ContextOuterClass.ConnectionSettings_L2.Builder getL2Builder() { + bitField0_ |= 0x00000002; onChanged(); return getL2FieldBuilder().getBuilder(); } @@ -48519,7 +47722,7 @@ public final class ContextOuterClass { * @return Whether the l3 field is set. */ public boolean hasL3() { - return l3Builder_ != null || l3_ != null; + return ((bitField0_ & 0x00000004) != 0); } /** @@ -48543,10 +47746,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } l3_ = value; - onChanged(); } else { l3Builder_.setMessage(value); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -48556,10 +47760,11 @@ public final class ContextOuterClass { public Builder setL3(context.ContextOuterClass.ConnectionSettings_L3.Builder builderForValue) { if (l3Builder_ == null) { l3_ = builderForValue.build(); - onChanged(); } else { l3Builder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -48568,15 +47773,16 @@ public final class ContextOuterClass { */ public Builder mergeL3(context.ContextOuterClass.ConnectionSettings_L3 value) { if (l3Builder_ == null) { - if (l3_ != null) { - l3_ = context.ContextOuterClass.ConnectionSettings_L3.newBuilder(l3_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000004) != 0) && l3_ != null && l3_ != context.ContextOuterClass.ConnectionSettings_L3.getDefaultInstance()) { + getL3Builder().mergeFrom(value); } else { l3_ = value; } - onChanged(); } else { l3Builder_.mergeFrom(value); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -48584,13 +47790,13 @@ public final class ContextOuterClass { * <code>.context.ConnectionSettings_L3 l3 = 3;</code> */ public Builder clearL3() { - if (l3Builder_ == null) { - l3_ = null; - onChanged(); - } else { - l3_ = null; + bitField0_ = (bitField0_ & ~0x00000004); + l3_ = null; + if (l3Builder_ != null) { + l3Builder_.dispose(); l3Builder_ = null; } + onChanged(); return this; } @@ -48598,6 +47804,7 @@ public final class ContextOuterClass { * <code>.context.ConnectionSettings_L3 l3 = 3;</code> */ public context.ContextOuterClass.ConnectionSettings_L3.Builder getL3Builder() { + bitField0_ |= 0x00000004; onChanged(); return getL3FieldBuilder().getBuilder(); } @@ -48633,7 +47840,7 @@ public final class ContextOuterClass { * @return Whether the l4 field is set. */ public boolean hasL4() { - return l4Builder_ != null || l4_ != null; + return ((bitField0_ & 0x00000008) != 0); } /** @@ -48657,10 +47864,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } l4_ = value; - onChanged(); } else { l4Builder_.setMessage(value); } + bitField0_ |= 0x00000008; + onChanged(); return this; } @@ -48670,10 +47878,11 @@ public final class ContextOuterClass { public Builder setL4(context.ContextOuterClass.ConnectionSettings_L4.Builder builderForValue) { if (l4Builder_ == null) { l4_ = builderForValue.build(); - onChanged(); } else { l4Builder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000008; + onChanged(); return this; } @@ -48682,15 +47891,16 @@ public final class ContextOuterClass { */ public Builder mergeL4(context.ContextOuterClass.ConnectionSettings_L4 value) { if (l4Builder_ == null) { - if (l4_ != null) { - l4_ = context.ContextOuterClass.ConnectionSettings_L4.newBuilder(l4_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000008) != 0) && l4_ != null && l4_ != context.ContextOuterClass.ConnectionSettings_L4.getDefaultInstance()) { + getL4Builder().mergeFrom(value); } else { l4_ = value; } - onChanged(); } else { l4Builder_.mergeFrom(value); } + bitField0_ |= 0x00000008; + onChanged(); return this; } @@ -48698,13 +47908,13 @@ public final class ContextOuterClass { * <code>.context.ConnectionSettings_L4 l4 = 4;</code> */ public Builder clearL4() { - if (l4Builder_ == null) { - l4_ = null; - onChanged(); - } else { - l4_ = null; + bitField0_ = (bitField0_ & ~0x00000008); + l4_ = null; + if (l4Builder_ != null) { + l4Builder_.dispose(); l4Builder_ = null; } + onChanged(); return this; } @@ -48712,6 +47922,7 @@ public final class ContextOuterClass { * <code>.context.ConnectionSettings_L4 l4 = 4;</code> */ public context.ContextOuterClass.ConnectionSettings_L4.Builder getL4Builder() { + bitField0_ |= 0x00000008; onChanged(); return getL4FieldBuilder().getBuilder(); } @@ -48765,7 +47976,17 @@ public final class ContextOuterClass { @java.lang.Override public ConnectionSettings parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConnectionSettings(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -48913,108 +48134,6 @@ public final class ContextOuterClass { return new Connection(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Connection(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.ConnectionId.Builder subBuilder = null; - if (connectionId_ != null) { - subBuilder = connectionId_.toBuilder(); - } - connectionId_ = input.readMessage(context.ContextOuterClass.ConnectionId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(connectionId_); - connectionId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.ServiceId.Builder subBuilder = null; - if (serviceId_ != null) { - subBuilder = serviceId_.toBuilder(); - } - serviceId_ = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(serviceId_); - serviceId_ = subBuilder.buildPartial(); - } - break; - } - case 26: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - pathHopsEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(); - mutable_bitField0_ |= 0x00000001; - } - pathHopsEndpointIds_.add(input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry)); - break; - } - case 34: - { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - subServiceIds_ = new java.util.ArrayList<context.ContextOuterClass.ServiceId>(); - mutable_bitField0_ |= 0x00000002; - } - subServiceIds_.add(input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry)); - break; - } - case 42: - { - context.ContextOuterClass.ConnectionSettings.Builder subBuilder = null; - if (settings_ != null) { - subBuilder = settings_.toBuilder(); - } - settings_ = input.readMessage(context.ContextOuterClass.ConnectionSettings.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(settings_); - settings_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - pathHopsEndpointIds_ = java.util.Collections.unmodifiableList(pathHopsEndpointIds_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - subServiceIds_ = java.util.Collections.unmodifiableList(subServiceIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Connection_descriptor; } @@ -49051,7 +48170,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder() { - return getConnectionId(); + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; } public static final int SERVICE_ID_FIELD_NUMBER = 2; @@ -49081,11 +48200,12 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { - return getServiceId(); + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } public static final int PATH_HOPS_ENDPOINT_IDS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.EndPointId> pathHopsEndpointIds_; /** @@ -49130,6 +48250,7 @@ public final class ContextOuterClass { public static final int SUB_SERVICE_IDS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.ServiceId> subServiceIds_; /** @@ -49199,7 +48320,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ConnectionSettingsOrBuilder getSettingsOrBuilder() { - return getSettings(); + return settings_ == null ? context.ContextOuterClass.ConnectionSettings.getDefaultInstance() : settings_; } private byte memoizedIsInitialized = -1; @@ -49232,7 +48353,7 @@ public final class ContextOuterClass { if (settings_ != null) { output.writeMessage(5, getSettings()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -49256,7 +48377,7 @@ public final class ContextOuterClass { if (settings_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSettings()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -49292,7 +48413,7 @@ public final class ContextOuterClass { if (!getSettings().equals(other.getSettings())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -49324,7 +48445,7 @@ public final class ContextOuterClass { hash = (37 * hash) + SETTINGS_FIELD_NUMBER; hash = (53 * hash) + getSettings().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -49418,52 +48539,43 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Connection.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getPathHopsEndpointIdsFieldBuilder(); - getSubServiceIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); - if (connectionIdBuilder_ == null) { - connectionId_ = null; - } else { - connectionId_ = null; + bitField0_ = 0; + connectionId_ = null; + if (connectionIdBuilder_ != null) { + connectionIdBuilder_.dispose(); connectionIdBuilder_ = null; } - if (serviceIdBuilder_ == null) { - serviceId_ = null; - } else { - serviceId_ = null; + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); serviceIdBuilder_ = null; } if (pathHopsEndpointIdsBuilder_ == null) { pathHopsEndpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + pathHopsEndpointIds_ = null; pathHopsEndpointIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000004); if (subServiceIdsBuilder_ == null) { subServiceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); } else { + subServiceIds_ = null; subServiceIdsBuilder_.clear(); } - if (settingsBuilder_ == null) { - settings_ = null; - } else { - settings_ = null; + bitField0_ = (bitField0_ & ~0x00000008); + settings_ = null; + if (settingsBuilder_ != null) { + settingsBuilder_.dispose(); settingsBuilder_ = null; } return this; @@ -49491,72 +48603,46 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Connection buildPartial() { context.ContextOuterClass.Connection result = new context.ContextOuterClass.Connection(this); - int from_bitField0_ = bitField0_; - if (connectionIdBuilder_ == null) { - result.connectionId_ = connectionId_; - } else { - result.connectionId_ = connectionIdBuilder_.build(); - } - if (serviceIdBuilder_ == null) { - result.serviceId_ = serviceId_; - } else { - result.serviceId_ = serviceIdBuilder_.build(); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Connection result) { if (pathHopsEndpointIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000004) != 0)) { pathHopsEndpointIds_ = java.util.Collections.unmodifiableList(pathHopsEndpointIds_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); } result.pathHopsEndpointIds_ = pathHopsEndpointIds_; } else { result.pathHopsEndpointIds_ = pathHopsEndpointIdsBuilder_.build(); } if (subServiceIdsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { + if (((bitField0_ & 0x00000008) != 0)) { subServiceIds_ = java.util.Collections.unmodifiableList(subServiceIds_); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); } result.subServiceIds_ = subServiceIds_; } else { result.subServiceIds_ = subServiceIdsBuilder_.build(); } - if (settingsBuilder_ == null) { - result.settings_ = settings_; - } else { - result.settings_ = settingsBuilder_.build(); - } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); } - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Connection result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.connectionId_ = connectionIdBuilder_ == null ? connectionId_ : connectionIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.serviceId_ = serviceIdBuilder_ == null ? serviceId_ : serviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.settings_ = settingsBuilder_ == null ? settings_ : settingsBuilder_.build(); + } } @java.lang.Override @@ -49582,7 +48668,7 @@ public final class ContextOuterClass { if (!other.pathHopsEndpointIds_.isEmpty()) { if (pathHopsEndpointIds_.isEmpty()) { pathHopsEndpointIds_ = other.pathHopsEndpointIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); } else { ensurePathHopsEndpointIdsIsMutable(); pathHopsEndpointIds_.addAll(other.pathHopsEndpointIds_); @@ -49595,7 +48681,7 @@ public final class ContextOuterClass { pathHopsEndpointIdsBuilder_.dispose(); pathHopsEndpointIdsBuilder_ = null; pathHopsEndpointIds_ = other.pathHopsEndpointIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); pathHopsEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getPathHopsEndpointIdsFieldBuilder() : null; } else { pathHopsEndpointIdsBuilder_.addAllMessages(other.pathHopsEndpointIds_); @@ -49606,7 +48692,7 @@ public final class ContextOuterClass { if (!other.subServiceIds_.isEmpty()) { if (subServiceIds_.isEmpty()) { subServiceIds_ = other.subServiceIds_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensureSubServiceIdsIsMutable(); subServiceIds_.addAll(other.subServiceIds_); @@ -49619,7 +48705,7 @@ public final class ContextOuterClass { subServiceIdsBuilder_.dispose(); subServiceIdsBuilder_ = null; subServiceIds_ = other.subServiceIds_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); subServiceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getSubServiceIdsFieldBuilder() : null; } else { subServiceIdsBuilder_.addAllMessages(other.subServiceIds_); @@ -49629,7 +48715,7 @@ public final class ContextOuterClass { if (other.hasSettings()) { mergeSettings(other.getSettings()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -49641,17 +48727,80 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Connection parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getConnectionIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getServiceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (pathHopsEndpointIdsBuilder_ == null) { + ensurePathHopsEndpointIdsIsMutable(); + pathHopsEndpointIds_.add(m); + } else { + pathHopsEndpointIdsBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.ServiceId m = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); + if (subServiceIdsBuilder_ == null) { + ensureSubServiceIdsIsMutable(); + subServiceIds_.add(m); + } else { + subServiceIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + case 42: + { + input.readMessage(getSettingsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000010; + break; + } + // case 42 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Connection) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -49666,7 +48815,7 @@ public final class ContextOuterClass { * @return Whether the connectionId field is set. */ public boolean hasConnectionId() { - return connectionIdBuilder_ != null || connectionId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -49690,10 +48839,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } connectionId_ = value; - onChanged(); } else { connectionIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -49703,10 +48853,11 @@ public final class ContextOuterClass { public Builder setConnectionId(context.ContextOuterClass.ConnectionId.Builder builderForValue) { if (connectionIdBuilder_ == null) { connectionId_ = builderForValue.build(); - onChanged(); } else { connectionIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -49715,15 +48866,16 @@ public final class ContextOuterClass { */ public Builder mergeConnectionId(context.ContextOuterClass.ConnectionId value) { if (connectionIdBuilder_ == null) { - if (connectionId_ != null) { - connectionId_ = context.ContextOuterClass.ConnectionId.newBuilder(connectionId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && connectionId_ != null && connectionId_ != context.ContextOuterClass.ConnectionId.getDefaultInstance()) { + getConnectionIdBuilder().mergeFrom(value); } else { connectionId_ = value; } - onChanged(); } else { connectionIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -49731,13 +48883,13 @@ public final class ContextOuterClass { * <code>.context.ConnectionId connection_id = 1;</code> */ public Builder clearConnectionId() { - if (connectionIdBuilder_ == null) { - connectionId_ = null; - onChanged(); - } else { - connectionId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + connectionId_ = null; + if (connectionIdBuilder_ != null) { + connectionIdBuilder_.dispose(); connectionIdBuilder_ = null; } + onChanged(); return this; } @@ -49745,6 +48897,7 @@ public final class ContextOuterClass { * <code>.context.ConnectionId connection_id = 1;</code> */ public context.ContextOuterClass.ConnectionId.Builder getConnectionIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getConnectionIdFieldBuilder().getBuilder(); } @@ -49780,7 +48933,7 @@ public final class ContextOuterClass { * @return Whether the serviceId field is set. */ public boolean hasServiceId() { - return serviceIdBuilder_ != null || serviceId_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -49804,10 +48957,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } serviceId_ = value; - onChanged(); } else { serviceIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -49817,10 +48971,11 @@ public final class ContextOuterClass { public Builder setServiceId(context.ContextOuterClass.ServiceId.Builder builderForValue) { if (serviceIdBuilder_ == null) { serviceId_ = builderForValue.build(); - onChanged(); } else { serviceIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -49829,15 +48984,16 @@ public final class ContextOuterClass { */ public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) { if (serviceIdBuilder_ == null) { - if (serviceId_ != null) { - serviceId_ = context.ContextOuterClass.ServiceId.newBuilder(serviceId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && serviceId_ != null && serviceId_ != context.ContextOuterClass.ServiceId.getDefaultInstance()) { + getServiceIdBuilder().mergeFrom(value); } else { serviceId_ = value; } - onChanged(); } else { serviceIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -49845,13 +49001,13 @@ public final class ContextOuterClass { * <code>.context.ServiceId service_id = 2;</code> */ public Builder clearServiceId() { - if (serviceIdBuilder_ == null) { - serviceId_ = null; - onChanged(); - } else { - serviceId_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); serviceIdBuilder_ = null; } + onChanged(); return this; } @@ -49859,6 +49015,7 @@ public final class ContextOuterClass { * <code>.context.ServiceId service_id = 2;</code> */ public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getServiceIdFieldBuilder().getBuilder(); } @@ -49888,9 +49045,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.EndPointId> pathHopsEndpointIds_ = java.util.Collections.emptyList(); private void ensurePathHopsEndpointIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000004) != 0)) { pathHopsEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(pathHopsEndpointIds_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000004; } } @@ -50042,7 +49199,7 @@ public final class ContextOuterClass { public Builder clearPathHopsEndpointIds() { if (pathHopsEndpointIdsBuilder_ == null) { pathHopsEndpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { pathHopsEndpointIdsBuilder_.clear(); @@ -50116,7 +49273,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> getPathHopsEndpointIdsFieldBuilder() { if (pathHopsEndpointIdsBuilder_ == null) { - pathHopsEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(pathHopsEndpointIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + pathHopsEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(pathHopsEndpointIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); pathHopsEndpointIds_ = null; } return pathHopsEndpointIdsBuilder_; @@ -50125,9 +49282,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.ServiceId> subServiceIds_ = java.util.Collections.emptyList(); private void ensureSubServiceIdsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!((bitField0_ & 0x00000008) != 0)) { subServiceIds_ = new java.util.ArrayList<context.ContextOuterClass.ServiceId>(subServiceIds_); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000008; } } @@ -50279,7 +49436,7 @@ public final class ContextOuterClass { public Builder clearSubServiceIds() { if (subServiceIdsBuilder_ == null) { subServiceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { subServiceIdsBuilder_.clear(); @@ -50353,7 +49510,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> getSubServiceIdsFieldBuilder() { if (subServiceIdsBuilder_ == null) { - subServiceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(subServiceIds_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); + subServiceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(subServiceIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); subServiceIds_ = null; } return subServiceIdsBuilder_; @@ -50368,7 +49525,7 @@ public final class ContextOuterClass { * @return Whether the settings field is set. */ public boolean hasSettings() { - return settingsBuilder_ != null || settings_ != null; + return ((bitField0_ & 0x00000010) != 0); } /** @@ -50392,10 +49549,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } settings_ = value; - onChanged(); } else { settingsBuilder_.setMessage(value); } + bitField0_ |= 0x00000010; + onChanged(); return this; } @@ -50405,10 +49563,11 @@ public final class ContextOuterClass { public Builder setSettings(context.ContextOuterClass.ConnectionSettings.Builder builderForValue) { if (settingsBuilder_ == null) { settings_ = builderForValue.build(); - onChanged(); } else { settingsBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000010; + onChanged(); return this; } @@ -50417,15 +49576,16 @@ public final class ContextOuterClass { */ public Builder mergeSettings(context.ContextOuterClass.ConnectionSettings value) { if (settingsBuilder_ == null) { - if (settings_ != null) { - settings_ = context.ContextOuterClass.ConnectionSettings.newBuilder(settings_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000010) != 0) && settings_ != null && settings_ != context.ContextOuterClass.ConnectionSettings.getDefaultInstance()) { + getSettingsBuilder().mergeFrom(value); } else { settings_ = value; } - onChanged(); } else { settingsBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000010; + onChanged(); return this; } @@ -50433,13 +49593,13 @@ public final class ContextOuterClass { * <code>.context.ConnectionSettings settings = 5;</code> */ public Builder clearSettings() { - if (settingsBuilder_ == null) { - settings_ = null; - onChanged(); - } else { - settings_ = null; + bitField0_ = (bitField0_ & ~0x00000010); + settings_ = null; + if (settingsBuilder_ != null) { + settingsBuilder_.dispose(); settingsBuilder_ = null; } + onChanged(); return this; } @@ -50447,6 +49607,7 @@ public final class ContextOuterClass { * <code>.context.ConnectionSettings settings = 5;</code> */ public context.ContextOuterClass.ConnectionSettings.Builder getSettingsBuilder() { + bitField0_ |= 0x00000010; onChanged(); return getSettingsFieldBuilder().getBuilder(); } @@ -50500,7 +49661,17 @@ public final class ContextOuterClass { @java.lang.Override public Connection parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Connection(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -50571,57 +49742,6 @@ public final class ContextOuterClass { return new ConnectionIdList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConnectionIdList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - connectionIds_ = new java.util.ArrayList<context.ContextOuterClass.ConnectionId>(); - mutable_bitField0_ |= 0x00000001; - } - connectionIds_.add(input.readMessage(context.ContextOuterClass.ConnectionId.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - connectionIds_ = java.util.Collections.unmodifiableList(connectionIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConnectionIdList_descriptor; } @@ -50633,6 +49753,7 @@ public final class ContextOuterClass { public static final int CONNECTION_IDS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.ConnectionId> connectionIds_; /** @@ -50693,7 +49814,7 @@ public final class ContextOuterClass { for (int i = 0; i < connectionIds_.size(); i++) { output.writeMessage(1, connectionIds_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -50705,7 +49826,7 @@ public final class ContextOuterClass { for (int i = 0; i < connectionIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, connectionIds_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -50721,7 +49842,7 @@ public final class ContextOuterClass { context.ContextOuterClass.ConnectionIdList other = (context.ContextOuterClass.ConnectionIdList) obj; if (!getConnectionIdsList().equals(other.getConnectionIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -50737,7 +49858,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONNECTION_IDS_FIELD_NUMBER; hash = (53 * hash) + getConnectionIdsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -50831,29 +49952,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConnectionIdList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getConnectionIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (connectionIdsBuilder_ == null) { connectionIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + connectionIds_ = null; connectionIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -50879,7 +49994,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConnectionIdList buildPartial() { context.ContextOuterClass.ConnectionIdList result = new context.ContextOuterClass.ConnectionIdList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ConnectionIdList result) { if (connectionIdsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { connectionIds_ = java.util.Collections.unmodifiableList(connectionIds_); @@ -50889,38 +50012,10 @@ public final class ContextOuterClass { } else { result.connectionIds_ = connectionIdsBuilder_.build(); } - onBuilt(); - return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConnectionIdList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -50960,7 +50055,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -50972,17 +50067,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConnectionIdList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.ConnectionId m = input.readMessage(context.ContextOuterClass.ConnectionId.parser(), extensionRegistry); + if (connectionIdsBuilder_ == null) { + ensureConnectionIdsIsMutable(); + connectionIds_.add(m); + } else { + connectionIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConnectionIdList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -51252,7 +50377,17 @@ public final class ContextOuterClass { @java.lang.Override public ConnectionIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConnectionIdList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -51323,57 +50458,6 @@ public final class ContextOuterClass { return new ConnectionList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConnectionList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - connections_ = new java.util.ArrayList<context.ContextOuterClass.Connection>(); - mutable_bitField0_ |= 0x00000001; - } - connections_.add(input.readMessage(context.ContextOuterClass.Connection.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - connections_ = java.util.Collections.unmodifiableList(connections_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConnectionList_descriptor; } @@ -51385,6 +50469,7 @@ public final class ContextOuterClass { public static final int CONNECTIONS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.Connection> connections_; /** @@ -51445,7 +50530,7 @@ public final class ContextOuterClass { for (int i = 0; i < connections_.size(); i++) { output.writeMessage(1, connections_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -51457,7 +50542,7 @@ public final class ContextOuterClass { for (int i = 0; i < connections_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, connections_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -51473,7 +50558,7 @@ public final class ContextOuterClass { context.ContextOuterClass.ConnectionList other = (context.ContextOuterClass.ConnectionList) obj; if (!getConnectionsList().equals(other.getConnectionsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -51489,7 +50574,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONNECTIONS_FIELD_NUMBER; hash = (53 * hash) + getConnectionsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -51583,29 +50668,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConnectionList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getConnectionsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (connectionsBuilder_ == null) { connections_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + connections_ = null; connectionsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -51631,7 +50710,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConnectionList buildPartial() { context.ContextOuterClass.ConnectionList result = new context.ContextOuterClass.ConnectionList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.ConnectionList result) { if (connectionsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { connections_ = java.util.Collections.unmodifiableList(connections_); @@ -51641,38 +50728,10 @@ public final class ContextOuterClass { } else { result.connections_ = connectionsBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); } - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConnectionList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -51712,7 +50771,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -51724,17 +50783,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConnectionList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.Connection m = input.readMessage(context.ContextOuterClass.Connection.parser(), extensionRegistry); + if (connectionsBuilder_ == null) { + ensureConnectionsIsMutable(); + connections_.add(m); + } else { + connectionsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConnectionList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -52004,7 +51093,17 @@ public final class ContextOuterClass { @java.lang.Override public ConnectionList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConnectionList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -52083,70 +51182,6 @@ public final class ContextOuterClass { return new ConnectionEvent(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConnectionEvent(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Event.Builder subBuilder = null; - if (event_ != null) { - subBuilder = event_.toBuilder(); - } - event_ = input.readMessage(context.ContextOuterClass.Event.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(event_); - event_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.ConnectionId.Builder subBuilder = null; - if (connectionId_ != null) { - subBuilder = connectionId_.toBuilder(); - } - connectionId_ = input.readMessage(context.ContextOuterClass.ConnectionId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(connectionId_); - connectionId_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConnectionEvent_descriptor; } @@ -52183,7 +51218,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { - return getEvent(); + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } public static final int CONNECTION_ID_FIELD_NUMBER = 2; @@ -52213,7 +51248,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ConnectionIdOrBuilder getConnectionIdOrBuilder() { - return getConnectionId(); + return connectionId_ == null ? context.ContextOuterClass.ConnectionId.getDefaultInstance() : connectionId_; } private byte memoizedIsInitialized = -1; @@ -52237,7 +51272,7 @@ public final class ContextOuterClass { if (connectionId_ != null) { output.writeMessage(2, getConnectionId()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -52252,7 +51287,7 @@ public final class ContextOuterClass { if (connectionId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getConnectionId()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -52278,7 +51313,7 @@ public final class ContextOuterClass { if (!getConnectionId().equals(other.getConnectionId())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -52298,7 +51333,7 @@ public final class ContextOuterClass { hash = (37 * hash) + CONNECTION_ID_FIELD_NUMBER; hash = (53 * hash) + getConnectionId().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -52392,32 +51427,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConnectionEvent.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (eventBuilder_ == null) { - event_ = null; - } else { - event_ = null; + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } - if (connectionIdBuilder_ == null) { - connectionId_ = null; - } else { - connectionId_ = null; + connectionId_ = null; + if (connectionIdBuilder_ != null) { + connectionIdBuilder_.dispose(); connectionIdBuilder_ = null; } return this; @@ -52445,48 +51472,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConnectionEvent buildPartial() { context.ContextOuterClass.ConnectionEvent result = new context.ContextOuterClass.ConnectionEvent(this); - if (eventBuilder_ == null) { - result.event_ = event_; - } else { - result.event_ = eventBuilder_.build(); - } - if (connectionIdBuilder_ == null) { - result.connectionId_ = connectionId_; - } else { - result.connectionId_ = connectionIdBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConnectionEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.connectionId_ = connectionIdBuilder_ == null ? connectionId_ : connectionIdBuilder_.build(); + } } @java.lang.Override @@ -52508,7 +51508,7 @@ public final class ContextOuterClass { if (other.hasConnectionId()) { mergeConnectionId(other.getConnectionId()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -52520,20 +51520,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConnectionEvent parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getConnectionIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConnectionEvent) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.Event event_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; @@ -52543,7 +51577,7 @@ public final class ContextOuterClass { * @return Whether the event field is set. */ public boolean hasEvent() { - return eventBuilder_ != null || event_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -52567,10 +51601,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } event_ = value; - onChanged(); } else { eventBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -52580,10 +51615,11 @@ public final class ContextOuterClass { public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { if (eventBuilder_ == null) { event_ = builderForValue.build(); - onChanged(); } else { eventBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -52592,15 +51628,16 @@ public final class ContextOuterClass { */ public Builder mergeEvent(context.ContextOuterClass.Event value) { if (eventBuilder_ == null) { - if (event_ != null) { - event_ = context.ContextOuterClass.Event.newBuilder(event_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); } else { event_ = value; } - onChanged(); } else { eventBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -52608,13 +51645,13 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public Builder clearEvent() { - if (eventBuilder_ == null) { - event_ = null; - onChanged(); - } else { - event_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); eventBuilder_ = null; } + onChanged(); return this; } @@ -52622,6 +51659,7 @@ public final class ContextOuterClass { * <code>.context.Event event = 1;</code> */ public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEventFieldBuilder().getBuilder(); } @@ -52657,7 +51695,7 @@ public final class ContextOuterClass { * @return Whether the connectionId field is set. */ public boolean hasConnectionId() { - return connectionIdBuilder_ != null || connectionId_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -52681,10 +51719,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } connectionId_ = value; - onChanged(); } else { connectionIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -52694,10 +51733,11 @@ public final class ContextOuterClass { public Builder setConnectionId(context.ContextOuterClass.ConnectionId.Builder builderForValue) { if (connectionIdBuilder_ == null) { connectionId_ = builderForValue.build(); - onChanged(); } else { connectionIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -52706,15 +51746,16 @@ public final class ContextOuterClass { */ public Builder mergeConnectionId(context.ContextOuterClass.ConnectionId value) { if (connectionIdBuilder_ == null) { - if (connectionId_ != null) { - connectionId_ = context.ContextOuterClass.ConnectionId.newBuilder(connectionId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && connectionId_ != null && connectionId_ != context.ContextOuterClass.ConnectionId.getDefaultInstance()) { + getConnectionIdBuilder().mergeFrom(value); } else { connectionId_ = value; } - onChanged(); } else { connectionIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -52722,13 +51763,13 @@ public final class ContextOuterClass { * <code>.context.ConnectionId connection_id = 2;</code> */ public Builder clearConnectionId() { - if (connectionIdBuilder_ == null) { - connectionId_ = null; - onChanged(); - } else { - connectionId_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + connectionId_ = null; + if (connectionIdBuilder_ != null) { + connectionIdBuilder_.dispose(); connectionIdBuilder_ = null; } + onChanged(); return this; } @@ -52736,6 +51777,7 @@ public final class ContextOuterClass { * <code>.context.ConnectionId connection_id = 2;</code> */ public context.ContextOuterClass.ConnectionId.Builder getConnectionIdBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getConnectionIdFieldBuilder().getBuilder(); } @@ -52789,7 +51831,17 @@ public final class ContextOuterClass { @java.lang.Override public ConnectionEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConnectionEvent(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -52889,83 +51941,6 @@ public final class ContextOuterClass { return new EndPointId(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private EndPointId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.TopologyId.Builder subBuilder = null; - if (topologyId_ != null) { - subBuilder = topologyId_.toBuilder(); - } - topologyId_ = input.readMessage(context.ContextOuterClass.TopologyId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(topologyId_); - topologyId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.DeviceId.Builder subBuilder = null; - if (deviceId_ != null) { - subBuilder = deviceId_.toBuilder(); - } - deviceId_ = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceId_); - deviceId_ = subBuilder.buildPartial(); - } - break; - } - case 26: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (endpointUuid_ != null) { - subBuilder = endpointUuid_.toBuilder(); - } - endpointUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(endpointUuid_); - endpointUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_EndPointId_descriptor; } @@ -53002,7 +51977,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.TopologyIdOrBuilder getTopologyIdOrBuilder() { - return getTopologyId(); + return topologyId_ == null ? context.ContextOuterClass.TopologyId.getDefaultInstance() : topologyId_; } public static final int DEVICE_ID_FIELD_NUMBER = 2; @@ -53032,7 +52007,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { - return getDeviceId(); + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; } public static final int ENDPOINT_UUID_FIELD_NUMBER = 3; @@ -53062,7 +52037,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.UuidOrBuilder getEndpointUuidOrBuilder() { - return getEndpointUuid(); + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; } private byte memoizedIsInitialized = -1; @@ -53089,7 +52064,7 @@ public final class ContextOuterClass { if (endpointUuid_ != null) { output.writeMessage(3, getEndpointUuid()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -53107,7 +52082,7 @@ public final class ContextOuterClass { if (endpointUuid_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getEndpointUuid()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -53139,7 +52114,7 @@ public final class ContextOuterClass { if (!getEndpointUuid().equals(other.getEndpointUuid())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -53163,7 +52138,7 @@ public final class ContextOuterClass { hash = (37 * hash) + ENDPOINT_UUID_FIELD_NUMBER; hash = (53 * hash) + getEndpointUuid().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -53261,38 +52236,29 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.EndPointId.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (topologyIdBuilder_ == null) { - topologyId_ = null; - } else { - topologyId_ = null; + bitField0_ = 0; + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); topologyIdBuilder_ = null; } - if (deviceIdBuilder_ == null) { - deviceId_ = null; - } else { - deviceId_ = null; + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); deviceIdBuilder_ = null; } - if (endpointUuidBuilder_ == null) { - endpointUuid_ = null; - } else { - endpointUuid_ = null; + endpointUuid_ = null; + if (endpointUuidBuilder_ != null) { + endpointUuidBuilder_.dispose(); endpointUuidBuilder_ = null; } return this; @@ -53320,53 +52286,24 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.EndPointId buildPartial() { context.ContextOuterClass.EndPointId result = new context.ContextOuterClass.EndPointId(this); - if (topologyIdBuilder_ == null) { - result.topologyId_ = topologyId_; - } else { - result.topologyId_ = topologyIdBuilder_.build(); - } - if (deviceIdBuilder_ == null) { - result.deviceId_ = deviceId_; - } else { - result.deviceId_ = deviceIdBuilder_.build(); - } - if (endpointUuidBuilder_ == null) { - result.endpointUuid_ = endpointUuid_; - } else { - result.endpointUuid_ = endpointUuidBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.EndPointId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.topologyId_ = topologyIdBuilder_ == null ? topologyId_ : topologyIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.endpointUuid_ = endpointUuidBuilder_ == null ? endpointUuid_ : endpointUuidBuilder_.build(); + } } @java.lang.Override @@ -53391,7 +52328,7 @@ public final class ContextOuterClass { if (other.hasEndpointUuid()) { mergeEndpointUuid(other.getEndpointUuid()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -53403,20 +52340,61 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.EndPointId parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getTopologyIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getEndpointUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.EndPointId) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.TopologyId topologyId_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyId.Builder, context.ContextOuterClass.TopologyIdOrBuilder> topologyIdBuilder_; @@ -53426,7 +52404,7 @@ public final class ContextOuterClass { * @return Whether the topologyId field is set. */ public boolean hasTopologyId() { - return topologyIdBuilder_ != null || topologyId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -53450,10 +52428,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } topologyId_ = value; - onChanged(); } else { topologyIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -53463,10 +52442,11 @@ public final class ContextOuterClass { public Builder setTopologyId(context.ContextOuterClass.TopologyId.Builder builderForValue) { if (topologyIdBuilder_ == null) { topologyId_ = builderForValue.build(); - onChanged(); } else { topologyIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -53475,15 +52455,16 @@ public final class ContextOuterClass { */ public Builder mergeTopologyId(context.ContextOuterClass.TopologyId value) { if (topologyIdBuilder_ == null) { - if (topologyId_ != null) { - topologyId_ = context.ContextOuterClass.TopologyId.newBuilder(topologyId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && topologyId_ != null && topologyId_ != context.ContextOuterClass.TopologyId.getDefaultInstance()) { + getTopologyIdBuilder().mergeFrom(value); } else { topologyId_ = value; } - onChanged(); } else { topologyIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -53491,13 +52472,13 @@ public final class ContextOuterClass { * <code>.context.TopologyId topology_id = 1;</code> */ public Builder clearTopologyId() { - if (topologyIdBuilder_ == null) { - topologyId_ = null; - onChanged(); - } else { - topologyId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + topologyId_ = null; + if (topologyIdBuilder_ != null) { + topologyIdBuilder_.dispose(); topologyIdBuilder_ = null; } + onChanged(); return this; } @@ -53505,6 +52486,7 @@ public final class ContextOuterClass { * <code>.context.TopologyId topology_id = 1;</code> */ public context.ContextOuterClass.TopologyId.Builder getTopologyIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getTopologyIdFieldBuilder().getBuilder(); } @@ -53540,7 +52522,7 @@ public final class ContextOuterClass { * @return Whether the deviceId field is set. */ public boolean hasDeviceId() { - return deviceIdBuilder_ != null || deviceId_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -53564,10 +52546,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } deviceId_ = value; - onChanged(); } else { deviceIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -53577,10 +52560,11 @@ public final class ContextOuterClass { public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) { if (deviceIdBuilder_ == null) { deviceId_ = builderForValue.build(); - onChanged(); } else { deviceIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -53589,15 +52573,16 @@ public final class ContextOuterClass { */ public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { if (deviceIdBuilder_ == null) { - if (deviceId_ != null) { - deviceId_ = context.ContextOuterClass.DeviceId.newBuilder(deviceId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getDeviceIdBuilder().mergeFrom(value); } else { deviceId_ = value; } - onChanged(); } else { deviceIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -53605,13 +52590,13 @@ public final class ContextOuterClass { * <code>.context.DeviceId device_id = 2;</code> */ public Builder clearDeviceId() { - if (deviceIdBuilder_ == null) { - deviceId_ = null; - onChanged(); - } else { - deviceId_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); deviceIdBuilder_ = null; } + onChanged(); return this; } @@ -53619,6 +52604,7 @@ public final class ContextOuterClass { * <code>.context.DeviceId device_id = 2;</code> */ public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getDeviceIdFieldBuilder().getBuilder(); } @@ -53654,7 +52640,7 @@ public final class ContextOuterClass { * @return Whether the endpointUuid field is set. */ public boolean hasEndpointUuid() { - return endpointUuidBuilder_ != null || endpointUuid_ != null; + return ((bitField0_ & 0x00000004) != 0); } /** @@ -53678,10 +52664,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } endpointUuid_ = value; - onChanged(); } else { endpointUuidBuilder_.setMessage(value); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -53691,10 +52678,11 @@ public final class ContextOuterClass { public Builder setEndpointUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { if (endpointUuidBuilder_ == null) { endpointUuid_ = builderForValue.build(); - onChanged(); } else { endpointUuidBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -53703,15 +52691,16 @@ public final class ContextOuterClass { */ public Builder mergeEndpointUuid(context.ContextOuterClass.Uuid value) { if (endpointUuidBuilder_ == null) { - if (endpointUuid_ != null) { - endpointUuid_ = context.ContextOuterClass.Uuid.newBuilder(endpointUuid_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000004) != 0) && endpointUuid_ != null && endpointUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getEndpointUuidBuilder().mergeFrom(value); } else { endpointUuid_ = value; } - onChanged(); } else { endpointUuidBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000004; + onChanged(); return this; } @@ -53719,13 +52708,13 @@ public final class ContextOuterClass { * <code>.context.Uuid endpoint_uuid = 3;</code> */ public Builder clearEndpointUuid() { - if (endpointUuidBuilder_ == null) { - endpointUuid_ = null; - onChanged(); - } else { - endpointUuid_ = null; + bitField0_ = (bitField0_ & ~0x00000004); + endpointUuid_ = null; + if (endpointUuidBuilder_ != null) { + endpointUuidBuilder_.dispose(); endpointUuidBuilder_ = null; } + onChanged(); return this; } @@ -53733,6 +52722,7 @@ public final class ContextOuterClass { * <code>.context.Uuid endpoint_uuid = 3;</code> */ public context.ContextOuterClass.Uuid.Builder getEndpointUuidBuilder() { + bitField0_ |= 0x00000004; onChanged(); return getEndpointUuidFieldBuilder().getBuilder(); } @@ -53786,7 +52776,17 @@ public final class ContextOuterClass { @java.lang.Override public EndPointId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new EndPointId(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -53897,6 +52897,39 @@ public final class ContextOuterClass { * <code>.context.Location endpoint_location = 5;</code> */ context.ContextOuterClass.LocationOrBuilder getEndpointLocationOrBuilder(); + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + int getCapabilitiesCount(); + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + boolean containsCapabilities(java.lang.String key); + + /** + * Use {@link #getCapabilitiesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilities(); + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilitiesMap(); + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + /* nullable */ + com.google.protobuf.Any getCapabilitiesOrDefault(java.lang.String key, /* nullable */ + com.google.protobuf.Any defaultValue); + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + com.google.protobuf.Any getCapabilitiesOrThrow(java.lang.String key); } /** @@ -53924,115 +52957,21 @@ public final class ContextOuterClass { return new EndPoint(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_EndPoint_descriptor; } - private EndPoint(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.EndPointId.Builder subBuilder = null; - if (endpointId_ != null) { - subBuilder = endpointId_.toBuilder(); - } - endpointId_ = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(endpointId_); - endpointId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 26: - { - java.lang.String s = input.readStringRequireUtf8(); - endpointType_ = s; - break; - } - case 32: - { - int rawValue = input.readEnum(); - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - kpiSampleTypes_ = new java.util.ArrayList<java.lang.Integer>(); - mutable_bitField0_ |= 0x00000001; - } - kpiSampleTypes_.add(rawValue); - break; - } - case 34: - { - int length = input.readRawVarint32(); - int oldLimit = input.pushLimit(length); - while (input.getBytesUntilLimit() > 0) { - int rawValue = input.readEnum(); - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - kpiSampleTypes_ = new java.util.ArrayList<java.lang.Integer>(); - mutable_bitField0_ |= 0x00000001; - } - kpiSampleTypes_.add(rawValue); - } - input.popLimit(oldLimit); - break; - } - case 42: - { - context.ContextOuterClass.Location.Builder subBuilder = null; - if (endpointLocation_ != null) { - subBuilder = endpointLocation_.toBuilder(); - } - endpointLocation_ = input.readMessage(context.ContextOuterClass.Location.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(endpointLocation_); - endpointLocation_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - kpiSampleTypes_ = java.util.Collections.unmodifiableList(kpiSampleTypes_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); + @SuppressWarnings({ "rawtypes" }) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch(number) { + case 6: + return internalGetCapabilities(); + default: + throw new RuntimeException("Invalid map field number: " + number); } } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_EndPoint_descriptor; - } - @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return context.ContextOuterClass.internal_static_context_EndPoint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPoint.class, context.ContextOuterClass.EndPoint.Builder.class); @@ -54065,12 +53004,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { - return getEndpointId(); + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; } public static final int NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object name_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** * <code>string name = 2;</code> @@ -54107,7 +53047,8 @@ public final class ContextOuterClass { public static final int ENDPOINT_TYPE_FIELD_NUMBER = 3; - private volatile java.lang.Object endpointType_; + @SuppressWarnings("serial") + private volatile java.lang.Object endpointType_ = ""; /** * <code>string endpoint_type = 3;</code> @@ -54144,13 +53085,13 @@ public final class ContextOuterClass { public static final int KPI_SAMPLE_TYPES_FIELD_NUMBER = 4; + @SuppressWarnings("serial") private java.util.List<java.lang.Integer> kpiSampleTypes_; private static final com.google.protobuf.Internal.ListAdapter.Converter<java.lang.Integer, kpi_sample_types.KpiSampleTypes.KpiSampleType> kpiSampleTypes_converter_ = new com.google.protobuf.Internal.ListAdapter.Converter<java.lang.Integer, kpi_sample_types.KpiSampleTypes.KpiSampleType>() { public kpi_sample_types.KpiSampleTypes.KpiSampleType convert(java.lang.Integer from) { - @SuppressWarnings("deprecation") - kpi_sample_types.KpiSampleTypes.KpiSampleType result = kpi_sample_types.KpiSampleTypes.KpiSampleType.valueOf(from); + kpi_sample_types.KpiSampleTypes.KpiSampleType result = kpi_sample_types.KpiSampleTypes.KpiSampleType.forNumber(from); return result == null ? kpi_sample_types.KpiSampleTypes.KpiSampleType.UNRECOGNIZED : result; } }; @@ -54231,7 +53172,85 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.LocationOrBuilder getEndpointLocationOrBuilder() { - return getEndpointLocation(); + return endpointLocation_ == null ? context.ContextOuterClass.Location.getDefaultInstance() : endpointLocation_; + } + + public static final int CAPABILITIES_FIELD_NUMBER = 6; + + private static final class CapabilitiesDefaultEntryHolder { + + static final com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.Any> defaultEntry = com.google.protobuf.MapEntry.<java.lang.String, com.google.protobuf.Any>newDefaultInstance(context.ContextOuterClass.internal_static_context_EndPoint_CapabilitiesEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.MESSAGE, com.google.protobuf.Any.getDefaultInstance()); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.Any> capabilities_; + + private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.Any> internalGetCapabilities() { + if (capabilities_ == null) { + return com.google.protobuf.MapField.emptyMapField(CapabilitiesDefaultEntryHolder.defaultEntry); + } + return capabilities_; + } + + public int getCapabilitiesCount() { + return internalGetCapabilities().getMap().size(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public boolean containsCapabilities(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetCapabilities().getMap().containsKey(key); + } + + /** + * Use {@link #getCapabilitiesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilities() { + return getCapabilitiesMap(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilitiesMap() { + return internalGetCapabilities().getMap(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public /* nullable */ + com.google.protobuf.Any getCapabilitiesOrDefault(java.lang.String key, /* nullable */ + com.google.protobuf.Any defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, com.google.protobuf.Any> map = internalGetCapabilities().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public com.google.protobuf.Any getCapabilitiesOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, com.google.protobuf.Any> map = internalGetCapabilities().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); } private byte memoizedIsInitialized = -1; @@ -54253,10 +53272,10 @@ public final class ContextOuterClass { if (endpointId_ != null) { output.writeMessage(1, getEndpointId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_); } - if (!getEndpointTypeBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointType_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, endpointType_); } if (getKpiSampleTypesList().size() > 0) { @@ -54269,7 +53288,8 @@ public final class ContextOuterClass { if (endpointLocation_ != null) { output.writeMessage(5, getEndpointLocation()); } - unknownFields.writeTo(output); + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(output, internalGetCapabilities(), CapabilitiesDefaultEntryHolder.defaultEntry, 6); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -54281,10 +53301,10 @@ public final class ContextOuterClass { if (endpointId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEndpointId()); } - if (!getNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_); } - if (!getEndpointTypeBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointType_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, endpointType_); } { @@ -54302,7 +53322,11 @@ public final class ContextOuterClass { if (endpointLocation_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getEndpointLocation()); } - size += unknownFields.getSerializedSize(); + for (java.util.Map.Entry<java.lang.String, com.google.protobuf.Any> entry : internalGetCapabilities().getMap().entrySet()) { + com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.Any> capabilities__ = CapabilitiesDefaultEntryHolder.defaultEntry.newBuilderForType().setKey(entry.getKey()).setValue(entry.getValue()).build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, capabilities__); + } + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -54334,7 +53358,9 @@ public final class ContextOuterClass { if (!getEndpointLocation().equals(other.getEndpointLocation())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!internalGetCapabilities().equals(other.internalGetCapabilities())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -54362,7 +53388,11 @@ public final class ContextOuterClass { hash = (37 * hash) + ENDPOINT_LOCATION_FIELD_NUMBER; hash = (53 * hash) + getEndpointLocation().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + if (!internalGetCapabilities().getMap().isEmpty()) { + hash = (37 * hash) + CAPABILITIES_FIELD_NUMBER; + hash = (53 * hash) + internalGetCapabilities().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -54449,6 +53479,26 @@ public final class ContextOuterClass { return context.ContextOuterClass.internal_static_context_EndPoint_descriptor; } + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch(number) { + case 6: + return internalGetCapabilities(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + switch(number) { + case 6: + return internalGetMutableCapabilities(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return context.ContextOuterClass.internal_static_context_EndPoint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.EndPoint.class, context.ContextOuterClass.EndPoint.Builder.class); @@ -54456,38 +53506,31 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.EndPoint.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (endpointIdBuilder_ == null) { - endpointId_ = null; - } else { - endpointId_ = null; + bitField0_ = 0; + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); endpointIdBuilder_ = null; } name_ = ""; endpointType_ = ""; kpiSampleTypes_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - if (endpointLocationBuilder_ == null) { - endpointLocation_ = null; - } else { - endpointLocation_ = null; + bitField0_ = (bitField0_ & ~0x00000008); + endpointLocation_ = null; + if (endpointLocationBuilder_ != null) { + endpointLocationBuilder_.dispose(); endpointLocationBuilder_ = null; } + internalGetMutableCapabilities().clear(); return this; } @@ -54513,56 +53556,40 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.EndPoint buildPartial() { context.ContextOuterClass.EndPoint result = new context.ContextOuterClass.EndPoint(this); - int from_bitField0_ = bitField0_; - if (endpointIdBuilder_ == null) { - result.endpointId_ = endpointId_; - } else { - result.endpointId_ = endpointIdBuilder_.build(); - } - result.name_ = name_; - result.endpointType_ = endpointType_; - if (((bitField0_ & 0x00000001) != 0)) { - kpiSampleTypes_ = java.util.Collections.unmodifiableList(kpiSampleTypes_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.kpiSampleTypes_ = kpiSampleTypes_; - if (endpointLocationBuilder_ == null) { - result.endpointLocation_ = endpointLocation_; - } else { - result.endpointLocation_ = endpointLocationBuilder_.build(); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); + private void buildPartialRepeatedFields(context.ContextOuterClass.EndPoint result) { + if (((bitField0_ & 0x00000008) != 0)) { + kpiSampleTypes_ = java.util.Collections.unmodifiableList(kpiSampleTypes_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.kpiSampleTypes_ = kpiSampleTypes_; } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.EndPoint result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.endpointId_ = endpointIdBuilder_ == null ? endpointId_ : endpointIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.endpointType_ = endpointType_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.endpointLocation_ = endpointLocationBuilder_ == null ? endpointLocation_ : endpointLocationBuilder_.build(); + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.capabilities_ = internalGetCapabilities(); + result.capabilities_.makeImmutable(); + } } @java.lang.Override @@ -54583,16 +53610,18 @@ public final class ContextOuterClass { } if (!other.getName().isEmpty()) { name_ = other.name_; + bitField0_ |= 0x00000002; onChanged(); } if (!other.getEndpointType().isEmpty()) { endpointType_ = other.endpointType_; + bitField0_ |= 0x00000004; onChanged(); } if (!other.kpiSampleTypes_.isEmpty()) { if (kpiSampleTypes_.isEmpty()) { kpiSampleTypes_ = other.kpiSampleTypes_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensureKpiSampleTypesIsMutable(); kpiSampleTypes_.addAll(other.kpiSampleTypes_); @@ -54602,7 +53631,9 @@ public final class ContextOuterClass { if (other.hasEndpointLocation()) { mergeEndpointLocation(other.getEndpointLocation()); } - this.mergeUnknownFields(other.unknownFields); + internalGetMutableCapabilities().mergeFrom(other.internalGetCapabilities()); + bitField0_ |= 0x00000020; + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -54614,17 +53645,92 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.EndPoint parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEndpointIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + endpointType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 32: + { + int tmpRaw = input.readEnum(); + ensureKpiSampleTypesIsMutable(); + kpiSampleTypes_.add(tmpRaw); + break; + } + // case 32 + case 34: + { + int length = input.readRawVarint32(); + int oldLimit = input.pushLimit(length); + while (input.getBytesUntilLimit() > 0) { + int tmpRaw = input.readEnum(); + ensureKpiSampleTypesIsMutable(); + kpiSampleTypes_.add(tmpRaw); + } + input.popLimit(oldLimit); + break; + } + // case 34 + case 42: + { + input.readMessage(getEndpointLocationFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000010; + break; + } + // case 42 + case 50: + { + com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.Any> capabilities__ = input.readMessage(CapabilitiesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableCapabilities().getMutableMap().put(capabilities__.getKey(), capabilities__.getValue()); + bitField0_ |= 0x00000020; + break; + } + // case 50 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.EndPoint) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -54639,7 +53745,7 @@ public final class ContextOuterClass { * @return Whether the endpointId field is set. */ public boolean hasEndpointId() { - return endpointIdBuilder_ != null || endpointId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -54663,10 +53769,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } endpointId_ = value; - onChanged(); } else { endpointIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -54676,10 +53783,11 @@ public final class ContextOuterClass { public Builder setEndpointId(context.ContextOuterClass.EndPointId.Builder builderForValue) { if (endpointIdBuilder_ == null) { endpointId_ = builderForValue.build(); - onChanged(); } else { endpointIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -54688,15 +53796,16 @@ public final class ContextOuterClass { */ public Builder mergeEndpointId(context.ContextOuterClass.EndPointId value) { if (endpointIdBuilder_ == null) { - if (endpointId_ != null) { - endpointId_ = context.ContextOuterClass.EndPointId.newBuilder(endpointId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && endpointId_ != null && endpointId_ != context.ContextOuterClass.EndPointId.getDefaultInstance()) { + getEndpointIdBuilder().mergeFrom(value); } else { endpointId_ = value; } - onChanged(); } else { endpointIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -54704,13 +53813,13 @@ public final class ContextOuterClass { * <code>.context.EndPointId endpoint_id = 1;</code> */ public Builder clearEndpointId() { - if (endpointIdBuilder_ == null) { - endpointId_ = null; - onChanged(); - } else { - endpointId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); endpointIdBuilder_ = null; } + onChanged(); return this; } @@ -54718,6 +53827,7 @@ public final class ContextOuterClass { * <code>.context.EndPointId endpoint_id = 1;</code> */ public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEndpointIdFieldBuilder().getBuilder(); } @@ -54787,6 +53897,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -54797,6 +53908,7 @@ public final class ContextOuterClass { */ public Builder clearName() { name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -54812,6 +53924,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); name_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -54859,6 +53972,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } endpointType_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -54869,6 +53983,7 @@ public final class ContextOuterClass { */ public Builder clearEndpointType() { endpointType_ = getDefaultInstance().getEndpointType(); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } @@ -54884,6 +53999,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); endpointType_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -54891,9 +54007,9 @@ public final class ContextOuterClass { private java.util.List<java.lang.Integer> kpiSampleTypes_ = java.util.Collections.emptyList(); private void ensureKpiSampleTypesIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000008) != 0)) { kpiSampleTypes_ = new java.util.ArrayList<java.lang.Integer>(kpiSampleTypes_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000008; } } @@ -54973,7 +54089,7 @@ public final class ContextOuterClass { */ public Builder clearKpiSampleTypes() { kpiSampleTypes_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); return this; } @@ -54997,8 +54113,8 @@ public final class ContextOuterClass { /** * <code>repeated .kpi_sample_types.KpiSampleType kpi_sample_types = 4;</code> - * @param index The index of the value to return. - * @return The enum numeric value on the wire of kpiSampleTypes at the given index. + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for kpiSampleTypes to set. * @return This builder for chaining. */ public Builder setKpiSampleTypesValue(int index, int value) { @@ -55043,7 +54159,7 @@ public final class ContextOuterClass { * @return Whether the endpointLocation field is set. */ public boolean hasEndpointLocation() { - return endpointLocationBuilder_ != null || endpointLocation_ != null; + return ((bitField0_ & 0x00000010) != 0); } /** @@ -55067,10 +54183,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } endpointLocation_ = value; - onChanged(); } else { endpointLocationBuilder_.setMessage(value); } + bitField0_ |= 0x00000010; + onChanged(); return this; } @@ -55080,10 +54197,11 @@ public final class ContextOuterClass { public Builder setEndpointLocation(context.ContextOuterClass.Location.Builder builderForValue) { if (endpointLocationBuilder_ == null) { endpointLocation_ = builderForValue.build(); - onChanged(); } else { endpointLocationBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000010; + onChanged(); return this; } @@ -55092,15 +54210,16 @@ public final class ContextOuterClass { */ public Builder mergeEndpointLocation(context.ContextOuterClass.Location value) { if (endpointLocationBuilder_ == null) { - if (endpointLocation_ != null) { - endpointLocation_ = context.ContextOuterClass.Location.newBuilder(endpointLocation_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000010) != 0) && endpointLocation_ != null && endpointLocation_ != context.ContextOuterClass.Location.getDefaultInstance()) { + getEndpointLocationBuilder().mergeFrom(value); } else { endpointLocation_ = value; } - onChanged(); } else { endpointLocationBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000010; + onChanged(); return this; } @@ -55108,13 +54227,13 @@ public final class ContextOuterClass { * <code>.context.Location endpoint_location = 5;</code> */ public Builder clearEndpointLocation() { - if (endpointLocationBuilder_ == null) { - endpointLocation_ = null; - onChanged(); - } else { - endpointLocation_ = null; + bitField0_ = (bitField0_ & ~0x00000010); + endpointLocation_ = null; + if (endpointLocationBuilder_ != null) { + endpointLocationBuilder_.dispose(); endpointLocationBuilder_ = null; } + onChanged(); return this; } @@ -55122,6 +54241,7 @@ public final class ContextOuterClass { * <code>.context.Location endpoint_location = 5;</code> */ public context.ContextOuterClass.Location.Builder getEndpointLocationBuilder() { + bitField0_ |= 0x00000010; onChanged(); return getEndpointLocationFieldBuilder().getBuilder(); } @@ -55148,6 +54268,138 @@ public final class ContextOuterClass { return endpointLocationBuilder_; } + private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.Any> capabilities_; + + private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.Any> internalGetCapabilities() { + if (capabilities_ == null) { + return com.google.protobuf.MapField.emptyMapField(CapabilitiesDefaultEntryHolder.defaultEntry); + } + return capabilities_; + } + + private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.Any> internalGetMutableCapabilities() { + if (capabilities_ == null) { + capabilities_ = com.google.protobuf.MapField.newMapField(CapabilitiesDefaultEntryHolder.defaultEntry); + } + if (!capabilities_.isMutable()) { + capabilities_ = capabilities_.copy(); + } + bitField0_ |= 0x00000020; + onChanged(); + return capabilities_; + } + + public int getCapabilitiesCount() { + return internalGetCapabilities().getMap().size(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public boolean containsCapabilities(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetCapabilities().getMap().containsKey(key); + } + + /** + * Use {@link #getCapabilitiesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilities() { + return getCapabilitiesMap(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public java.util.Map<java.lang.String, com.google.protobuf.Any> getCapabilitiesMap() { + return internalGetCapabilities().getMap(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public /* nullable */ + com.google.protobuf.Any getCapabilitiesOrDefault(java.lang.String key, /* nullable */ + com.google.protobuf.Any defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, com.google.protobuf.Any> map = internalGetCapabilities().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + @java.lang.Override + public com.google.protobuf.Any getCapabilitiesOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, com.google.protobuf.Any> map = internalGetCapabilities().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearCapabilities() { + bitField0_ = (bitField0_ & ~0x00000020); + internalGetMutableCapabilities().getMutableMap().clear(); + return this; + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + public Builder removeCapabilities(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableCapabilities().getMutableMap().remove(key); + return this; + } + + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map<java.lang.String, com.google.protobuf.Any> getMutableCapabilities() { + bitField0_ |= 0x00000020; + return internalGetMutableCapabilities().getMutableMap(); + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + public Builder putCapabilities(java.lang.String key, com.google.protobuf.Any value) { + if (key == null) { + throw new NullPointerException("map key"); + } + if (value == null) { + throw new NullPointerException("map value"); + } + internalGetMutableCapabilities().getMutableMap().put(key, value); + bitField0_ |= 0x00000020; + return this; + } + + /** + * <code>map<string, .google.protobuf.Any> capabilities = 6;</code> + */ + public Builder putAllCapabilities(java.util.Map<java.lang.String, com.google.protobuf.Any> values) { + internalGetMutableCapabilities().getMutableMap().putAll(values); + bitField0_ |= 0x00000020; + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); @@ -55175,7 +54427,17 @@ public final class ContextOuterClass { @java.lang.Override public EndPoint parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new EndPoint(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -55276,75 +54538,6 @@ public final class ContextOuterClass { return new EndPointName(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private EndPointName(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.EndPointId.Builder subBuilder = null; - if (endpointId_ != null) { - subBuilder = endpointId_.toBuilder(); - } - endpointId_ = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(endpointId_); - endpointId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - deviceName_ = s; - break; - } - case 26: - { - java.lang.String s = input.readStringRequireUtf8(); - endpointName_ = s; - break; - } - case 34: - { - java.lang.String s = input.readStringRequireUtf8(); - endpointType_ = s; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_EndPointName_descriptor; } @@ -55381,12 +54574,13 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { - return getEndpointId(); + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; } public static final int DEVICE_NAME_FIELD_NUMBER = 2; - private volatile java.lang.Object deviceName_; + @SuppressWarnings("serial") + private volatile java.lang.Object deviceName_ = ""; /** * <code>string device_name = 2;</code> @@ -55423,7 +54617,8 @@ public final class ContextOuterClass { public static final int ENDPOINT_NAME_FIELD_NUMBER = 3; - private volatile java.lang.Object endpointName_; + @SuppressWarnings("serial") + private volatile java.lang.Object endpointName_ = ""; /** * <code>string endpoint_name = 3;</code> @@ -55460,7 +54655,8 @@ public final class ContextOuterClass { public static final int ENDPOINT_TYPE_FIELD_NUMBER = 4; - private volatile java.lang.Object endpointType_; + @SuppressWarnings("serial") + private volatile java.lang.Object endpointType_ = ""; /** * <code>string endpoint_type = 4;</code> @@ -55513,16 +54709,16 @@ public final class ContextOuterClass { if (endpointId_ != null) { output.writeMessage(1, getEndpointId()); } - if (!getDeviceNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceName_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, deviceName_); } - if (!getEndpointNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointName_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 3, endpointName_); } - if (!getEndpointTypeBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointType_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 4, endpointType_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -55534,16 +54730,16 @@ public final class ContextOuterClass { if (endpointId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEndpointId()); } - if (!getDeviceNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deviceName_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, deviceName_); } - if (!getEndpointNameBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointName_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, endpointName_); } - if (!getEndpointTypeBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(endpointType_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, endpointType_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -55569,7 +54765,7 @@ public final class ContextOuterClass { return false; if (!getEndpointType().equals(other.getEndpointType())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -55591,7 +54787,7 @@ public final class ContextOuterClass { hash = (53 * hash) + getEndpointName().hashCode(); hash = (37 * hash) + ENDPOINT_TYPE_FIELD_NUMBER; hash = (53 * hash) + getEndpointType().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -55685,26 +54881,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.EndPointName.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (endpointIdBuilder_ == null) { - endpointId_ = null; - } else { - endpointId_ = null; + bitField0_ = 0; + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); endpointIdBuilder_ = null; } deviceName_ = ""; @@ -55735,46 +54924,27 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.EndPointName buildPartial() { context.ContextOuterClass.EndPointName result = new context.ContextOuterClass.EndPointName(this); - if (endpointIdBuilder_ == null) { - result.endpointId_ = endpointId_; - } else { - result.endpointId_ = endpointIdBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } - result.deviceName_ = deviceName_; - result.endpointName_ = endpointName_; - result.endpointType_ = endpointType_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.EndPointName result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.endpointId_ = endpointIdBuilder_ == null ? endpointId_ : endpointIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.deviceName_ = deviceName_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.endpointName_ = endpointName_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.endpointType_ = endpointType_; + } } @java.lang.Override @@ -55795,17 +54965,20 @@ public final class ContextOuterClass { } if (!other.getDeviceName().isEmpty()) { deviceName_ = other.deviceName_; + bitField0_ |= 0x00000002; onChanged(); } if (!other.getEndpointName().isEmpty()) { endpointName_ = other.endpointName_; + bitField0_ |= 0x00000004; onChanged(); } if (!other.getEndpointType().isEmpty()) { endpointType_ = other.endpointType_; + bitField0_ |= 0x00000008; onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -55817,20 +54990,68 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.EndPointName parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEndpointIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + deviceName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + endpointName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + endpointType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.EndPointName) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.EndPointId endpointId_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> endpointIdBuilder_; @@ -55840,7 +55061,7 @@ public final class ContextOuterClass { * @return Whether the endpointId field is set. */ public boolean hasEndpointId() { - return endpointIdBuilder_ != null || endpointId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -55864,10 +55085,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } endpointId_ = value; - onChanged(); } else { endpointIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -55877,10 +55099,11 @@ public final class ContextOuterClass { public Builder setEndpointId(context.ContextOuterClass.EndPointId.Builder builderForValue) { if (endpointIdBuilder_ == null) { endpointId_ = builderForValue.build(); - onChanged(); } else { endpointIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -55889,15 +55112,16 @@ public final class ContextOuterClass { */ public Builder mergeEndpointId(context.ContextOuterClass.EndPointId value) { if (endpointIdBuilder_ == null) { - if (endpointId_ != null) { - endpointId_ = context.ContextOuterClass.EndPointId.newBuilder(endpointId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && endpointId_ != null && endpointId_ != context.ContextOuterClass.EndPointId.getDefaultInstance()) { + getEndpointIdBuilder().mergeFrom(value); } else { endpointId_ = value; } - onChanged(); } else { endpointIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -55905,13 +55129,13 @@ public final class ContextOuterClass { * <code>.context.EndPointId endpoint_id = 1;</code> */ public Builder clearEndpointId() { - if (endpointIdBuilder_ == null) { - endpointId_ = null; - onChanged(); - } else { - endpointId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); endpointIdBuilder_ = null; } + onChanged(); return this; } @@ -55919,6 +55143,7 @@ public final class ContextOuterClass { * <code>.context.EndPointId endpoint_id = 1;</code> */ public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEndpointIdFieldBuilder().getBuilder(); } @@ -55988,6 +55213,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } deviceName_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -55998,6 +55224,7 @@ public final class ContextOuterClass { */ public Builder clearDeviceName() { deviceName_ = getDefaultInstance().getDeviceName(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -56013,6 +55240,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); deviceName_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -56060,6 +55288,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } endpointName_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -56070,6 +55299,7 @@ public final class ContextOuterClass { */ public Builder clearEndpointName() { endpointName_ = getDefaultInstance().getEndpointName(); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } @@ -56085,6 +55315,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); endpointName_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -56132,6 +55363,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } endpointType_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -56142,6 +55374,7 @@ public final class ContextOuterClass { */ public Builder clearEndpointType() { endpointType_ = getDefaultInstance().getEndpointType(); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); return this; } @@ -56157,6 +55390,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); endpointType_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -56188,7 +55422,17 @@ public final class ContextOuterClass { @java.lang.Override public EndPointName parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new EndPointName(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -56259,57 +55503,6 @@ public final class ContextOuterClass { return new EndPointIdList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private EndPointIdList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - endpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(); - mutable_bitField0_ |= 0x00000001; - } - endpointIds_.add(input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - endpointIds_ = java.util.Collections.unmodifiableList(endpointIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_EndPointIdList_descriptor; } @@ -56321,6 +55514,7 @@ public final class ContextOuterClass { public static final int ENDPOINT_IDS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.EndPointId> endpointIds_; /** @@ -56381,7 +55575,7 @@ public final class ContextOuterClass { for (int i = 0; i < endpointIds_.size(); i++) { output.writeMessage(1, endpointIds_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -56393,7 +55587,7 @@ public final class ContextOuterClass { for (int i = 0; i < endpointIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, endpointIds_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -56409,7 +55603,7 @@ public final class ContextOuterClass { context.ContextOuterClass.EndPointIdList other = (context.ContextOuterClass.EndPointIdList) obj; if (!getEndpointIdsList().equals(other.getEndpointIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -56425,7 +55619,7 @@ public final class ContextOuterClass { hash = (37 * hash) + ENDPOINT_IDS_FIELD_NUMBER; hash = (53 * hash) + getEndpointIdsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -56519,29 +55713,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.EndPointIdList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getEndpointIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (endpointIdsBuilder_ == null) { endpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + endpointIds_ = null; endpointIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -56567,7 +55755,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.EndPointIdList buildPartial() { context.ContextOuterClass.EndPointIdList result = new context.ContextOuterClass.EndPointIdList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.EndPointIdList result) { if (endpointIdsBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { endpointIds_ = java.util.Collections.unmodifiableList(endpointIds_); @@ -56577,38 +55773,10 @@ public final class ContextOuterClass { } else { result.endpointIds_ = endpointIdsBuilder_.build(); } - onBuilt(); - return result; - } - - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); } - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.EndPointIdList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -56648,7 +55816,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -56660,17 +55828,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.EndPointIdList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (endpointIdsBuilder_ == null) { + ensureEndpointIdsIsMutable(); + endpointIds_.add(m); + } else { + endpointIdsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.EndPointIdList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -56940,7 +56138,17 @@ public final class ContextOuterClass { @java.lang.Override public EndPointIdList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new EndPointIdList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -57011,57 +56219,6 @@ public final class ContextOuterClass { return new EndPointNameList(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private EndPointNameList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - endpointNames_ = new java.util.ArrayList<context.ContextOuterClass.EndPointName>(); - mutable_bitField0_ |= 0x00000001; - } - endpointNames_.add(input.readMessage(context.ContextOuterClass.EndPointName.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - endpointNames_ = java.util.Collections.unmodifiableList(endpointNames_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_EndPointNameList_descriptor; } @@ -57073,6 +56230,7 @@ public final class ContextOuterClass { public static final int ENDPOINT_NAMES_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.EndPointName> endpointNames_; /** @@ -57133,7 +56291,7 @@ public final class ContextOuterClass { for (int i = 0; i < endpointNames_.size(); i++) { output.writeMessage(1, endpointNames_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -57145,7 +56303,7 @@ public final class ContextOuterClass { for (int i = 0; i < endpointNames_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, endpointNames_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -57161,7 +56319,7 @@ public final class ContextOuterClass { context.ContextOuterClass.EndPointNameList other = (context.ContextOuterClass.EndPointNameList) obj; if (!getEndpointNamesList().equals(other.getEndpointNamesList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -57177,7 +56335,7 @@ public final class ContextOuterClass { hash = (37 * hash) + ENDPOINT_NAMES_FIELD_NUMBER; hash = (53 * hash) + getEndpointNamesList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -57271,29 +56429,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.EndPointNameList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getEndpointNamesFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; if (endpointNamesBuilder_ == null) { endpointNames_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + endpointNames_ = null; endpointNamesBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @@ -57319,7 +56471,15 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.EndPointNameList buildPartial() { context.ContextOuterClass.EndPointNameList result = new context.ContextOuterClass.EndPointNameList(this); - int from_bitField0_ = bitField0_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.EndPointNameList result) { if (endpointNamesBuilder_ == null) { if (((bitField0_ & 0x00000001) != 0)) { endpointNames_ = java.util.Collections.unmodifiableList(endpointNames_); @@ -57329,38 +56489,10 @@ public final class ContextOuterClass { } else { result.endpointNames_ = endpointNamesBuilder_.build(); } - onBuilt(); - return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.EndPointNameList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -57400,7 +56532,7 @@ public final class ContextOuterClass { } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -57412,17 +56544,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.EndPointNameList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.EndPointName m = input.readMessage(context.ContextOuterClass.EndPointName.parser(), extensionRegistry); + if (endpointNamesBuilder_ == null) { + ensureEndpointNamesIsMutable(); + endpointNames_.add(m); + } else { + endpointNamesBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.EndPointNameList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -57692,7 +56854,17 @@ public final class ContextOuterClass { @java.lang.Override public EndPointNameList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new EndPointNameList(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -57763,56 +56935,6 @@ public final class ContextOuterClass { return new ConfigRule_Custom(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConfigRule_Custom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - resourceKey_ = s; - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - resourceValue_ = s; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConfigRule_Custom_descriptor; } @@ -57824,7 +56946,8 @@ public final class ContextOuterClass { public static final int RESOURCE_KEY_FIELD_NUMBER = 1; - private volatile java.lang.Object resourceKey_; + @SuppressWarnings("serial") + private volatile java.lang.Object resourceKey_ = ""; /** * <code>string resource_key = 1;</code> @@ -57861,7 +56984,8 @@ public final class ContextOuterClass { public static final int RESOURCE_VALUE_FIELD_NUMBER = 2; - private volatile java.lang.Object resourceValue_; + @SuppressWarnings("serial") + private volatile java.lang.Object resourceValue_ = ""; /** * <code>string resource_value = 2;</code> @@ -57911,13 +57035,13 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getResourceKeyBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceKey_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, resourceKey_); } - if (!getResourceValueBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceValue_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, resourceValue_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -57926,13 +57050,13 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!getResourceKeyBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceKey_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, resourceKey_); } - if (!getResourceValueBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(resourceValue_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, resourceValue_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -57950,7 +57074,7 @@ public final class ContextOuterClass { return false; if (!getResourceValue().equals(other.getResourceValue())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -57966,7 +57090,7 @@ public final class ContextOuterClass { hash = (53 * hash) + getResourceKey().hashCode(); hash = (37 * hash) + RESOURCE_VALUE_FIELD_NUMBER; hash = (53 * hash) + getResourceValue().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -58060,22 +57184,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConfigRule_Custom.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; resourceKey_ = ""; resourceValue_ = ""; return this; @@ -58103,40 +57221,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConfigRule_Custom buildPartial() { context.ContextOuterClass.ConfigRule_Custom result = new context.ContextOuterClass.ConfigRule_Custom(this); - result.resourceKey_ = resourceKey_; - result.resourceValue_ = resourceValue_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConfigRule_Custom result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.resourceKey_ = resourceKey_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.resourceValue_ = resourceValue_; + } } @java.lang.Override @@ -58154,13 +57253,15 @@ public final class ContextOuterClass { return this; if (!other.getResourceKey().isEmpty()) { resourceKey_ = other.resourceKey_; + bitField0_ |= 0x00000001; onChanged(); } if (!other.getResourceValue().isEmpty()) { resourceValue_ = other.resourceValue_; + bitField0_ |= 0x00000002; onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -58172,20 +57273,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConfigRule_Custom parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + resourceKey_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + resourceValue_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConfigRule_Custom) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private java.lang.Object resourceKey_ = ""; /** @@ -58229,6 +57364,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } resourceKey_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -58239,6 +57375,7 @@ public final class ContextOuterClass { */ public Builder clearResourceKey() { resourceKey_ = getDefaultInstance().getResourceKey(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } @@ -58254,6 +57391,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); resourceKey_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -58301,6 +57439,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } resourceValue_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -58311,6 +57450,7 @@ public final class ContextOuterClass { */ public Builder clearResourceValue() { resourceValue_ = getDefaultInstance().getResourceValue(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -58326,6 +57466,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); resourceValue_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -58357,7 +57498,17 @@ public final class ContextOuterClass { @java.lang.Override public ConfigRule_Custom parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConfigRule_Custom(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -58436,70 +57587,6 @@ public final class ContextOuterClass { return new ConfigRule_ACL(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConfigRule_ACL(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.EndPointId.Builder subBuilder = null; - if (endpointId_ != null) { - subBuilder = endpointId_.toBuilder(); - } - endpointId_ = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(endpointId_); - endpointId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - acl.Acl.AclRuleSet.Builder subBuilder = null; - if (ruleSet_ != null) { - subBuilder = ruleSet_.toBuilder(); - } - ruleSet_ = input.readMessage(acl.Acl.AclRuleSet.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(ruleSet_); - ruleSet_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConfigRule_ACL_descriptor; } @@ -58536,7 +57623,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { - return getEndpointId(); + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; } public static final int RULE_SET_FIELD_NUMBER = 2; @@ -58566,7 +57653,7 @@ public final class ContextOuterClass { */ @java.lang.Override public acl.Acl.AclRuleSetOrBuilder getRuleSetOrBuilder() { - return getRuleSet(); + return ruleSet_ == null ? acl.Acl.AclRuleSet.getDefaultInstance() : ruleSet_; } private byte memoizedIsInitialized = -1; @@ -58590,7 +57677,7 @@ public final class ContextOuterClass { if (ruleSet_ != null) { output.writeMessage(2, getRuleSet()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -58605,7 +57692,7 @@ public final class ContextOuterClass { if (ruleSet_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRuleSet()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -58631,7 +57718,7 @@ public final class ContextOuterClass { if (!getRuleSet().equals(other.getRuleSet())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -58651,7 +57738,7 @@ public final class ContextOuterClass { hash = (37 * hash) + RULE_SET_FIELD_NUMBER; hash = (53 * hash) + getRuleSet().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -58745,32 +57832,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConfigRule_ACL.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (endpointIdBuilder_ == null) { - endpointId_ = null; - } else { - endpointId_ = null; + bitField0_ = 0; + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); endpointIdBuilder_ = null; } - if (ruleSetBuilder_ == null) { - ruleSet_ = null; - } else { - ruleSet_ = null; + ruleSet_ = null; + if (ruleSetBuilder_ != null) { + ruleSetBuilder_.dispose(); ruleSetBuilder_ = null; } return this; @@ -58798,48 +57877,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConfigRule_ACL buildPartial() { context.ContextOuterClass.ConfigRule_ACL result = new context.ContextOuterClass.ConfigRule_ACL(this); - if (endpointIdBuilder_ == null) { - result.endpointId_ = endpointId_; - } else { - result.endpointId_ = endpointIdBuilder_.build(); - } - if (ruleSetBuilder_ == null) { - result.ruleSet_ = ruleSet_; - } else { - result.ruleSet_ = ruleSetBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ConfigRule_ACL result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.endpointId_ = endpointIdBuilder_ == null ? endpointId_ : endpointIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ruleSet_ = ruleSetBuilder_ == null ? ruleSet_ : ruleSetBuilder_.build(); + } } @java.lang.Override @@ -58861,7 +57913,7 @@ public final class ContextOuterClass { if (other.hasRuleSet()) { mergeRuleSet(other.getRuleSet()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -58873,20 +57925,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConfigRule_ACL parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEndpointIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getRuleSetFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConfigRule_ACL) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.EndPointId endpointId_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> endpointIdBuilder_; @@ -58896,7 +57982,7 @@ public final class ContextOuterClass { * @return Whether the endpointId field is set. */ public boolean hasEndpointId() { - return endpointIdBuilder_ != null || endpointId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -58920,10 +58006,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } endpointId_ = value; - onChanged(); } else { endpointIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -58933,10 +58020,11 @@ public final class ContextOuterClass { public Builder setEndpointId(context.ContextOuterClass.EndPointId.Builder builderForValue) { if (endpointIdBuilder_ == null) { endpointId_ = builderForValue.build(); - onChanged(); } else { endpointIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -58945,15 +58033,16 @@ public final class ContextOuterClass { */ public Builder mergeEndpointId(context.ContextOuterClass.EndPointId value) { if (endpointIdBuilder_ == null) { - if (endpointId_ != null) { - endpointId_ = context.ContextOuterClass.EndPointId.newBuilder(endpointId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && endpointId_ != null && endpointId_ != context.ContextOuterClass.EndPointId.getDefaultInstance()) { + getEndpointIdBuilder().mergeFrom(value); } else { endpointId_ = value; } - onChanged(); } else { endpointIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -58961,13 +58050,13 @@ public final class ContextOuterClass { * <code>.context.EndPointId endpoint_id = 1;</code> */ public Builder clearEndpointId() { - if (endpointIdBuilder_ == null) { - endpointId_ = null; - onChanged(); - } else { - endpointId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); endpointIdBuilder_ = null; } + onChanged(); return this; } @@ -58975,6 +58064,7 @@ public final class ContextOuterClass { * <code>.context.EndPointId endpoint_id = 1;</code> */ public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEndpointIdFieldBuilder().getBuilder(); } @@ -59010,7 +58100,7 @@ public final class ContextOuterClass { * @return Whether the ruleSet field is set. */ public boolean hasRuleSet() { - return ruleSetBuilder_ != null || ruleSet_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -59034,10 +58124,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } ruleSet_ = value; - onChanged(); } else { ruleSetBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -59047,10 +58138,11 @@ public final class ContextOuterClass { public Builder setRuleSet(acl.Acl.AclRuleSet.Builder builderForValue) { if (ruleSetBuilder_ == null) { ruleSet_ = builderForValue.build(); - onChanged(); } else { ruleSetBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -59059,15 +58151,16 @@ public final class ContextOuterClass { */ public Builder mergeRuleSet(acl.Acl.AclRuleSet value) { if (ruleSetBuilder_ == null) { - if (ruleSet_ != null) { - ruleSet_ = acl.Acl.AclRuleSet.newBuilder(ruleSet_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && ruleSet_ != null && ruleSet_ != acl.Acl.AclRuleSet.getDefaultInstance()) { + getRuleSetBuilder().mergeFrom(value); } else { ruleSet_ = value; } - onChanged(); } else { ruleSetBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -59075,13 +58168,13 @@ public final class ContextOuterClass { * <code>.acl.AclRuleSet rule_set = 2;</code> */ public Builder clearRuleSet() { - if (ruleSetBuilder_ == null) { - ruleSet_ = null; - onChanged(); - } else { - ruleSet_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + ruleSet_ = null; + if (ruleSetBuilder_ != null) { + ruleSetBuilder_.dispose(); ruleSetBuilder_ = null; } + onChanged(); return this; } @@ -59089,6 +58182,7 @@ public final class ContextOuterClass { * <code>.acl.AclRuleSet rule_set = 2;</code> */ public acl.Acl.AclRuleSet.Builder getRuleSetBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getRuleSetFieldBuilder().getBuilder(); } @@ -59142,7 +58236,17 @@ public final class ContextOuterClass { @java.lang.Override public ConfigRule_ACL parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConfigRule_ACL(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -59210,7 +58314,7 @@ public final class ContextOuterClass { */ context.ContextOuterClass.ConfigRule_ACLOrBuilder getAclOrBuilder(); - public context.ContextOuterClass.ConfigRule.ConfigRuleCase getConfigRuleCase(); + context.ContextOuterClass.ConfigRule.ConfigRuleCase getConfigRuleCase(); } /** @@ -59236,78 +58340,6 @@ public final class ContextOuterClass { return new ConfigRule(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private ConfigRule(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - int rawValue = input.readEnum(); - action_ = rawValue; - break; - } - case 18: - { - context.ContextOuterClass.ConfigRule_Custom.Builder subBuilder = null; - if (configRuleCase_ == 2) { - subBuilder = ((context.ContextOuterClass.ConfigRule_Custom) configRule_).toBuilder(); - } - configRule_ = input.readMessage(context.ContextOuterClass.ConfigRule_Custom.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.ConfigRule_Custom) configRule_); - configRule_ = subBuilder.buildPartial(); - } - configRuleCase_ = 2; - break; - } - case 26: - { - context.ContextOuterClass.ConfigRule_ACL.Builder subBuilder = null; - if (configRuleCase_ == 3) { - subBuilder = ((context.ContextOuterClass.ConfigRule_ACL) configRule_).toBuilder(); - } - configRule_ = input.readMessage(context.ContextOuterClass.ConfigRule_ACL.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.ConfigRule_ACL) configRule_); - configRule_ = subBuilder.buildPartial(); - } - configRuleCase_ = 3; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_ConfigRule_descriptor; } @@ -59319,6 +58351,7 @@ public final class ContextOuterClass { private int configRuleCase_ = 0; + @SuppressWarnings("serial") private java.lang.Object configRule_; public enum ConfigRuleCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { @@ -59365,7 +58398,7 @@ public final class ContextOuterClass { public static final int ACTION_FIELD_NUMBER = 1; - private int action_; + private int action_ = 0; /** * <code>.context.ConfigActionEnum action = 1;</code> @@ -59382,8 +58415,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ConfigActionEnum getAction() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.ConfigActionEnum result = context.ContextOuterClass.ConfigActionEnum.valueOf(action_); + context.ContextOuterClass.ConfigActionEnum result = context.ContextOuterClass.ConfigActionEnum.forNumber(action_); return result == null ? context.ContextOuterClass.ConfigActionEnum.UNRECOGNIZED : result; } @@ -59479,7 +58511,7 @@ public final class ContextOuterClass { if (configRuleCase_ == 3) { output.writeMessage(3, (context.ContextOuterClass.ConfigRule_ACL) configRule_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -59497,7 +58529,7 @@ public final class ContextOuterClass { if (configRuleCase_ == 3) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, (context.ContextOuterClass.ConfigRule_ACL) configRule_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -59527,7 +58559,7 @@ public final class ContextOuterClass { case 0: default: } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -59553,7 +58585,7 @@ public final class ContextOuterClass { case 0: default: } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -59647,23 +58679,23 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.ConfigRule.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; action_ = 0; + if (customBuilder_ != null) { + customBuilder_.clear(); + } + if (aclBuilder_ != null) { + aclBuilder_.clear(); + } configRuleCase_ = 0; configRule_ = null; return this; @@ -59691,54 +58723,30 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.ConfigRule buildPartial() { context.ContextOuterClass.ConfigRule result = new context.ContextOuterClass.ConfigRule(this); - result.action_ = action_; - if (configRuleCase_ == 2) { - if (customBuilder_ == null) { - result.configRule_ = configRule_; - } else { - result.configRule_ = customBuilder_.build(); - } - } - if (configRuleCase_ == 3) { - if (aclBuilder_ == null) { - result.configRule_ = configRule_; - } else { - result.configRule_ = aclBuilder_.build(); - } + if (bitField0_ != 0) { + buildPartial0(result); } - result.configRuleCase_ = configRuleCase_; + buildPartialOneofs(result); onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); + private void buildPartial0(context.ContextOuterClass.ConfigRule result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.action_ = action_; + } } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartialOneofs(context.ContextOuterClass.ConfigRule result) { + result.configRuleCase_ = configRuleCase_; + result.configRule_ = this.configRule_; + if (configRuleCase_ == 2 && customBuilder_ != null) { + result.configRule_ = customBuilder_.build(); + } + if (configRuleCase_ == 3 && aclBuilder_ != null) { + result.configRule_ = aclBuilder_.build(); + } } @java.lang.Override @@ -59773,7 +58781,7 @@ public final class ContextOuterClass { break; } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -59785,17 +58793,56 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.ConfigRule parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + action_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 18: + { + input.readMessage(getCustomFieldBuilder().getBuilder(), extensionRegistry); + configRuleCase_ = 2; + break; + } + // case 18 + case 26: + { + input.readMessage(getAclFieldBuilder().getBuilder(), extensionRegistry); + configRuleCase_ = 3; + break; + } + // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.ConfigRule) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -59814,6 +58861,8 @@ public final class ContextOuterClass { return this; } + private int bitField0_; + private int action_ = 0; /** @@ -59832,6 +58881,7 @@ public final class ContextOuterClass { */ public Builder setActionValue(int value) { action_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -59842,8 +58892,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ConfigActionEnum getAction() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.ConfigActionEnum result = context.ContextOuterClass.ConfigActionEnum.valueOf(action_); + context.ContextOuterClass.ConfigActionEnum result = context.ContextOuterClass.ConfigActionEnum.forNumber(action_); return result == null ? context.ContextOuterClass.ConfigActionEnum.UNRECOGNIZED : result; } @@ -59856,6 +58905,7 @@ public final class ContextOuterClass { if (value == null) { throw new NullPointerException(); } + bitField0_ |= 0x00000001; action_ = value.getNumber(); onChanged(); return this; @@ -59866,6 +58916,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearAction() { + bitField0_ = (bitField0_ & ~0x00000001); action_ = 0; onChanged(); return this; @@ -59946,8 +58997,9 @@ public final class ContextOuterClass { } else { if (configRuleCase_ == 2) { customBuilder_.mergeFrom(value); + } else { + customBuilder_.setMessage(value); } - customBuilder_.setMessage(value); } configRuleCase_ = 2; return this; @@ -60008,7 +59060,6 @@ public final class ContextOuterClass { } configRuleCase_ = 2; onChanged(); - ; return customBuilder_; } @@ -60087,8 +59138,9 @@ public final class ContextOuterClass { } else { if (configRuleCase_ == 3) { aclBuilder_.mergeFrom(value); + } else { + aclBuilder_.setMessage(value); } - aclBuilder_.setMessage(value); } configRuleCase_ = 3; return this; @@ -60149,7 +59201,6 @@ public final class ContextOuterClass { } configRuleCase_ = 3; onChanged(); - ; return aclBuilder_; } @@ -60180,7 +59231,17 @@ public final class ContextOuterClass { @java.lang.Override public ConfigRule parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new ConfigRule(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -60251,56 +59312,6 @@ public final class ContextOuterClass { return new Constraint_Custom(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Constraint_Custom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - constraintType_ = s; - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - constraintValue_ = s; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Constraint_Custom_descriptor; } @@ -60312,7 +59323,8 @@ public final class ContextOuterClass { public static final int CONSTRAINT_TYPE_FIELD_NUMBER = 1; - private volatile java.lang.Object constraintType_; + @SuppressWarnings("serial") + private volatile java.lang.Object constraintType_ = ""; /** * <code>string constraint_type = 1;</code> @@ -60349,7 +59361,8 @@ public final class ContextOuterClass { public static final int CONSTRAINT_VALUE_FIELD_NUMBER = 2; - private volatile java.lang.Object constraintValue_; + @SuppressWarnings("serial") + private volatile java.lang.Object constraintValue_ = ""; /** * <code>string constraint_value = 2;</code> @@ -60399,13 +59412,13 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getConstraintTypeBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(constraintType_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 1, constraintType_); } - if (!getConstraintValueBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(constraintValue_)) { com.google.protobuf.GeneratedMessageV3.writeString(output, 2, constraintValue_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -60414,13 +59427,13 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!getConstraintTypeBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(constraintType_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, constraintType_); } - if (!getConstraintValueBytes().isEmpty()) { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(constraintValue_)) { size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, constraintValue_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -60438,7 +59451,7 @@ public final class ContextOuterClass { return false; if (!getConstraintValue().equals(other.getConstraintValue())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -60454,7 +59467,7 @@ public final class ContextOuterClass { hash = (53 * hash) + getConstraintType().hashCode(); hash = (37 * hash) + CONSTRAINT_VALUE_FIELD_NUMBER; hash = (53 * hash) + getConstraintValue().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -60548,22 +59561,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Constraint_Custom.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; constraintType_ = ""; constraintValue_ = ""; return this; @@ -60591,40 +59598,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Constraint_Custom buildPartial() { context.ContextOuterClass.Constraint_Custom result = new context.ContextOuterClass.Constraint_Custom(this); - result.constraintType_ = constraintType_; - result.constraintValue_ = constraintValue_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Constraint_Custom result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.constraintType_ = constraintType_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.constraintValue_ = constraintValue_; + } } @java.lang.Override @@ -60642,13 +59630,15 @@ public final class ContextOuterClass { return this; if (!other.getConstraintType().isEmpty()) { constraintType_ = other.constraintType_; + bitField0_ |= 0x00000001; onChanged(); } if (!other.getConstraintValue().isEmpty()) { constraintValue_ = other.constraintValue_; + bitField0_ |= 0x00000002; onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -60660,20 +59650,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Constraint_Custom parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + constraintType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + constraintValue_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Constraint_Custom) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private java.lang.Object constraintType_ = ""; /** @@ -60717,6 +59741,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } constraintType_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -60727,6 +59752,7 @@ public final class ContextOuterClass { */ public Builder clearConstraintType() { constraintType_ = getDefaultInstance().getConstraintType(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } @@ -60742,6 +59768,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); constraintType_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -60789,6 +59816,7 @@ public final class ContextOuterClass { throw new NullPointerException(); } constraintValue_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -60799,6 +59827,7 @@ public final class ContextOuterClass { */ public Builder clearConstraintValue() { constraintValue_ = getDefaultInstance().getConstraintValue(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } @@ -60814,6 +59843,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); constraintValue_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -60845,7 +59875,17 @@ public final class ContextOuterClass { @java.lang.Override public Constraint_Custom parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Constraint_Custom(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -60868,10 +59908,10 @@ public final class ContextOuterClass { com.google.protobuf.MessageOrBuilder { /** - * <code>float start_timestamp = 1;</code> + * <code>double start_timestamp = 1;</code> * @return The startTimestamp. */ - float getStartTimestamp(); + double getStartTimestamp(); /** * <code>float duration_days = 2;</code> @@ -60902,54 +59942,6 @@ public final class ContextOuterClass { return new Constraint_Schedule(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Constraint_Schedule(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 13: - { - startTimestamp_ = input.readFloat(); - break; - } - case 21: - { - durationDays_ = input.readFloat(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Constraint_Schedule_descriptor; } @@ -60961,20 +59953,20 @@ public final class ContextOuterClass { public static final int START_TIMESTAMP_FIELD_NUMBER = 1; - private float startTimestamp_; + private double startTimestamp_ = 0D; /** - * <code>float start_timestamp = 1;</code> + * <code>double start_timestamp = 1;</code> * @return The startTimestamp. */ @java.lang.Override - public float getStartTimestamp() { + public double getStartTimestamp() { return startTimestamp_; } public static final int DURATION_DAYS_FIELD_NUMBER = 2; - private float durationDays_; + private float durationDays_ = 0F; /** * <code>float duration_days = 2;</code> @@ -61000,13 +59992,13 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (startTimestamp_ != 0F) { - output.writeFloat(1, startTimestamp_); + if (java.lang.Double.doubleToRawLongBits(startTimestamp_) != 0) { + output.writeDouble(1, startTimestamp_); } - if (durationDays_ != 0F) { + if (java.lang.Float.floatToRawIntBits(durationDays_) != 0) { output.writeFloat(2, durationDays_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -61015,13 +60007,13 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (startTimestamp_ != 0F) { - size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, startTimestamp_); + if (java.lang.Double.doubleToRawLongBits(startTimestamp_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(1, startTimestamp_); } - if (durationDays_ != 0F) { + if (java.lang.Float.floatToRawIntBits(durationDays_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(2, durationDays_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -61035,11 +60027,11 @@ public final class ContextOuterClass { return super.equals(obj); } context.ContextOuterClass.Constraint_Schedule other = (context.ContextOuterClass.Constraint_Schedule) obj; - if (java.lang.Float.floatToIntBits(getStartTimestamp()) != java.lang.Float.floatToIntBits(other.getStartTimestamp())) + if (java.lang.Double.doubleToLongBits(getStartTimestamp()) != java.lang.Double.doubleToLongBits(other.getStartTimestamp())) return false; if (java.lang.Float.floatToIntBits(getDurationDays()) != java.lang.Float.floatToIntBits(other.getDurationDays())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -61052,10 +60044,10 @@ public final class ContextOuterClass { int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + START_TIMESTAMP_FIELD_NUMBER; - hash = (53 * hash) + java.lang.Float.floatToIntBits(getStartTimestamp()); + hash = (53 * hash) + com.google.protobuf.Internal.hashLong(java.lang.Double.doubleToLongBits(getStartTimestamp())); hash = (37 * hash) + DURATION_DAYS_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits(getDurationDays()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -61149,23 +60141,17 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Constraint_Schedule.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - startTimestamp_ = 0F; + bitField0_ = 0; + startTimestamp_ = 0D; durationDays_ = 0F; return this; } @@ -61192,40 +60178,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Constraint_Schedule buildPartial() { context.ContextOuterClass.Constraint_Schedule result = new context.ContextOuterClass.Constraint_Schedule(this); - result.startTimestamp_ = startTimestamp_; - result.durationDays_ = durationDays_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Constraint_Schedule result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.startTimestamp_ = startTimestamp_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.durationDays_ = durationDays_; + } } @java.lang.Override @@ -61241,13 +60208,13 @@ public final class ContextOuterClass { public Builder mergeFrom(context.ContextOuterClass.Constraint_Schedule other) { if (other == context.ContextOuterClass.Constraint_Schedule.getDefaultInstance()) return this; - if (other.getStartTimestamp() != 0F) { + if (other.getStartTimestamp() != 0D) { setStartTimestamp(other.getStartTimestamp()); } if (other.getDurationDays() != 0F) { setDurationDays(other.getDurationDays()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -61259,48 +60226,84 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Constraint_Schedule parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 9: + { + startTimestamp_ = input.readDouble(); + bitField0_ |= 0x00000001; + break; + } + // case 9 + case 21: + { + durationDays_ = input.readFloat(); + bitField0_ |= 0x00000002; + break; + } + // case 21 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Constraint_Schedule) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } - private float startTimestamp_; + private int bitField0_; + + private double startTimestamp_; /** - * <code>float start_timestamp = 1;</code> + * <code>double start_timestamp = 1;</code> * @return The startTimestamp. */ @java.lang.Override - public float getStartTimestamp() { + public double getStartTimestamp() { return startTimestamp_; } /** - * <code>float start_timestamp = 1;</code> + * <code>double start_timestamp = 1;</code> * @param value The startTimestamp to set. * @return This builder for chaining. */ - public Builder setStartTimestamp(float value) { + public Builder setStartTimestamp(double value) { startTimestamp_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } /** - * <code>float start_timestamp = 1;</code> + * <code>double start_timestamp = 1;</code> * @return This builder for chaining. */ public Builder clearStartTimestamp() { - startTimestamp_ = 0F; + bitField0_ = (bitField0_ & ~0x00000001); + startTimestamp_ = 0D; onChanged(); return this; } @@ -61323,6 +60326,7 @@ public final class ContextOuterClass { */ public Builder setDurationDays(float value) { durationDays_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -61332,6 +60336,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearDurationDays() { + bitField0_ = (bitField0_ & ~0x00000002); durationDays_ = 0F; onChanged(); return this; @@ -61364,7 +60369,17 @@ public final class ContextOuterClass { @java.lang.Override public Constraint_Schedule parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Constraint_Schedule(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -61421,54 +60436,6 @@ public final class ContextOuterClass { return new GPS_Position(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private GPS_Position(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 13: - { - latitude_ = input.readFloat(); - break; - } - case 21: - { - longitude_ = input.readFloat(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_GPS_Position_descriptor; } @@ -61480,7 +60447,7 @@ public final class ContextOuterClass { public static final int LATITUDE_FIELD_NUMBER = 1; - private float latitude_; + private float latitude_ = 0F; /** * <code>float latitude = 1;</code> @@ -61493,7 +60460,7 @@ public final class ContextOuterClass { public static final int LONGITUDE_FIELD_NUMBER = 2; - private float longitude_; + private float longitude_ = 0F; /** * <code>float longitude = 2;</code> @@ -61519,13 +60486,13 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (latitude_ != 0F) { + if (java.lang.Float.floatToRawIntBits(latitude_) != 0) { output.writeFloat(1, latitude_); } - if (longitude_ != 0F) { + if (java.lang.Float.floatToRawIntBits(longitude_) != 0) { output.writeFloat(2, longitude_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -61534,13 +60501,13 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (latitude_ != 0F) { + if (java.lang.Float.floatToRawIntBits(latitude_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, latitude_); } - if (longitude_ != 0F) { + if (java.lang.Float.floatToRawIntBits(longitude_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(2, longitude_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -61558,7 +60525,7 @@ public final class ContextOuterClass { return false; if (java.lang.Float.floatToIntBits(getLongitude()) != java.lang.Float.floatToIntBits(other.getLongitude())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -61574,7 +60541,7 @@ public final class ContextOuterClass { hash = (53 * hash) + java.lang.Float.floatToIntBits(getLatitude()); hash = (37 * hash) + LONGITUDE_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits(getLongitude()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -61668,22 +60635,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.GPS_Position.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; latitude_ = 0F; longitude_ = 0F; return this; @@ -61711,40 +60672,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.GPS_Position buildPartial() { context.ContextOuterClass.GPS_Position result = new context.ContextOuterClass.GPS_Position(this); - result.latitude_ = latitude_; - result.longitude_ = longitude_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.GPS_Position result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.latitude_ = latitude_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.longitude_ = longitude_; + } } @java.lang.Override @@ -61766,7 +60708,7 @@ public final class ContextOuterClass { if (other.getLongitude() != 0F) { setLongitude(other.getLongitude()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -61778,20 +60720,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.GPS_Position parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 13: + { + latitude_ = input.readFloat(); + bitField0_ |= 0x00000001; + break; + } + // case 13 + case 21: + { + longitude_ = input.readFloat(); + bitField0_ |= 0x00000002; + break; + } + // case 21 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.GPS_Position) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private float latitude_; /** @@ -61810,6 +60786,7 @@ public final class ContextOuterClass { */ public Builder setLatitude(float value) { latitude_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -61819,6 +60796,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearLatitude() { + bitField0_ = (bitField0_ & ~0x00000001); latitude_ = 0F; onChanged(); return this; @@ -61842,6 +60820,7 @@ public final class ContextOuterClass { */ public Builder setLongitude(float value) { longitude_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -61851,6 +60830,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearLongitude() { + bitField0_ = (bitField0_ & ~0x00000002); longitude_ = 0F; onChanged(); return this; @@ -61883,7 +60863,17 @@ public final class ContextOuterClass { @java.lang.Override public GPS_Position parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new GPS_Position(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -61940,7 +60930,43 @@ public final class ContextOuterClass { */ context.ContextOuterClass.GPS_PositionOrBuilder getGpsPositionOrBuilder(); - public context.ContextOuterClass.Location.LocationCase getLocationCase(); + /** + * <code>string interface = 3;</code> + * @return Whether the interface field is set. + */ + boolean hasInterface(); + + /** + * <code>string interface = 3;</code> + * @return The interface. + */ + java.lang.String getInterface(); + + /** + * <code>string interface = 3;</code> + * @return The bytes for interface. + */ + com.google.protobuf.ByteString getInterfaceBytes(); + + /** + * <code>string circuit_pack = 4;</code> + * @return Whether the circuitPack field is set. + */ + boolean hasCircuitPack(); + + /** + * <code>string circuit_pack = 4;</code> + * @return The circuitPack. + */ + java.lang.String getCircuitPack(); + + /** + * <code>string circuit_pack = 4;</code> + * @return The bytes for circuitPack. + */ + com.google.protobuf.ByteString getCircuitPackBytes(); + + context.ContextOuterClass.Location.LocationCase getLocationCase(); } /** @@ -61965,65 +60991,6 @@ public final class ContextOuterClass { return new Location(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Location(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - locationCase_ = 1; - location_ = s; - break; - } - case 18: - { - context.ContextOuterClass.GPS_Position.Builder subBuilder = null; - if (locationCase_ == 2) { - subBuilder = ((context.ContextOuterClass.GPS_Position) location_).toBuilder(); - } - location_ = input.readMessage(context.ContextOuterClass.GPS_Position.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.GPS_Position) location_); - location_ = subBuilder.buildPartial(); - } - locationCase_ = 2; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Location_descriptor; } @@ -62035,11 +61002,12 @@ public final class ContextOuterClass { private int locationCase_ = 0; + @SuppressWarnings("serial") private java.lang.Object location_; public enum LocationCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { - REGION(1), GPS_POSITION(2), LOCATION_NOT_SET(0); + REGION(1), GPS_POSITION(2), INTERFACE(3), CIRCUIT_PACK(4), LOCATION_NOT_SET(0); private final int value; @@ -62063,6 +61031,10 @@ public final class ContextOuterClass { return REGION; case 2: return GPS_POSITION; + case 3: + return INTERFACE; + case 4: + return CIRCUIT_PACK; case 0: return LOCATION_NOT_SET; default: @@ -62164,6 +61136,108 @@ public final class ContextOuterClass { return context.ContextOuterClass.GPS_Position.getDefaultInstance(); } + public static final int INTERFACE_FIELD_NUMBER = 3; + + /** + * <code>string interface = 3;</code> + * @return Whether the interface field is set. + */ + public boolean hasInterface() { + return locationCase_ == 3; + } + + /** + * <code>string interface = 3;</code> + * @return The interface. + */ + public java.lang.String getInterface() { + java.lang.Object ref = ""; + if (locationCase_ == 3) { + ref = location_; + } + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (locationCase_ == 3) { + location_ = s; + } + return s; + } + } + + /** + * <code>string interface = 3;</code> + * @return The bytes for interface. + */ + public com.google.protobuf.ByteString getInterfaceBytes() { + java.lang.Object ref = ""; + if (locationCase_ == 3) { + ref = location_; + } + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + if (locationCase_ == 3) { + location_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CIRCUIT_PACK_FIELD_NUMBER = 4; + + /** + * <code>string circuit_pack = 4;</code> + * @return Whether the circuitPack field is set. + */ + public boolean hasCircuitPack() { + return locationCase_ == 4; + } + + /** + * <code>string circuit_pack = 4;</code> + * @return The circuitPack. + */ + public java.lang.String getCircuitPack() { + java.lang.Object ref = ""; + if (locationCase_ == 4) { + ref = location_; + } + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (locationCase_ == 4) { + location_ = s; + } + return s; + } + } + + /** + * <code>string circuit_pack = 4;</code> + * @return The bytes for circuitPack. + */ + public com.google.protobuf.ByteString getCircuitPackBytes() { + java.lang.Object ref = ""; + if (locationCase_ == 4) { + ref = location_; + } + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + if (locationCase_ == 4) { + location_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -62185,7 +61259,13 @@ public final class ContextOuterClass { if (locationCase_ == 2) { output.writeMessage(2, (context.ContextOuterClass.GPS_Position) location_); } - unknownFields.writeTo(output); + if (locationCase_ == 3) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, location_); + } + if (locationCase_ == 4) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, location_); + } + getUnknownFields().writeTo(output); } @java.lang.Override @@ -62200,7 +61280,13 @@ public final class ContextOuterClass { if (locationCase_ == 2) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, (context.ContextOuterClass.GPS_Position) location_); } - size += unknownFields.getSerializedSize(); + if (locationCase_ == 3) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, location_); + } + if (locationCase_ == 4) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, location_); + } + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -62225,10 +61311,18 @@ public final class ContextOuterClass { if (!getGpsPosition().equals(other.getGpsPosition())) return false; break; + case 3: + if (!getInterface().equals(other.getInterface())) + return false; + break; + case 4: + if (!getCircuitPack().equals(other.getCircuitPack())) + return false; + break; case 0: default: } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -62249,10 +61343,18 @@ public final class ContextOuterClass { hash = (37 * hash) + GPS_POSITION_FIELD_NUMBER; hash = (53 * hash) + getGpsPosition().hashCode(); break; + case 3: + hash = (37 * hash) + INTERFACE_FIELD_NUMBER; + hash = (53 * hash) + getInterface().hashCode(); + break; + case 4: + hash = (37 * hash) + CIRCUIT_PACK_FIELD_NUMBER; + hash = (53 * hash) + getCircuitPack().hashCode(); + break; case 0: default: } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -62346,22 +61448,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Location.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; + if (gpsPositionBuilder_ != null) { + gpsPositionBuilder_.clear(); + } locationCase_ = 0; location_ = null; return this; @@ -62389,49 +61488,24 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Location buildPartial() { context.ContextOuterClass.Location result = new context.ContextOuterClass.Location(this); - if (locationCase_ == 1) { - result.location_ = location_; + if (bitField0_ != 0) { + buildPartial0(result); } - if (locationCase_ == 2) { - if (gpsPositionBuilder_ == null) { - result.location_ = location_; - } else { - result.location_ = gpsPositionBuilder_.build(); - } - } - result.locationCase_ = locationCase_; + buildPartialOneofs(result); onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); + private void buildPartial0(context.ContextOuterClass.Location result) { + int from_bitField0_ = bitField0_; } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartialOneofs(context.ContextOuterClass.Location result) { + result.locationCase_ = locationCase_; + result.location_ = this.location_; + if (locationCase_ == 2 && gpsPositionBuilder_ != null) { + result.location_ = gpsPositionBuilder_.build(); + } } @java.lang.Override @@ -62460,12 +61534,26 @@ public final class ContextOuterClass { mergeGpsPosition(other.getGpsPosition()); break; } + case INTERFACE: + { + locationCase_ = 3; + location_ = other.location_; + onChanged(); + break; + } + case CIRCUIT_PACK: + { + locationCase_ = 4; + location_ = other.location_; + onChanged(); + break; + } case LOCATION_NOT_SET: { break; } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -62477,17 +61565,66 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Location parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + java.lang.String s = input.readStringRequireUtf8(); + locationCase_ = 1; + location_ = s; + break; + } + // case 10 + case 18: + { + input.readMessage(getGpsPositionFieldBuilder().getBuilder(), extensionRegistry); + locationCase_ = 2; + break; + } + // case 18 + case 26: + { + java.lang.String s = input.readStringRequireUtf8(); + locationCase_ = 3; + location_ = s; + break; + } + // case 26 + case 34: + { + java.lang.String s = input.readStringRequireUtf8(); + locationCase_ = 4; + location_ = s; + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Location) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -62506,6 +61643,8 @@ public final class ContextOuterClass { return this; } + private int bitField0_; + /** * <code>string region = 1;</code> * @return Whether the region field is set. @@ -62677,8 +61816,9 @@ public final class ContextOuterClass { } else { if (locationCase_ == 2) { gpsPositionBuilder_.mergeFrom(value); + } else { + gpsPositionBuilder_.setMessage(value); } - gpsPositionBuilder_.setMessage(value); } locationCase_ = 2; return this; @@ -62739,10 +61879,201 @@ public final class ContextOuterClass { } locationCase_ = 2; onChanged(); - ; return gpsPositionBuilder_; } + /** + * <code>string interface = 3;</code> + * @return Whether the interface field is set. + */ + @java.lang.Override + public boolean hasInterface() { + return locationCase_ == 3; + } + + /** + * <code>string interface = 3;</code> + * @return The interface. + */ + @java.lang.Override + public java.lang.String getInterface() { + java.lang.Object ref = ""; + if (locationCase_ == 3) { + ref = location_; + } + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (locationCase_ == 3) { + location_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * <code>string interface = 3;</code> + * @return The bytes for interface. + */ + @java.lang.Override + public com.google.protobuf.ByteString getInterfaceBytes() { + java.lang.Object ref = ""; + if (locationCase_ == 3) { + ref = location_; + } + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + if (locationCase_ == 3) { + location_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * <code>string interface = 3;</code> + * @param value The interface to set. + * @return This builder for chaining. + */ + public Builder setInterface(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + locationCase_ = 3; + location_ = value; + onChanged(); + return this; + } + + /** + * <code>string interface = 3;</code> + * @return This builder for chaining. + */ + public Builder clearInterface() { + if (locationCase_ == 3) { + locationCase_ = 0; + location_ = null; + onChanged(); + } + return this; + } + + /** + * <code>string interface = 3;</code> + * @param value The bytes for interface to set. + * @return This builder for chaining. + */ + public Builder setInterfaceBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + locationCase_ = 3; + location_ = value; + onChanged(); + return this; + } + + /** + * <code>string circuit_pack = 4;</code> + * @return Whether the circuitPack field is set. + */ + @java.lang.Override + public boolean hasCircuitPack() { + return locationCase_ == 4; + } + + /** + * <code>string circuit_pack = 4;</code> + * @return The circuitPack. + */ + @java.lang.Override + public java.lang.String getCircuitPack() { + java.lang.Object ref = ""; + if (locationCase_ == 4) { + ref = location_; + } + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (locationCase_ == 4) { + location_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + + /** + * <code>string circuit_pack = 4;</code> + * @return The bytes for circuitPack. + */ + @java.lang.Override + public com.google.protobuf.ByteString getCircuitPackBytes() { + java.lang.Object ref = ""; + if (locationCase_ == 4) { + ref = location_; + } + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + if (locationCase_ == 4) { + location_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * <code>string circuit_pack = 4;</code> + * @param value The circuitPack to set. + * @return This builder for chaining. + */ + public Builder setCircuitPack(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + locationCase_ = 4; + location_ = value; + onChanged(); + return this; + } + + /** + * <code>string circuit_pack = 4;</code> + * @return This builder for chaining. + */ + public Builder clearCircuitPack() { + if (locationCase_ == 4) { + locationCase_ = 0; + location_ = null; + onChanged(); + } + return this; + } + + /** + * <code>string circuit_pack = 4;</code> + * @param value The bytes for circuitPack to set. + * @return This builder for chaining. + */ + public Builder setCircuitPackBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + locationCase_ = 4; + location_ = value; + onChanged(); + return this; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); @@ -62770,7 +62101,17 @@ public final class ContextOuterClass { @java.lang.Override public Location parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Location(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -62849,70 +62190,6 @@ public final class ContextOuterClass { return new Constraint_EndPointLocation(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Constraint_EndPointLocation(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.EndPointId.Builder subBuilder = null; - if (endpointId_ != null) { - subBuilder = endpointId_.toBuilder(); - } - endpointId_ = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(endpointId_); - endpointId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - context.ContextOuterClass.Location.Builder subBuilder = null; - if (location_ != null) { - subBuilder = location_.toBuilder(); - } - location_ = input.readMessage(context.ContextOuterClass.Location.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(location_); - location_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Constraint_EndPointLocation_descriptor; } @@ -62949,7 +62226,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { - return getEndpointId(); + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; } public static final int LOCATION_FIELD_NUMBER = 2; @@ -62979,7 +62256,7 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.LocationOrBuilder getLocationOrBuilder() { - return getLocation(); + return location_ == null ? context.ContextOuterClass.Location.getDefaultInstance() : location_; } private byte memoizedIsInitialized = -1; @@ -63003,7 +62280,7 @@ public final class ContextOuterClass { if (location_ != null) { output.writeMessage(2, getLocation()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -63018,7 +62295,7 @@ public final class ContextOuterClass { if (location_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getLocation()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -63044,7 +62321,7 @@ public final class ContextOuterClass { if (!getLocation().equals(other.getLocation())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -63064,7 +62341,7 @@ public final class ContextOuterClass { hash = (37 * hash) + LOCATION_FIELD_NUMBER; hash = (53 * hash) + getLocation().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -63158,32 +62435,24 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Constraint_EndPointLocation.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (endpointIdBuilder_ == null) { - endpointId_ = null; - } else { - endpointId_ = null; + bitField0_ = 0; + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); endpointIdBuilder_ = null; } - if (locationBuilder_ == null) { - location_ = null; - } else { - location_ = null; + location_ = null; + if (locationBuilder_ != null) { + locationBuilder_.dispose(); locationBuilder_ = null; } return this; @@ -63211,48 +62480,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Constraint_EndPointLocation buildPartial() { context.ContextOuterClass.Constraint_EndPointLocation result = new context.ContextOuterClass.Constraint_EndPointLocation(this); - if (endpointIdBuilder_ == null) { - result.endpointId_ = endpointId_; - } else { - result.endpointId_ = endpointIdBuilder_.build(); - } - if (locationBuilder_ == null) { - result.location_ = location_; - } else { - result.location_ = locationBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Constraint_EndPointLocation result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.endpointId_ = endpointIdBuilder_ == null ? endpointId_ : endpointIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.location_ = locationBuilder_ == null ? location_ : locationBuilder_.build(); + } } @java.lang.Override @@ -63274,7 +62516,7 @@ public final class ContextOuterClass { if (other.hasLocation()) { mergeLocation(other.getLocation()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -63286,20 +62528,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Constraint_EndPointLocation parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEndpointIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getLocationFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Constraint_EndPointLocation) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.EndPointId endpointId_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> endpointIdBuilder_; @@ -63309,7 +62585,7 @@ public final class ContextOuterClass { * @return Whether the endpointId field is set. */ public boolean hasEndpointId() { - return endpointIdBuilder_ != null || endpointId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -63333,10 +62609,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } endpointId_ = value; - onChanged(); } else { endpointIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -63346,10 +62623,11 @@ public final class ContextOuterClass { public Builder setEndpointId(context.ContextOuterClass.EndPointId.Builder builderForValue) { if (endpointIdBuilder_ == null) { endpointId_ = builderForValue.build(); - onChanged(); } else { endpointIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -63358,15 +62636,16 @@ public final class ContextOuterClass { */ public Builder mergeEndpointId(context.ContextOuterClass.EndPointId value) { if (endpointIdBuilder_ == null) { - if (endpointId_ != null) { - endpointId_ = context.ContextOuterClass.EndPointId.newBuilder(endpointId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && endpointId_ != null && endpointId_ != context.ContextOuterClass.EndPointId.getDefaultInstance()) { + getEndpointIdBuilder().mergeFrom(value); } else { endpointId_ = value; } - onChanged(); } else { endpointIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -63374,13 +62653,13 @@ public final class ContextOuterClass { * <code>.context.EndPointId endpoint_id = 1;</code> */ public Builder clearEndpointId() { - if (endpointIdBuilder_ == null) { - endpointId_ = null; - onChanged(); - } else { - endpointId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); endpointIdBuilder_ = null; } + onChanged(); return this; } @@ -63388,6 +62667,7 @@ public final class ContextOuterClass { * <code>.context.EndPointId endpoint_id = 1;</code> */ public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEndpointIdFieldBuilder().getBuilder(); } @@ -63423,7 +62703,7 @@ public final class ContextOuterClass { * @return Whether the location field is set. */ public boolean hasLocation() { - return locationBuilder_ != null || location_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** @@ -63447,10 +62727,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } location_ = value; - onChanged(); } else { locationBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -63460,10 +62741,11 @@ public final class ContextOuterClass { public Builder setLocation(context.ContextOuterClass.Location.Builder builderForValue) { if (locationBuilder_ == null) { location_ = builderForValue.build(); - onChanged(); } else { locationBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -63472,15 +62754,16 @@ public final class ContextOuterClass { */ public Builder mergeLocation(context.ContextOuterClass.Location value) { if (locationBuilder_ == null) { - if (location_ != null) { - location_ = context.ContextOuterClass.Location.newBuilder(location_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && location_ != null && location_ != context.ContextOuterClass.Location.getDefaultInstance()) { + getLocationBuilder().mergeFrom(value); } else { location_ = value; } - onChanged(); } else { locationBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } @@ -63488,13 +62771,13 @@ public final class ContextOuterClass { * <code>.context.Location location = 2;</code> */ public Builder clearLocation() { - if (locationBuilder_ == null) { - location_ = null; - onChanged(); - } else { - location_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + location_ = null; + if (locationBuilder_ != null) { + locationBuilder_.dispose(); locationBuilder_ = null; } + onChanged(); return this; } @@ -63502,6 +62785,7 @@ public final class ContextOuterClass { * <code>.context.Location location = 2;</code> */ public context.ContextOuterClass.Location.Builder getLocationBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getLocationFieldBuilder().getBuilder(); } @@ -63555,7 +62839,17 @@ public final class ContextOuterClass { @java.lang.Override public Constraint_EndPointLocation parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Constraint_EndPointLocation(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -63623,62 +62917,6 @@ public final class ContextOuterClass { return new Constraint_EndPointPriority(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Constraint_EndPointPriority(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.EndPointId.Builder subBuilder = null; - if (endpointId_ != null) { - subBuilder = endpointId_.toBuilder(); - } - endpointId_ = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(endpointId_); - endpointId_ = subBuilder.buildPartial(); - } - break; - } - case 16: - { - priority_ = input.readUInt32(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Constraint_EndPointPriority_descriptor; } @@ -63715,12 +62953,12 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.EndPointIdOrBuilder getEndpointIdOrBuilder() { - return getEndpointId(); + return endpointId_ == null ? context.ContextOuterClass.EndPointId.getDefaultInstance() : endpointId_; } public static final int PRIORITY_FIELD_NUMBER = 2; - private int priority_; + private int priority_ = 0; /** * <code>uint32 priority = 2;</code> @@ -63752,7 +62990,7 @@ public final class ContextOuterClass { if (priority_ != 0) { output.writeUInt32(2, priority_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -63767,7 +63005,7 @@ public final class ContextOuterClass { if (priority_ != 0) { size += com.google.protobuf.CodedOutputStream.computeUInt32Size(2, priority_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -63789,7 +63027,7 @@ public final class ContextOuterClass { } if (getPriority() != other.getPriority()) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -63807,7 +63045,7 @@ public final class ContextOuterClass { } hash = (37 * hash) + PRIORITY_FIELD_NUMBER; hash = (53 * hash) + getPriority(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -63901,26 +63139,19 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Constraint_EndPointPriority.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (endpointIdBuilder_ == null) { - endpointId_ = null; - } else { - endpointId_ = null; + bitField0_ = 0; + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); endpointIdBuilder_ = null; } priority_ = 0; @@ -63949,44 +63180,21 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Constraint_EndPointPriority buildPartial() { context.ContextOuterClass.Constraint_EndPointPriority result = new context.ContextOuterClass.Constraint_EndPointPriority(this); - if (endpointIdBuilder_ == null) { - result.endpointId_ = endpointId_; - } else { - result.endpointId_ = endpointIdBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } - result.priority_ = priority_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Constraint_EndPointPriority result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.endpointId_ = endpointIdBuilder_ == null ? endpointId_ : endpointIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.priority_ = priority_; + } } @java.lang.Override @@ -64008,7 +63216,7 @@ public final class ContextOuterClass { if (other.getPriority() != 0) { setPriority(other.getPriority()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -64020,20 +63228,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Constraint_EndPointPriority parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEndpointIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + priority_ = input.readUInt32(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Constraint_EndPointPriority) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.EndPointId endpointId_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> endpointIdBuilder_; @@ -64043,7 +63285,7 @@ public final class ContextOuterClass { * @return Whether the endpointId field is set. */ public boolean hasEndpointId() { - return endpointIdBuilder_ != null || endpointId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -64067,10 +63309,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } endpointId_ = value; - onChanged(); } else { endpointIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -64080,10 +63323,11 @@ public final class ContextOuterClass { public Builder setEndpointId(context.ContextOuterClass.EndPointId.Builder builderForValue) { if (endpointIdBuilder_ == null) { endpointId_ = builderForValue.build(); - onChanged(); } else { endpointIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -64092,15 +63336,16 @@ public final class ContextOuterClass { */ public Builder mergeEndpointId(context.ContextOuterClass.EndPointId value) { if (endpointIdBuilder_ == null) { - if (endpointId_ != null) { - endpointId_ = context.ContextOuterClass.EndPointId.newBuilder(endpointId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && endpointId_ != null && endpointId_ != context.ContextOuterClass.EndPointId.getDefaultInstance()) { + getEndpointIdBuilder().mergeFrom(value); } else { endpointId_ = value; } - onChanged(); } else { endpointIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -64108,13 +63353,13 @@ public final class ContextOuterClass { * <code>.context.EndPointId endpoint_id = 1;</code> */ public Builder clearEndpointId() { - if (endpointIdBuilder_ == null) { - endpointId_ = null; - onChanged(); - } else { - endpointId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + endpointId_ = null; + if (endpointIdBuilder_ != null) { + endpointIdBuilder_.dispose(); endpointIdBuilder_ = null; } + onChanged(); return this; } @@ -64122,6 +63367,7 @@ public final class ContextOuterClass { * <code>.context.EndPointId endpoint_id = 1;</code> */ public context.ContextOuterClass.EndPointId.Builder getEndpointIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getEndpointIdFieldBuilder().getBuilder(); } @@ -64166,6 +63412,7 @@ public final class ContextOuterClass { */ public Builder setPriority(int value) { priority_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -64175,6 +63422,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearPriority() { + bitField0_ = (bitField0_ & ~0x00000002); priority_ = 0; onChanged(); return this; @@ -64207,7 +63455,17 @@ public final class ContextOuterClass { @java.lang.Override public Constraint_EndPointPriority parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Constraint_EndPointPriority(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -64258,49 +63516,6 @@ public final class ContextOuterClass { return new Constraint_SLA_Latency(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Constraint_SLA_Latency(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 13: - { - e2ELatencyMs_ = input.readFloat(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Constraint_SLA_Latency_descriptor; } @@ -64312,7 +63527,7 @@ public final class ContextOuterClass { public static final int E2E_LATENCY_MS_FIELD_NUMBER = 1; - private float e2ELatencyMs_; + private float e2ELatencyMs_ = 0F; /** * <code>float e2e_latency_ms = 1;</code> @@ -64338,10 +63553,10 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (e2ELatencyMs_ != 0F) { + if (java.lang.Float.floatToRawIntBits(e2ELatencyMs_) != 0) { output.writeFloat(1, e2ELatencyMs_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -64350,10 +63565,10 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (e2ELatencyMs_ != 0F) { + if (java.lang.Float.floatToRawIntBits(e2ELatencyMs_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, e2ELatencyMs_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -64369,7 +63584,7 @@ public final class ContextOuterClass { context.ContextOuterClass.Constraint_SLA_Latency other = (context.ContextOuterClass.Constraint_SLA_Latency) obj; if (java.lang.Float.floatToIntBits(getE2ELatencyMs()) != java.lang.Float.floatToIntBits(other.getE2ELatencyMs())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -64383,7 +63598,7 @@ public final class ContextOuterClass { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + E2E_LATENCY_MS_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits(getE2ELatencyMs()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -64477,22 +63692,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Constraint_SLA_Latency.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; e2ELatencyMs_ = 0F; return this; } @@ -64519,39 +63728,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Constraint_SLA_Latency buildPartial() { context.ContextOuterClass.Constraint_SLA_Latency result = new context.ContextOuterClass.Constraint_SLA_Latency(this); - result.e2ELatencyMs_ = e2ELatencyMs_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Constraint_SLA_Latency result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.e2ELatencyMs_ = e2ELatencyMs_; + } } @java.lang.Override @@ -64570,7 +63758,7 @@ public final class ContextOuterClass { if (other.getE2ELatencyMs() != 0F) { setE2ELatencyMs(other.getE2ELatencyMs()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -64582,20 +63770,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Constraint_SLA_Latency parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 13: + { + e2ELatencyMs_ = input.readFloat(); + bitField0_ |= 0x00000001; + break; + } + // case 13 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Constraint_SLA_Latency) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private float e2ELatencyMs_; /** @@ -64614,6 +63829,7 @@ public final class ContextOuterClass { */ public Builder setE2ELatencyMs(float value) { e2ELatencyMs_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -64623,6 +63839,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearE2ELatencyMs() { + bitField0_ = (bitField0_ & ~0x00000001); e2ELatencyMs_ = 0F; onChanged(); return this; @@ -64655,7 +63872,17 @@ public final class ContextOuterClass { @java.lang.Override public Constraint_SLA_Latency parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Constraint_SLA_Latency(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -64706,49 +63933,6 @@ public final class ContextOuterClass { return new Constraint_SLA_Capacity(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Constraint_SLA_Capacity(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 13: - { - capacityGbps_ = input.readFloat(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Constraint_SLA_Capacity_descriptor; } @@ -64760,7 +63944,7 @@ public final class ContextOuterClass { public static final int CAPACITY_GBPS_FIELD_NUMBER = 1; - private float capacityGbps_; + private float capacityGbps_ = 0F; /** * <code>float capacity_gbps = 1;</code> @@ -64786,10 +63970,10 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (capacityGbps_ != 0F) { + if (java.lang.Float.floatToRawIntBits(capacityGbps_) != 0) { output.writeFloat(1, capacityGbps_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -64798,10 +63982,10 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (capacityGbps_ != 0F) { + if (java.lang.Float.floatToRawIntBits(capacityGbps_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, capacityGbps_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -64817,7 +64001,7 @@ public final class ContextOuterClass { context.ContextOuterClass.Constraint_SLA_Capacity other = (context.ContextOuterClass.Constraint_SLA_Capacity) obj; if (java.lang.Float.floatToIntBits(getCapacityGbps()) != java.lang.Float.floatToIntBits(other.getCapacityGbps())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -64831,7 +64015,7 @@ public final class ContextOuterClass { hash = (19 * hash) + getDescriptor().hashCode(); hash = (37 * hash) + CAPACITY_GBPS_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits(getCapacityGbps()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -64925,22 +64109,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Constraint_SLA_Capacity.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; capacityGbps_ = 0F; return this; } @@ -64967,39 +64145,18 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Constraint_SLA_Capacity buildPartial() { context.ContextOuterClass.Constraint_SLA_Capacity result = new context.ContextOuterClass.Constraint_SLA_Capacity(this); - result.capacityGbps_ = capacityGbps_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Constraint_SLA_Capacity result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.capacityGbps_ = capacityGbps_; + } } @java.lang.Override @@ -65018,7 +64175,7 @@ public final class ContextOuterClass { if (other.getCapacityGbps() != 0F) { setCapacityGbps(other.getCapacityGbps()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -65030,20 +64187,47 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Constraint_SLA_Capacity parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 13: + { + capacityGbps_ = input.readFloat(); + bitField0_ |= 0x00000001; + break; + } + // case 13 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Constraint_SLA_Capacity) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private float capacityGbps_; /** @@ -65062,6 +64246,7 @@ public final class ContextOuterClass { */ public Builder setCapacityGbps(float value) { capacityGbps_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -65071,6 +64256,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearCapacityGbps() { + bitField0_ = (bitField0_ & ~0x00000001); capacityGbps_ = 0F; onChanged(); return this; @@ -65103,7 +64289,17 @@ public final class ContextOuterClass { @java.lang.Override public Constraint_SLA_Capacity parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Constraint_SLA_Capacity(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -65170,59 +64366,6 @@ public final class ContextOuterClass { return new Constraint_SLA_Availability(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Constraint_SLA_Availability(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - numDisjointPaths_ = input.readUInt32(); - break; - } - case 16: - { - allActive_ = input.readBool(); - break; - } - case 29: - { - availability_ = input.readFloat(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Constraint_SLA_Availability_descriptor; } @@ -65234,7 +64377,7 @@ public final class ContextOuterClass { public static final int NUM_DISJOINT_PATHS_FIELD_NUMBER = 1; - private int numDisjointPaths_; + private int numDisjointPaths_ = 0; /** * <code>uint32 num_disjoint_paths = 1;</code> @@ -65247,7 +64390,7 @@ public final class ContextOuterClass { public static final int ALL_ACTIVE_FIELD_NUMBER = 2; - private boolean allActive_; + private boolean allActive_ = false; /** * <code>bool all_active = 2;</code> @@ -65260,7 +64403,7 @@ public final class ContextOuterClass { public static final int AVAILABILITY_FIELD_NUMBER = 3; - private float availability_; + private float availability_ = 0F; /** * <pre> @@ -65296,10 +64439,10 @@ public final class ContextOuterClass { if (allActive_ != false) { output.writeBool(2, allActive_); } - if (availability_ != 0F) { + if (java.lang.Float.floatToRawIntBits(availability_) != 0) { output.writeFloat(3, availability_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -65314,10 +64457,10 @@ public final class ContextOuterClass { if (allActive_ != false) { size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, allActive_); } - if (availability_ != 0F) { + if (java.lang.Float.floatToRawIntBits(availability_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(3, availability_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -65337,7 +64480,7 @@ public final class ContextOuterClass { return false; if (java.lang.Float.floatToIntBits(getAvailability()) != java.lang.Float.floatToIntBits(other.getAvailability())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -65355,7 +64498,7 @@ public final class ContextOuterClass { hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAllActive()); hash = (37 * hash) + AVAILABILITY_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits(getAvailability()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -65449,22 +64592,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Constraint_SLA_Availability.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; numDisjointPaths_ = 0; allActive_ = false; availability_ = 0F; @@ -65493,41 +64630,24 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Constraint_SLA_Availability buildPartial() { context.ContextOuterClass.Constraint_SLA_Availability result = new context.ContextOuterClass.Constraint_SLA_Availability(this); - result.numDisjointPaths_ = numDisjointPaths_; - result.allActive_ = allActive_; - result.availability_ = availability_; + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Constraint_SLA_Availability result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.numDisjointPaths_ = numDisjointPaths_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.allActive_ = allActive_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.availability_ = availability_; + } } @java.lang.Override @@ -65552,7 +64672,7 @@ public final class ContextOuterClass { if (other.getAvailability() != 0F) { setAvailability(other.getAvailability()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -65564,20 +64684,61 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Constraint_SLA_Availability parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + numDisjointPaths_ = input.readUInt32(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 16: + { + allActive_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + case 29: + { + availability_ = input.readFloat(); + bitField0_ |= 0x00000004; + break; + } + // case 29 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Constraint_SLA_Availability) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private int numDisjointPaths_; /** @@ -65596,6 +64757,7 @@ public final class ContextOuterClass { */ public Builder setNumDisjointPaths(int value) { numDisjointPaths_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -65605,6 +64767,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearNumDisjointPaths() { + bitField0_ = (bitField0_ & ~0x00000001); numDisjointPaths_ = 0; onChanged(); return this; @@ -65628,6 +64791,7 @@ public final class ContextOuterClass { */ public Builder setAllActive(boolean value) { allActive_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -65637,6 +64801,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearAllActive() { + bitField0_ = (bitField0_ & ~0x00000002); allActive_ = false; onChanged(); return this; @@ -65668,6 +64833,7 @@ public final class ContextOuterClass { */ public Builder setAvailability(float value) { availability_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -65681,6 +64847,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearAvailability() { + bitField0_ = (bitField0_ & ~0x00000004); availability_ = 0F; onChanged(); return this; @@ -65713,7 +64880,17 @@ public final class ContextOuterClass { @java.lang.Override public Constraint_SLA_Availability parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Constraint_SLA_Availability(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -65791,73 +64968,6 @@ public final class ContextOuterClass { return new Constraint_SLA_Isolation_level(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Constraint_SLA_Isolation_level(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - int rawValue = input.readEnum(); - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - isolationLevel_ = new java.util.ArrayList<java.lang.Integer>(); - mutable_bitField0_ |= 0x00000001; - } - isolationLevel_.add(rawValue); - break; - } - case 10: - { - int length = input.readRawVarint32(); - int oldLimit = input.pushLimit(length); - while (input.getBytesUntilLimit() > 0) { - int rawValue = input.readEnum(); - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - isolationLevel_ = new java.util.ArrayList<java.lang.Integer>(); - mutable_bitField0_ |= 0x00000001; - } - isolationLevel_.add(rawValue); - } - input.popLimit(oldLimit); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - isolationLevel_ = java.util.Collections.unmodifiableList(isolationLevel_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Constraint_SLA_Isolation_level_descriptor; } @@ -65869,13 +64979,13 @@ public final class ContextOuterClass { public static final int ISOLATION_LEVEL_FIELD_NUMBER = 1; + @SuppressWarnings("serial") private java.util.List<java.lang.Integer> isolationLevel_; private static final com.google.protobuf.Internal.ListAdapter.Converter<java.lang.Integer, context.ContextOuterClass.IsolationLevelEnum> isolationLevel_converter_ = new com.google.protobuf.Internal.ListAdapter.Converter<java.lang.Integer, context.ContextOuterClass.IsolationLevelEnum>() { public context.ContextOuterClass.IsolationLevelEnum convert(java.lang.Integer from) { - @SuppressWarnings("deprecation") - context.ContextOuterClass.IsolationLevelEnum result = context.ContextOuterClass.IsolationLevelEnum.valueOf(from); + context.ContextOuterClass.IsolationLevelEnum result = context.ContextOuterClass.IsolationLevelEnum.forNumber(from); return result == null ? context.ContextOuterClass.IsolationLevelEnum.UNRECOGNIZED : result; } }; @@ -65952,7 +65062,7 @@ public final class ContextOuterClass { for (int i = 0; i < isolationLevel_.size(); i++) { output.writeEnumNoTag(isolationLevel_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -65973,7 +65083,7 @@ public final class ContextOuterClass { } isolationLevelMemoizedSerializedSize = dataSize; } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -65989,7 +65099,7 @@ public final class ContextOuterClass { context.ContextOuterClass.Constraint_SLA_Isolation_level other = (context.ContextOuterClass.Constraint_SLA_Isolation_level) obj; if (!isolationLevel_.equals(other.isolationLevel_)) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -66005,7 +65115,7 @@ public final class ContextOuterClass { hash = (37 * hash) + ISOLATION_LEVEL_FIELD_NUMBER; hash = (53 * hash) + isolationLevel_.hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -66099,22 +65209,16 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; isolationLevel_ = java.util.Collections.emptyList(); bitField0_ = (bitField0_ & ~0x00000001); return this; @@ -66142,44 +65246,24 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Constraint_SLA_Isolation_level buildPartial() { context.ContextOuterClass.Constraint_SLA_Isolation_level result = new context.ContextOuterClass.Constraint_SLA_Isolation_level(this); - int from_bitField0_ = bitField0_; - if (((bitField0_ & 0x00000001) != 0)) { - isolationLevel_ = java.util.Collections.unmodifiableList(isolationLevel_); - bitField0_ = (bitField0_ & ~0x00000001); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } - result.isolationLevel_ = isolationLevel_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); + private void buildPartialRepeatedFields(context.ContextOuterClass.Constraint_SLA_Isolation_level result) { + if (((bitField0_ & 0x00000001) != 0)) { + isolationLevel_ = java.util.Collections.unmodifiableList(isolationLevel_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.isolationLevel_ = isolationLevel_; } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Constraint_SLA_Isolation_level result) { + int from_bitField0_ = bitField0_; } @java.lang.Override @@ -66205,7 +65289,7 @@ public final class ContextOuterClass { } onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -66217,17 +65301,56 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Constraint_SLA_Isolation_level parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + int tmpRaw = input.readEnum(); + ensureIsolationLevelIsMutable(); + isolationLevel_.add(tmpRaw); + break; + } + // case 8 + case 10: + { + int length = input.readRawVarint32(); + int oldLimit = input.pushLimit(length); + while (input.getBytesUntilLimit() > 0) { + int tmpRaw = input.readEnum(); + ensureIsolationLevelIsMutable(); + isolationLevel_.add(tmpRaw); + } + input.popLimit(oldLimit); + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Constraint_SLA_Isolation_level) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -66342,8 +65465,8 @@ public final class ContextOuterClass { /** * <code>repeated .context.IsolationLevelEnum isolation_level = 1;</code> - * @param index The index of the value to return. - * @return The enum numeric value on the wire of isolationLevel at the given index. + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for isolationLevel to set. * @return This builder for chaining. */ public Builder setIsolationLevelValue(int index, int value) { @@ -66406,7 +65529,17 @@ public final class ContextOuterClass { @java.lang.Override public Constraint_SLA_Isolation_level parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Constraint_SLA_Isolation_level(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -66535,86 +65668,6 @@ public final class ContextOuterClass { return new Constraint_Exclusions(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Constraint_Exclusions(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - isPermanent_ = input.readBool(); - break; - } - case 18: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - deviceIds_ = new java.util.ArrayList<context.ContextOuterClass.DeviceId>(); - mutable_bitField0_ |= 0x00000001; - } - deviceIds_.add(input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry)); - break; - } - case 26: - { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - endpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(); - mutable_bitField0_ |= 0x00000002; - } - endpointIds_.add(input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry)); - break; - } - case 34: - { - if (!((mutable_bitField0_ & 0x00000004) != 0)) { - linkIds_ = new java.util.ArrayList<context.ContextOuterClass.LinkId>(); - mutable_bitField0_ |= 0x00000004; - } - linkIds_.add(input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - endpointIds_ = java.util.Collections.unmodifiableList(endpointIds_); - } - if (((mutable_bitField0_ & 0x00000004) != 0)) { - linkIds_ = java.util.Collections.unmodifiableList(linkIds_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return context.ContextOuterClass.internal_static_context_Constraint_Exclusions_descriptor; } @@ -66626,7 +65679,7 @@ public final class ContextOuterClass { public static final int IS_PERMANENT_FIELD_NUMBER = 1; - private boolean isPermanent_; + private boolean isPermanent_ = false; /** * <code>bool is_permanent = 1;</code> @@ -66639,6 +65692,7 @@ public final class ContextOuterClass { public static final int DEVICE_IDS_FIELD_NUMBER = 2; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.DeviceId> deviceIds_; /** @@ -66683,6 +65737,7 @@ public final class ContextOuterClass { public static final int ENDPOINT_IDS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.EndPointId> endpointIds_; /** @@ -66727,6 +65782,7 @@ public final class ContextOuterClass { public static final int LINK_IDS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") private java.util.List<context.ContextOuterClass.LinkId> linkIds_; /** @@ -66796,7 +65852,7 @@ public final class ContextOuterClass { for (int i = 0; i < linkIds_.size(); i++) { output.writeMessage(4, linkIds_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -66817,7 +65873,7 @@ public final class ContextOuterClass { for (int i = 0; i < linkIds_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, linkIds_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -66839,7 +65895,7 @@ public final class ContextOuterClass { return false; if (!getLinkIdsList().equals(other.getLinkIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -66865,7 +65921,7 @@ public final class ContextOuterClass { hash = (37 * hash) + LINK_IDS_FIELD_NUMBER; hash = (53 * hash) + getLinkIdsList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -66959,44 +66015,38 @@ public final class ContextOuterClass { // Construct using context.ContextOuterClass.Constraint_Exclusions.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getDeviceIdsFieldBuilder(); - getEndpointIdsFieldBuilder(); - getLinkIdsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); + bitField0_ = 0; isPermanent_ = false; if (deviceIdsBuilder_ == null) { deviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); } else { + deviceIds_ = null; deviceIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000002); if (endpointIdsBuilder_ == null) { endpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); } else { + endpointIds_ = null; endpointIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000004); if (linkIdsBuilder_ == null) { linkIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); } else { + linkIds_ = null; linkIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000008); return this; } @@ -67022,67 +66072,49 @@ public final class ContextOuterClass { @java.lang.Override public context.ContextOuterClass.Constraint_Exclusions buildPartial() { context.ContextOuterClass.Constraint_Exclusions result = new context.ContextOuterClass.Constraint_Exclusions(this); - int from_bitField0_ = bitField0_; - result.isPermanent_ = isPermanent_; + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.Constraint_Exclusions result) { if (deviceIdsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { + if (((bitField0_ & 0x00000002) != 0)) { deviceIds_ = java.util.Collections.unmodifiableList(deviceIds_); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); } result.deviceIds_ = deviceIds_; } else { result.deviceIds_ = deviceIdsBuilder_.build(); } if (endpointIdsBuilder_ == null) { - if (((bitField0_ & 0x00000002) != 0)) { + if (((bitField0_ & 0x00000004) != 0)) { endpointIds_ = java.util.Collections.unmodifiableList(endpointIds_); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000004); } result.endpointIds_ = endpointIds_; } else { result.endpointIds_ = endpointIdsBuilder_.build(); } if (linkIdsBuilder_ == null) { - if (((bitField0_ & 0x00000004) != 0)) { + if (((bitField0_ & 0x00000008) != 0)) { linkIds_ = java.util.Collections.unmodifiableList(linkIds_); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); } result.linkIds_ = linkIds_; } else { result.linkIds_ = linkIdsBuilder_.build(); } - onBuilt(); - return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Constraint_Exclusions result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.isPermanent_ = isPermanent_; + } } @java.lang.Override @@ -67105,7 +66137,7 @@ public final class ContextOuterClass { if (!other.deviceIds_.isEmpty()) { if (deviceIds_.isEmpty()) { deviceIds_ = other.deviceIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); } else { ensureDeviceIdsIsMutable(); deviceIds_.addAll(other.deviceIds_); @@ -67118,7 +66150,7 @@ public final class ContextOuterClass { deviceIdsBuilder_.dispose(); deviceIdsBuilder_ = null; deviceIds_ = other.deviceIds_; - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); deviceIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getDeviceIdsFieldBuilder() : null; } else { deviceIdsBuilder_.addAllMessages(other.deviceIds_); @@ -67129,7 +66161,7 @@ public final class ContextOuterClass { if (!other.endpointIds_.isEmpty()) { if (endpointIds_.isEmpty()) { endpointIds_ = other.endpointIds_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000004); } else { ensureEndpointIdsIsMutable(); endpointIds_.addAll(other.endpointIds_); @@ -67142,7 +66174,7 @@ public final class ContextOuterClass { endpointIdsBuilder_.dispose(); endpointIdsBuilder_ = null; endpointIds_ = other.endpointIds_; - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000004); endpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getEndpointIdsFieldBuilder() : null; } else { endpointIdsBuilder_.addAllMessages(other.endpointIds_); @@ -67153,7 +66185,7 @@ public final class ContextOuterClass { if (!other.linkIds_.isEmpty()) { if (linkIds_.isEmpty()) { linkIds_ = other.linkIds_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); } else { ensureLinkIdsIsMutable(); linkIds_.addAll(other.linkIds_); @@ -67166,14 +66198,14 @@ public final class ContextOuterClass { linkIdsBuilder_.dispose(); linkIdsBuilder_ = null; linkIds_ = other.linkIds_; - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); linkIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinkIdsFieldBuilder() : null; } else { linkIdsBuilder_.addAllMessages(other.linkIds_); } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -67185,17 +66217,78 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Constraint_Exclusions parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + isPermanent_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 18: + { + context.ContextOuterClass.DeviceId m = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); + if (deviceIdsBuilder_ == null) { + ensureDeviceIdsIsMutable(); + deviceIds_.add(m); + } else { + deviceIdsBuilder_.addMessage(m); + } + break; + } + // case 18 + case 26: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (endpointIdsBuilder_ == null) { + ensureEndpointIdsIsMutable(); + endpointIds_.add(m); + } else { + endpointIdsBuilder_.addMessage(m); + } + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.LinkId m = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry); + if (linkIdsBuilder_ == null) { + ensureLinkIdsIsMutable(); + linkIds_.add(m); + } else { + linkIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Constraint_Exclusions) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } @@ -67219,6 +66312,7 @@ public final class ContextOuterClass { */ public Builder setIsPermanent(boolean value) { isPermanent_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -67228,6 +66322,7 @@ public final class ContextOuterClass { * @return This builder for chaining. */ public Builder clearIsPermanent() { + bitField0_ = (bitField0_ & ~0x00000001); isPermanent_ = false; onChanged(); return this; @@ -67236,9 +66331,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.DeviceId> deviceIds_ = java.util.Collections.emptyList(); private void ensureDeviceIdsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { + if (!((bitField0_ & 0x00000002) != 0)) { deviceIds_ = new java.util.ArrayList<context.ContextOuterClass.DeviceId>(deviceIds_); - bitField0_ |= 0x00000001; + bitField0_ |= 0x00000002; } } @@ -67390,7 +66485,7 @@ public final class ContextOuterClass { public Builder clearDeviceIds() { if (deviceIdsBuilder_ == null) { deviceIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); } else { deviceIdsBuilder_.clear(); @@ -67464,7 +66559,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdsFieldBuilder() { if (deviceIdsBuilder_ == null) { - deviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>(deviceIds_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + deviceIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>(deviceIds_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); deviceIds_ = null; } return deviceIdsBuilder_; @@ -67473,9 +66568,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.EndPointId> endpointIds_ = java.util.Collections.emptyList(); private void ensureEndpointIdsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { + if (!((bitField0_ & 0x00000004) != 0)) { endpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(endpointIds_); - bitField0_ |= 0x00000002; + bitField0_ |= 0x00000004; } } @@ -67627,7 +66722,7 @@ public final class ContextOuterClass { public Builder clearEndpointIds() { if (endpointIdsBuilder_ == null) { endpointIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000002); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); } else { endpointIdsBuilder_.clear(); @@ -67701,7 +66796,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> getEndpointIdsFieldBuilder() { if (endpointIdsBuilder_ == null) { - endpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(endpointIds_, ((bitField0_ & 0x00000002) != 0), getParentForChildren(), isClean()); + endpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(endpointIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); endpointIds_ = null; } return endpointIdsBuilder_; @@ -67710,9 +66805,9 @@ public final class ContextOuterClass { private java.util.List<context.ContextOuterClass.LinkId> linkIds_ = java.util.Collections.emptyList(); private void ensureLinkIdsIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { + if (!((bitField0_ & 0x00000008) != 0)) { linkIds_ = new java.util.ArrayList<context.ContextOuterClass.LinkId>(linkIds_); - bitField0_ |= 0x00000004; + bitField0_ |= 0x00000008; } } @@ -67864,7 +66959,7 @@ public final class ContextOuterClass { public Builder clearLinkIds() { if (linkIdsBuilder_ == null) { linkIds_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000004); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { linkIdsBuilder_.clear(); @@ -67938,7 +67033,7 @@ public final class ContextOuterClass { private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> getLinkIdsFieldBuilder() { if (linkIdsBuilder_ == null) { - linkIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>(linkIds_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), isClean()); + linkIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>(linkIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); linkIds_ = null; } return linkIdsBuilder_; @@ -67971,7 +67066,17 @@ public final class ContextOuterClass { @java.lang.Override public Constraint_Exclusions parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Constraint_Exclusions(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; @@ -67990,776 +67095,676 @@ public final class ContextOuterClass { } } - public interface ConstraintOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Constraint) + public interface QoSProfileIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.QoSProfileId) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The enum numeric value on the wire for action. - */ - int getActionValue(); - - /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The action. - */ - context.ContextOuterClass.ConstraintActionEnum getAction(); - - /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return Whether the custom field is set. - */ - boolean hasCustom(); - - /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return The custom. - */ - context.ContextOuterClass.Constraint_Custom getCustom(); - - /** - * <code>.context.Constraint_Custom custom = 2;</code> - */ - context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder(); - - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return Whether the schedule field is set. - */ - boolean hasSchedule(); - - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return The schedule. - */ - context.ContextOuterClass.Constraint_Schedule getSchedule(); - - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - */ - context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder(); - - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return Whether the endpointLocation field is set. - */ - boolean hasEndpointLocation(); - - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return The endpointLocation. - */ - context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation(); - - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder(); - - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return Whether the endpointPriority field is set. - */ - boolean hasEndpointPriority(); - - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return The endpointPriority. - */ - context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority(); - - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - */ - context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder(); - - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return Whether the slaCapacity field is set. - */ - boolean hasSlaCapacity(); - - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return The slaCapacity. - */ - context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity(); - - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - */ - context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder(); - - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return Whether the slaLatency field is set. - */ - boolean hasSlaLatency(); - - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return The slaLatency. - */ - context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency(); - - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - */ - context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder(); - - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return Whether the slaAvailability field is set. - */ - boolean hasSlaAvailability(); - - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return The slaAvailability. - */ - context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability(); - - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder(); - - /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return Whether the slaIsolation field is set. - */ - boolean hasSlaIsolation(); - - /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return The slaIsolation. - */ - context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation(); - - /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - */ - context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder(); - - /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return Whether the exclusions field is set. + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. */ - boolean hasExclusions(); + boolean hasQosProfileId(); /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return The exclusions. + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return The qosProfileId. */ - context.ContextOuterClass.Constraint_Exclusions getExclusions(); + context.ContextOuterClass.Uuid getQosProfileId(); /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>.context.Uuid qos_profile_id = 1;</code> */ - context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder(); - - public context.ContextOuterClass.Constraint.ConstraintCase getConstraintCase(); + context.ContextOuterClass.UuidOrBuilder getQosProfileIdOrBuilder(); } /** - * Protobuf type {@code context.Constraint} + * Protobuf type {@code context.QoSProfileId} */ - public static final class Constraint extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Constraint) - ConstraintOrBuilder { + public static final class QoSProfileId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.QoSProfileId) + QoSProfileIdOrBuilder { private static final long serialVersionUID = 0L; - // Use Constraint.newBuilder() to construct. - private Constraint(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use QoSProfileId.newBuilder() to construct. + private QoSProfileId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private Constraint() { - action_ = 0; + private QoSProfileId() { } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new Constraint(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private Constraint(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 8: - { - int rawValue = input.readEnum(); - action_ = rawValue; - break; - } - case 18: - { - context.ContextOuterClass.Constraint_Custom.Builder subBuilder = null; - if (constraintCase_ == 2) { - subBuilder = ((context.ContextOuterClass.Constraint_Custom) constraint_).toBuilder(); - } - constraint_ = input.readMessage(context.ContextOuterClass.Constraint_Custom.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.Constraint_Custom) constraint_); - constraint_ = subBuilder.buildPartial(); - } - constraintCase_ = 2; - break; - } - case 26: - { - context.ContextOuterClass.Constraint_Schedule.Builder subBuilder = null; - if (constraintCase_ == 3) { - subBuilder = ((context.ContextOuterClass.Constraint_Schedule) constraint_).toBuilder(); - } - constraint_ = input.readMessage(context.ContextOuterClass.Constraint_Schedule.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.Constraint_Schedule) constraint_); - constraint_ = subBuilder.buildPartial(); - } - constraintCase_ = 3; - break; - } - case 34: - { - context.ContextOuterClass.Constraint_EndPointLocation.Builder subBuilder = null; - if (constraintCase_ == 4) { - subBuilder = ((context.ContextOuterClass.Constraint_EndPointLocation) constraint_).toBuilder(); - } - constraint_ = input.readMessage(context.ContextOuterClass.Constraint_EndPointLocation.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.Constraint_EndPointLocation) constraint_); - constraint_ = subBuilder.buildPartial(); - } - constraintCase_ = 4; - break; - } - case 42: - { - context.ContextOuterClass.Constraint_EndPointPriority.Builder subBuilder = null; - if (constraintCase_ == 5) { - subBuilder = ((context.ContextOuterClass.Constraint_EndPointPriority) constraint_).toBuilder(); - } - constraint_ = input.readMessage(context.ContextOuterClass.Constraint_EndPointPriority.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.Constraint_EndPointPriority) constraint_); - constraint_ = subBuilder.buildPartial(); - } - constraintCase_ = 5; - break; - } - case 50: - { - context.ContextOuterClass.Constraint_SLA_Capacity.Builder subBuilder = null; - if (constraintCase_ == 6) { - subBuilder = ((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_).toBuilder(); - } - constraint_ = input.readMessage(context.ContextOuterClass.Constraint_SLA_Capacity.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_); - constraint_ = subBuilder.buildPartial(); - } - constraintCase_ = 6; - break; - } - case 58: - { - context.ContextOuterClass.Constraint_SLA_Latency.Builder subBuilder = null; - if (constraintCase_ == 7) { - subBuilder = ((context.ContextOuterClass.Constraint_SLA_Latency) constraint_).toBuilder(); - } - constraint_ = input.readMessage(context.ContextOuterClass.Constraint_SLA_Latency.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.Constraint_SLA_Latency) constraint_); - constraint_ = subBuilder.buildPartial(); - } - constraintCase_ = 7; - break; - } - case 66: - { - context.ContextOuterClass.Constraint_SLA_Availability.Builder subBuilder = null; - if (constraintCase_ == 8) { - subBuilder = ((context.ContextOuterClass.Constraint_SLA_Availability) constraint_).toBuilder(); - } - constraint_ = input.readMessage(context.ContextOuterClass.Constraint_SLA_Availability.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.Constraint_SLA_Availability) constraint_); - constraint_ = subBuilder.buildPartial(); - } - constraintCase_ = 8; - break; - } - case 74: - { - context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder subBuilder = null; - if (constraintCase_ == 9) { - subBuilder = ((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_).toBuilder(); - } - constraint_ = input.readMessage(context.ContextOuterClass.Constraint_SLA_Isolation_level.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_); - constraint_ = subBuilder.buildPartial(); - } - constraintCase_ = 9; - break; - } - case 82: - { - context.ContextOuterClass.Constraint_Exclusions.Builder subBuilder = null; - if (constraintCase_ == 10) { - subBuilder = ((context.ContextOuterClass.Constraint_Exclusions) constraint_).toBuilder(); - } - constraint_ = input.readMessage(context.ContextOuterClass.Constraint_Exclusions.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom((context.ContextOuterClass.Constraint_Exclusions) constraint_); - constraint_ = subBuilder.buildPartial(); - } - constraintCase_ = 10; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } + return new QoSProfileId(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + return context.ContextOuterClass.internal_static_context_QoSProfileId_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Constraint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint.class, context.ContextOuterClass.Constraint.Builder.class); - } - - private int constraintCase_ = 0; - - private java.lang.Object constraint_; - - public enum ConstraintCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { - - CUSTOM(2), - SCHEDULE(3), - ENDPOINT_LOCATION(4), - ENDPOINT_PRIORITY(5), - SLA_CAPACITY(6), - SLA_LATENCY(7), - SLA_AVAILABILITY(8), - SLA_ISOLATION(9), - EXCLUSIONS(10), - CONSTRAINT_NOT_SET(0); - - private final int value; - - private ConstraintCase(int value) { - this.value = value; - } - - /** - * @param value The number of the enum to look for. - * @return The enum associated with the given number. - * @deprecated Use {@link #forNumber(int)} instead. - */ - @java.lang.Deprecated - public static ConstraintCase valueOf(int value) { - return forNumber(value); - } - - public static ConstraintCase forNumber(int value) { - switch(value) { - case 2: - return CUSTOM; - case 3: - return SCHEDULE; - case 4: - return ENDPOINT_LOCATION; - case 5: - return ENDPOINT_PRIORITY; - case 6: - return SLA_CAPACITY; - case 7: - return SLA_LATENCY; - case 8: - return SLA_AVAILABILITY; - case 9: - return SLA_ISOLATION; - case 10: - return EXCLUSIONS; - case 0: - return CONSTRAINT_NOT_SET; - default: - return null; - } - } - - public int getNumber() { - return this.value; - } - } - - public ConstraintCase getConstraintCase() { - return ConstraintCase.forNumber(constraintCase_); + return context.ContextOuterClass.internal_static_context_QoSProfileId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.QoSProfileId.class, context.ContextOuterClass.QoSProfileId.Builder.class); } - public static final int ACTION_FIELD_NUMBER = 1; + public static final int QOS_PROFILE_ID_FIELD_NUMBER = 1; - private int action_; + private context.ContextOuterClass.Uuid qosProfileId_; /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The enum numeric value on the wire for action. + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. */ @java.lang.Override - public int getActionValue() { - return action_; + public boolean hasQosProfileId() { + return qosProfileId_ != null; } /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The action. + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return The qosProfileId. */ @java.lang.Override - public context.ContextOuterClass.ConstraintActionEnum getAction() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.ConstraintActionEnum result = context.ContextOuterClass.ConstraintActionEnum.valueOf(action_); - return result == null ? context.ContextOuterClass.ConstraintActionEnum.UNRECOGNIZED : result; + public context.ContextOuterClass.Uuid getQosProfileId() { + return qosProfileId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : qosProfileId_; } - public static final int CUSTOM_FIELD_NUMBER = 2; - /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return Whether the custom field is set. + * <code>.context.Uuid qos_profile_id = 1;</code> */ @java.lang.Override - public boolean hasCustom() { - return constraintCase_ == 2; + public context.ContextOuterClass.UuidOrBuilder getQosProfileIdOrBuilder() { + return qosProfileId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : qosProfileId_; } - /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return The custom. - */ + private byte memoizedIsInitialized = -1; + @java.lang.Override - public context.ContextOuterClass.Constraint_Custom getCustom() { - if (constraintCase_ == 2) { - return (context.ContextOuterClass.Constraint_Custom) constraint_; - } - return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; } - /** - * <code>.context.Constraint_Custom custom = 2;</code> - */ @java.lang.Override - public context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder() { - if (constraintCase_ == 2) { - return (context.ContextOuterClass.Constraint_Custom) constraint_; + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (qosProfileId_ != null) { + output.writeMessage(1, getQosProfileId()); } - return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + getUnknownFields().writeTo(output); } - public static final int SCHEDULE_FIELD_NUMBER = 3; - - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return Whether the schedule field is set. - */ @java.lang.Override - public boolean hasSchedule() { - return constraintCase_ == 3; + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (qosProfileId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getQosProfileId()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; } - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return The schedule. - */ @java.lang.Override - public context.ContextOuterClass.Constraint_Schedule getSchedule() { - if (constraintCase_ == 3) { - return (context.ContextOuterClass.Constraint_Schedule) constraint_; + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; } - return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + if (!(obj instanceof context.ContextOuterClass.QoSProfileId)) { + return super.equals(obj); + } + context.ContextOuterClass.QoSProfileId other = (context.ContextOuterClass.QoSProfileId) obj; + if (hasQosProfileId() != other.hasQosProfileId()) + return false; + if (hasQosProfileId()) { + if (!getQosProfileId().equals(other.getQosProfileId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; } - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - */ @java.lang.Override - public context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder() { - if (constraintCase_ == 3) { - return (context.ContextOuterClass.Constraint_Schedule) constraint_; + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; } - return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasQosProfileId()) { + hash = (37 * hash) + QOS_PROFILE_ID_FIELD_NUMBER; + hash = (53 * hash) + getQosProfileId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; } - public static final int ENDPOINT_LOCATION_FIELD_NUMBER = 4; + public static context.ContextOuterClass.QoSProfileId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return Whether the endpointLocation field is set. - */ - @java.lang.Override - public boolean hasEndpointLocation() { - return constraintCase_ == 4; + public static context.ContextOuterClass.QoSProfileId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return The endpointLocation. - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation() { - if (constraintCase_ == 4) { - return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; - } - return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); } - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder() { - if (constraintCase_ == 4) { - return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; - } - return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - public static final int ENDPOINT_PRIORITY_FIELD_NUMBER = 5; + public static context.ContextOuterClass.QoSProfileId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return Whether the endpointPriority field is set. - */ - @java.lang.Override - public boolean hasEndpointPriority() { - return constraintCase_ == 5; + public static context.ContextOuterClass.QoSProfileId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); } - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return The endpointPriority. - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority() { - if (constraintCase_ == 5) { - return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; - } - return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder() { - if (constraintCase_ == 5) { - return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; - } - return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static final int SLA_CAPACITY_FIELD_NUMBER = 6; + public static context.ContextOuterClass.QoSProfileId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return Whether the slaCapacity field is set. - */ - @java.lang.Override - public boolean hasSlaCapacity() { - return constraintCase_ == 6; + public static context.ContextOuterClass.QoSProfileId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return The slaCapacity. - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity() { - if (constraintCase_ == 6) { - return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + public static context.ContextOuterClass.QoSProfileId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.QoSProfileId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder() { - if (constraintCase_ == 6) { - return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + public Builder newBuilderForType() { + return newBuilder(); } - public static final int SLA_LATENCY_FIELD_NUMBER = 7; + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.QoSProfileId prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return Whether the slaLatency field is set. - */ @java.lang.Override - public boolean hasSlaLatency() { - return constraintCase_ == 7; + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return The slaLatency. - */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency() { - if (constraintCase_ == 7) { - return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; } /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * Protobuf type {@code context.QoSProfileId} */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder() { - if (constraintCase_ == 7) { - return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.QoSProfileId) + context.ContextOuterClass.QoSProfileIdOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_QoSProfileId_descriptor; } - return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); - } - public static final int SLA_AVAILABILITY_FIELD_NUMBER = 8; + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_QoSProfileId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.QoSProfileId.class, context.ContextOuterClass.QoSProfileId.Builder.class); + } + + // Construct using context.ContextOuterClass.QoSProfileId.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + qosProfileId_ = null; + if (qosProfileIdBuilder_ != null) { + qosProfileIdBuilder_.dispose(); + qosProfileIdBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_QoSProfileId_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.QoSProfileId getDefaultInstanceForType() { + return context.ContextOuterClass.QoSProfileId.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.QoSProfileId build() { + context.ContextOuterClass.QoSProfileId result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.QoSProfileId buildPartial() { + context.ContextOuterClass.QoSProfileId result = new context.ContextOuterClass.QoSProfileId(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.QoSProfileId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.qosProfileId_ = qosProfileIdBuilder_ == null ? qosProfileId_ : qosProfileIdBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.QoSProfileId) { + return mergeFrom((context.ContextOuterClass.QoSProfileId) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.QoSProfileId other) { + if (other == context.ContextOuterClass.QoSProfileId.getDefaultInstance()) + return this; + if (other.hasQosProfileId()) { + mergeQosProfileId(other.getQosProfileId()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getQosProfileIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.Uuid qosProfileId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> qosProfileIdBuilder_; + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. + */ + public boolean hasQosProfileId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + * @return The qosProfileId. + */ + public context.ContextOuterClass.Uuid getQosProfileId() { + if (qosProfileIdBuilder_ == null) { + return qosProfileId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : qosProfileId_; + } else { + return qosProfileIdBuilder_.getMessage(); + } + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public Builder setQosProfileId(context.ContextOuterClass.Uuid value) { + if (qosProfileIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + qosProfileId_ = value; + } else { + qosProfileIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public Builder setQosProfileId(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (qosProfileIdBuilder_ == null) { + qosProfileId_ = builderForValue.build(); + } else { + qosProfileIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public Builder mergeQosProfileId(context.ContextOuterClass.Uuid value) { + if (qosProfileIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && qosProfileId_ != null && qosProfileId_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getQosProfileIdBuilder().mergeFrom(value); + } else { + qosProfileId_ = value; + } + } else { + qosProfileIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public Builder clearQosProfileId() { + bitField0_ = (bitField0_ & ~0x00000001); + qosProfileId_ = null; + if (qosProfileIdBuilder_ != null) { + qosProfileIdBuilder_.dispose(); + qosProfileIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public context.ContextOuterClass.Uuid.Builder getQosProfileIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getQosProfileIdFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + public context.ContextOuterClass.UuidOrBuilder getQosProfileIdOrBuilder() { + if (qosProfileIdBuilder_ != null) { + return qosProfileIdBuilder_.getMessageOrBuilder(); + } else { + return qosProfileId_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : qosProfileId_; + } + } + + /** + * <code>.context.Uuid qos_profile_id = 1;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getQosProfileIdFieldBuilder() { + if (qosProfileIdBuilder_ == null) { + qosProfileIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getQosProfileId(), getParentForChildren(), isClean()); + qosProfileId_ = null; + } + return qosProfileIdBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.QoSProfileId) + } + + // @@protoc_insertion_point(class_scope:context.QoSProfileId) + private static final context.ContextOuterClass.QoSProfileId DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.QoSProfileId(); + } + + public static context.ContextOuterClass.QoSProfileId getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<QoSProfileId> PARSER = new com.google.protobuf.AbstractParser<QoSProfileId>() { + + @java.lang.Override + public QoSProfileId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser<QoSProfileId> parser() { + return PARSER; + } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return Whether the slaAvailability field is set. - */ @java.lang.Override - public boolean hasSlaAvailability() { - return constraintCase_ == 8; + public com.google.protobuf.Parser<QoSProfileId> getParserForType() { + return PARSER; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return The slaAvailability. - */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability() { - if (constraintCase_ == 8) { - return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + public context.ContextOuterClass.QoSProfileId getDefaultInstanceForType() { + return DEFAULT_INSTANCE; } + } + + public interface Constraint_QoSProfileOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Constraint_QoSProfile) + com.google.protobuf.MessageOrBuilder { /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder() { - if (constraintCase_ == 8) { - return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); - } + boolean hasQosProfileId(); - public static final int SLA_ISOLATION_FIELD_NUMBER = 9; + /** + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return The qosProfileId. + */ + context.ContextOuterClass.QoSProfileId getQosProfileId(); /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return Whether the slaIsolation field is set. + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + */ + context.ContextOuterClass.QoSProfileIdOrBuilder getQosProfileIdOrBuilder(); + + /** + * <code>string qos_profile_name = 2;</code> + * @return The qosProfileName. */ + java.lang.String getQosProfileName(); + + /** + * <code>string qos_profile_name = 2;</code> + * @return The bytes for qosProfileName. + */ + com.google.protobuf.ByteString getQosProfileNameBytes(); + } + + /** + * Protobuf type {@code context.Constraint_QoSProfile} + */ + public static final class Constraint_QoSProfile extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Constraint_QoSProfile) + Constraint_QoSProfileOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Constraint_QoSProfile.newBuilder() to construct. + private Constraint_QoSProfile(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + + private Constraint_QoSProfile() { + qosProfileName_ = ""; + } + @java.lang.Override - public boolean hasSlaIsolation() { - return constraintCase_ == 9; + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Constraint_QoSProfile(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Constraint_QoSProfile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Constraint_QoSProfile_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint_QoSProfile.class, context.ContextOuterClass.Constraint_QoSProfile.Builder.class); } + public static final int QOS_PROFILE_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.QoSProfileId qosProfileId_; + /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return The slaIsolation. + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation() { - if (constraintCase_ == 9) { - return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + public boolean hasQosProfileId() { + return qosProfileId_ != null; } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return The qosProfileId. */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder() { - if (constraintCase_ == 9) { - return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + public context.ContextOuterClass.QoSProfileId getQosProfileId() { + return qosProfileId_ == null ? context.ContextOuterClass.QoSProfileId.getDefaultInstance() : qosProfileId_; } - public static final int EXCLUSIONS_FIELD_NUMBER = 10; - /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return Whether the exclusions field is set. + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ @java.lang.Override - public boolean hasExclusions() { - return constraintCase_ == 10; + public context.ContextOuterClass.QoSProfileIdOrBuilder getQosProfileIdOrBuilder() { + return qosProfileId_ == null ? context.ContextOuterClass.QoSProfileId.getDefaultInstance() : qosProfileId_; } + public static final int QOS_PROFILE_NAME_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object qosProfileName_ = ""; + /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return The exclusions. + * <code>string qos_profile_name = 2;</code> + * @return The qosProfileName. */ @java.lang.Override - public context.ContextOuterClass.Constraint_Exclusions getExclusions() { - if (constraintCase_ == 10) { - return (context.ContextOuterClass.Constraint_Exclusions) constraint_; + public java.lang.String getQosProfileName() { + java.lang.Object ref = qosProfileName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + qosProfileName_ = s; + return s; } - return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>string qos_profile_name = 2;</code> + * @return The bytes for qosProfileName. */ @java.lang.Override - public context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder() { - if (constraintCase_ == 10) { - return (context.ContextOuterClass.Constraint_Exclusions) constraint_; + public com.google.protobuf.ByteString getQosProfileNameBytes() { + java.lang.Object ref = qosProfileName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + qosProfileName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; } - return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } private byte memoizedIsInitialized = -1; @@ -68777,37 +67782,13 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (action_ != context.ContextOuterClass.ConstraintActionEnum.CONSTRAINTACTION_UNDEFINED.getNumber()) { - output.writeEnum(1, action_); - } - if (constraintCase_ == 2) { - output.writeMessage(2, (context.ContextOuterClass.Constraint_Custom) constraint_); - } - if (constraintCase_ == 3) { - output.writeMessage(3, (context.ContextOuterClass.Constraint_Schedule) constraint_); - } - if (constraintCase_ == 4) { - output.writeMessage(4, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_); - } - if (constraintCase_ == 5) { - output.writeMessage(5, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_); - } - if (constraintCase_ == 6) { - output.writeMessage(6, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_); - } - if (constraintCase_ == 7) { - output.writeMessage(7, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_); - } - if (constraintCase_ == 8) { - output.writeMessage(8, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_); - } - if (constraintCase_ == 9) { - output.writeMessage(9, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_); + if (qosProfileId_ != null) { + output.writeMessage(1, getQosProfileId()); } - if (constraintCase_ == 10) { - output.writeMessage(10, (context.ContextOuterClass.Constraint_Exclusions) constraint_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(qosProfileName_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, qosProfileName_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -68816,37 +67797,13 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (action_ != context.ContextOuterClass.ConstraintActionEnum.CONSTRAINTACTION_UNDEFINED.getNumber()) { - size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, action_); - } - if (constraintCase_ == 2) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, (context.ContextOuterClass.Constraint_Custom) constraint_); - } - if (constraintCase_ == 3) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, (context.ContextOuterClass.Constraint_Schedule) constraint_); - } - if (constraintCase_ == 4) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_); - } - if (constraintCase_ == 5) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_); - } - if (constraintCase_ == 6) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_); - } - if (constraintCase_ == 7) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_); - } - if (constraintCase_ == 8) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_); - } - if (constraintCase_ == 9) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_); + if (qosProfileId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getQosProfileId()); } - if (constraintCase_ == 10) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, (context.ContextOuterClass.Constraint_Exclusions) constraint_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(qosProfileName_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, qosProfileName_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -68856,55 +67813,19 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.Constraint)) { + if (!(obj instanceof context.ContextOuterClass.Constraint_QoSProfile)) { return super.equals(obj); } - context.ContextOuterClass.Constraint other = (context.ContextOuterClass.Constraint) obj; - if (action_ != other.action_) - return false; - if (!getConstraintCase().equals(other.getConstraintCase())) + context.ContextOuterClass.Constraint_QoSProfile other = (context.ContextOuterClass.Constraint_QoSProfile) obj; + if (hasQosProfileId() != other.hasQosProfileId()) return false; - switch(constraintCase_) { - case 2: - if (!getCustom().equals(other.getCustom())) - return false; - break; - case 3: - if (!getSchedule().equals(other.getSchedule())) - return false; - break; - case 4: - if (!getEndpointLocation().equals(other.getEndpointLocation())) - return false; - break; - case 5: - if (!getEndpointPriority().equals(other.getEndpointPriority())) - return false; - break; - case 6: - if (!getSlaCapacity().equals(other.getSlaCapacity())) - return false; - break; - case 7: - if (!getSlaLatency().equals(other.getSlaLatency())) - return false; - break; - case 8: - if (!getSlaAvailability().equals(other.getSlaAvailability())) - return false; - break; - case 9: - if (!getSlaIsolation().equals(other.getSlaIsolation())) - return false; - break; - case 10: - if (!getExclusions().equals(other.getExclusions())) - return false; - break; - case 0: - default: + if (hasQosProfileId()) { + if (!getQosProfileId().equals(other.getQosProfileId())) + return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getQosProfileName().equals(other.getQosProfileName())) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -68916,98 +67837,62 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ACTION_FIELD_NUMBER; - hash = (53 * hash) + action_; - switch(constraintCase_) { - case 2: - hash = (37 * hash) + CUSTOM_FIELD_NUMBER; - hash = (53 * hash) + getCustom().hashCode(); - break; - case 3: - hash = (37 * hash) + SCHEDULE_FIELD_NUMBER; - hash = (53 * hash) + getSchedule().hashCode(); - break; - case 4: - hash = (37 * hash) + ENDPOINT_LOCATION_FIELD_NUMBER; - hash = (53 * hash) + getEndpointLocation().hashCode(); - break; - case 5: - hash = (37 * hash) + ENDPOINT_PRIORITY_FIELD_NUMBER; - hash = (53 * hash) + getEndpointPriority().hashCode(); - break; - case 6: - hash = (37 * hash) + SLA_CAPACITY_FIELD_NUMBER; - hash = (53 * hash) + getSlaCapacity().hashCode(); - break; - case 7: - hash = (37 * hash) + SLA_LATENCY_FIELD_NUMBER; - hash = (53 * hash) + getSlaLatency().hashCode(); - break; - case 8: - hash = (37 * hash) + SLA_AVAILABILITY_FIELD_NUMBER; - hash = (53 * hash) + getSlaAvailability().hashCode(); - break; - case 9: - hash = (37 * hash) + SLA_ISOLATION_FIELD_NUMBER; - hash = (53 * hash) + getSlaIsolation().hashCode(); - break; - case 10: - hash = (37 * hash) + EXCLUSIONS_FIELD_NUMBER; - hash = (53 * hash) + getExclusions().hashCode(); - break; - case 0: - default: + if (hasQosProfileId()) { + hash = (37 * hash) + QOS_PROFILE_ID_FIELD_NUMBER; + hash = (53 * hash) + getQosProfileId().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (37 * hash) + QOS_PROFILE_NAME_FIELD_NUMBER; + hash = (53 * hash) + getQosProfileName().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.Constraint parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Constraint parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Constraint parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Constraint parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Constraint parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.Constraint parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.Constraint parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.Constraint parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.Constraint_QoSProfile parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -69020,7 +67905,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.Constraint prototype) { + public static Builder newBuilder(context.ContextOuterClass.Constraint_QoSProfile prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -69036,57 +67921,54 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.Constraint} + * Protobuf type {@code context.Constraint_QoSProfile} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Constraint) - context.ContextOuterClass.ConstraintOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Constraint_QoSProfile) + context.ContextOuterClass.Constraint_QoSProfileOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + return context.ContextOuterClass.internal_static_context_Constraint_QoSProfile_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Constraint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint.class, context.ContextOuterClass.Constraint.Builder.class); + return context.ContextOuterClass.internal_static_context_Constraint_QoSProfile_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint_QoSProfile.class, context.ContextOuterClass.Constraint_QoSProfile.Builder.class); } - // Construct using context.ContextOuterClass.Constraint.newBuilder() + // Construct using context.ContextOuterClass.Constraint_QoSProfile.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - action_ = 0; - constraintCase_ = 0; - constraint_ = null; + bitField0_ = 0; + qosProfileId_ = null; + if (qosProfileIdBuilder_ != null) { + qosProfileIdBuilder_.dispose(); + qosProfileIdBuilder_ = null; + } + qosProfileName_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + return context.ContextOuterClass.internal_static_context_Constraint_QoSProfile_descriptor; } @java.lang.Override - public context.ContextOuterClass.Constraint getDefaultInstanceForType() { - return context.ContextOuterClass.Constraint.getDefaultInstance(); + public context.ContextOuterClass.Constraint_QoSProfile getDefaultInstanceForType() { + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.Constraint build() { - context.ContextOuterClass.Constraint result = buildPartial(); + public context.ContextOuterClass.Constraint_QoSProfile build() { + context.ContextOuterClass.Constraint_QoSProfile result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -69094,175 +67976,47 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.Constraint buildPartial() { - context.ContextOuterClass.Constraint result = new context.ContextOuterClass.Constraint(this); - result.action_ = action_; - if (constraintCase_ == 2) { - if (customBuilder_ == null) { - result.constraint_ = constraint_; - } else { - result.constraint_ = customBuilder_.build(); - } - } - if (constraintCase_ == 3) { - if (scheduleBuilder_ == null) { - result.constraint_ = constraint_; - } else { - result.constraint_ = scheduleBuilder_.build(); - } - } - if (constraintCase_ == 4) { - if (endpointLocationBuilder_ == null) { - result.constraint_ = constraint_; - } else { - result.constraint_ = endpointLocationBuilder_.build(); - } - } - if (constraintCase_ == 5) { - if (endpointPriorityBuilder_ == null) { - result.constraint_ = constraint_; - } else { - result.constraint_ = endpointPriorityBuilder_.build(); - } - } - if (constraintCase_ == 6) { - if (slaCapacityBuilder_ == null) { - result.constraint_ = constraint_; - } else { - result.constraint_ = slaCapacityBuilder_.build(); - } - } - if (constraintCase_ == 7) { - if (slaLatencyBuilder_ == null) { - result.constraint_ = constraint_; - } else { - result.constraint_ = slaLatencyBuilder_.build(); - } - } - if (constraintCase_ == 8) { - if (slaAvailabilityBuilder_ == null) { - result.constraint_ = constraint_; - } else { - result.constraint_ = slaAvailabilityBuilder_.build(); - } - } - if (constraintCase_ == 9) { - if (slaIsolationBuilder_ == null) { - result.constraint_ = constraint_; - } else { - result.constraint_ = slaIsolationBuilder_.build(); - } - } - if (constraintCase_ == 10) { - if (exclusionsBuilder_ == null) { - result.constraint_ = constraint_; - } else { - result.constraint_ = exclusionsBuilder_.build(); - } + public context.ContextOuterClass.Constraint_QoSProfile buildPartial() { + context.ContextOuterClass.Constraint_QoSProfile result = new context.ContextOuterClass.Constraint_QoSProfile(this); + if (bitField0_ != 0) { + buildPartial0(result); } - result.constraintCase_ = constraintCase_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.Constraint_QoSProfile result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.qosProfileId_ = qosProfileIdBuilder_ == null ? qosProfileId_ : qosProfileIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.qosProfileName_ = qosProfileName_; + } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.Constraint) { - return mergeFrom((context.ContextOuterClass.Constraint) other); + if (other instanceof context.ContextOuterClass.Constraint_QoSProfile) { + return mergeFrom((context.ContextOuterClass.Constraint_QoSProfile) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.Constraint other) { - if (other == context.ContextOuterClass.Constraint.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.Constraint_QoSProfile other) { + if (other == context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance()) return this; - if (other.action_ != 0) { - setActionValue(other.getActionValue()); + if (other.hasQosProfileId()) { + mergeQosProfileId(other.getQosProfileId()); } - switch(other.getConstraintCase()) { - case CUSTOM: - { - mergeCustom(other.getCustom()); - break; - } - case SCHEDULE: - { - mergeSchedule(other.getSchedule()); - break; - } - case ENDPOINT_LOCATION: - { - mergeEndpointLocation(other.getEndpointLocation()); - break; - } - case ENDPOINT_PRIORITY: - { - mergeEndpointPriority(other.getEndpointPriority()); - break; - } - case SLA_CAPACITY: - { - mergeSlaCapacity(other.getSlaCapacity()); - break; - } - case SLA_LATENCY: - { - mergeSlaLatency(other.getSlaLatency()); - break; - } - case SLA_AVAILABILITY: - { - mergeSlaAvailability(other.getSlaAvailability()); - break; - } - case SLA_ISOLATION: - { - mergeSlaIsolation(other.getSlaIsolation()); - break; - } - case EXCLUSIONS: - { - mergeExclusions(other.getExclusions()); - break; - } - case CONSTRAINT_NOT_SET: - { - break; - } + if (!other.getQosProfileName().isEmpty()) { + qosProfileName_ = other.qosProfileName_; + bitField0_ |= 0x00000002; + onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -69274,1359 +68028,3834 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Constraint parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getQosProfileIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + qosProfileName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Constraint) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } - private int constraintCase_ = 0; - - private java.lang.Object constraint_; - - public ConstraintCase getConstraintCase() { - return ConstraintCase.forNumber(constraintCase_); - } - - public Builder clearConstraint() { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - return this; - } - - private int action_ = 0; - - /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The enum numeric value on the wire for action. - */ - @java.lang.Override - public int getActionValue() { - return action_; - } - - /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @param value The enum numeric value on the wire for action to set. - * @return This builder for chaining. - */ - public Builder setActionValue(int value) { - action_ = value; - onChanged(); - return this; - } - - /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return The action. - */ - @java.lang.Override - public context.ContextOuterClass.ConstraintActionEnum getAction() { - @SuppressWarnings("deprecation") - context.ContextOuterClass.ConstraintActionEnum result = context.ContextOuterClass.ConstraintActionEnum.valueOf(action_); - return result == null ? context.ContextOuterClass.ConstraintActionEnum.UNRECOGNIZED : result; - } - - /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @param value The action to set. - * @return This builder for chaining. - */ - public Builder setAction(context.ContextOuterClass.ConstraintActionEnum value) { - if (value == null) { - throw new NullPointerException(); - } - action_ = value.getNumber(); - onChanged(); - return this; - } + private int bitField0_; - /** - * <code>.context.ConstraintActionEnum action = 1;</code> - * @return This builder for chaining. - */ - public Builder clearAction() { - action_ = 0; - onChanged(); - return this; - } + private context.ContextOuterClass.QoSProfileId qosProfileId_; - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder> customBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.QoSProfileId, context.ContextOuterClass.QoSProfileId.Builder, context.ContextOuterClass.QoSProfileIdOrBuilder> qosProfileIdBuilder_; /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return Whether the custom field is set. + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return Whether the qosProfileId field is set. */ - @java.lang.Override - public boolean hasCustom() { - return constraintCase_ == 2; + public boolean hasQosProfileId() { + return ((bitField0_ & 0x00000001) != 0); } /** - * <code>.context.Constraint_Custom custom = 2;</code> - * @return The custom. + * <code>.context.QoSProfileId qos_profile_id = 1;</code> + * @return The qosProfileId. */ - @java.lang.Override - public context.ContextOuterClass.Constraint_Custom getCustom() { - if (customBuilder_ == null) { - if (constraintCase_ == 2) { - return (context.ContextOuterClass.Constraint_Custom) constraint_; - } - return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + public context.ContextOuterClass.QoSProfileId getQosProfileId() { + if (qosProfileIdBuilder_ == null) { + return qosProfileId_ == null ? context.ContextOuterClass.QoSProfileId.getDefaultInstance() : qosProfileId_; } else { - if (constraintCase_ == 2) { - return customBuilder_.getMessage(); - } - return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + return qosProfileIdBuilder_.getMessage(); } } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ - public Builder setCustom(context.ContextOuterClass.Constraint_Custom value) { - if (customBuilder_ == null) { + public Builder setQosProfileId(context.ContextOuterClass.QoSProfileId value) { + if (qosProfileIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - constraint_ = value; - onChanged(); + qosProfileId_ = value; } else { - customBuilder_.setMessage(value); + qosProfileIdBuilder_.setMessage(value); } - constraintCase_ = 2; + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ - public Builder setCustom(context.ContextOuterClass.Constraint_Custom.Builder builderForValue) { - if (customBuilder_ == null) { - constraint_ = builderForValue.build(); - onChanged(); + public Builder setQosProfileId(context.ContextOuterClass.QoSProfileId.Builder builderForValue) { + if (qosProfileIdBuilder_ == null) { + qosProfileId_ = builderForValue.build(); } else { - customBuilder_.setMessage(builderForValue.build()); + qosProfileIdBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 2; + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ - public Builder mergeCustom(context.ContextOuterClass.Constraint_Custom value) { - if (customBuilder_ == null) { - if (constraintCase_ == 2 && constraint_ != context.ContextOuterClass.Constraint_Custom.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_Custom.newBuilder((context.ContextOuterClass.Constraint_Custom) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeQosProfileId(context.ContextOuterClass.QoSProfileId value) { + if (qosProfileIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && qosProfileId_ != null && qosProfileId_ != context.ContextOuterClass.QoSProfileId.getDefaultInstance()) { + getQosProfileIdBuilder().mergeFrom(value); } else { - constraint_ = value; + qosProfileId_ = value; } - onChanged(); } else { - if (constraintCase_ == 2) { - customBuilder_.mergeFrom(value); - } - customBuilder_.setMessage(value); + qosProfileIdBuilder_.mergeFrom(value); } - constraintCase_ = 2; + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ - public Builder clearCustom() { - if (customBuilder_ == null) { - if (constraintCase_ == 2) { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - } - } else { - if (constraintCase_ == 2) { - constraintCase_ = 0; - constraint_ = null; - } - customBuilder_.clear(); + public Builder clearQosProfileId() { + bitField0_ = (bitField0_ & ~0x00000001); + qosProfileId_ = null; + if (qosProfileIdBuilder_ != null) { + qosProfileIdBuilder_.dispose(); + qosProfileIdBuilder_ = null; } + onChanged(); return this; } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ - public context.ContextOuterClass.Constraint_Custom.Builder getCustomBuilder() { - return getCustomFieldBuilder().getBuilder(); + public context.ContextOuterClass.QoSProfileId.Builder getQosProfileIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getQosProfileIdFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ - @java.lang.Override - public context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder() { - if ((constraintCase_ == 2) && (customBuilder_ != null)) { - return customBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.QoSProfileIdOrBuilder getQosProfileIdOrBuilder() { + if (qosProfileIdBuilder_ != null) { + return qosProfileIdBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 2) { - return (context.ContextOuterClass.Constraint_Custom) constraint_; - } - return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + return qosProfileId_ == null ? context.ContextOuterClass.QoSProfileId.getDefaultInstance() : qosProfileId_; } } /** - * <code>.context.Constraint_Custom custom = 2;</code> + * <code>.context.QoSProfileId qos_profile_id = 1;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder> getCustomFieldBuilder() { - if (customBuilder_ == null) { - if (!(constraintCase_ == 2)) { - constraint_ = context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); - } - customBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder>((context.ContextOuterClass.Constraint_Custom) constraint_, getParentForChildren(), isClean()); - constraint_ = null; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.QoSProfileId, context.ContextOuterClass.QoSProfileId.Builder, context.ContextOuterClass.QoSProfileIdOrBuilder> getQosProfileIdFieldBuilder() { + if (qosProfileIdBuilder_ == null) { + qosProfileIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.QoSProfileId, context.ContextOuterClass.QoSProfileId.Builder, context.ContextOuterClass.QoSProfileIdOrBuilder>(getQosProfileId(), getParentForChildren(), isClean()); + qosProfileId_ = null; } - constraintCase_ = 2; - onChanged(); - ; - return customBuilder_; + return qosProfileIdBuilder_; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder> scheduleBuilder_; - - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return Whether the schedule field is set. - */ - @java.lang.Override - public boolean hasSchedule() { - return constraintCase_ == 3; - } + private java.lang.Object qosProfileName_ = ""; /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - * @return The schedule. + * <code>string qos_profile_name = 2;</code> + * @return The qosProfileName. */ - @java.lang.Override - public context.ContextOuterClass.Constraint_Schedule getSchedule() { - if (scheduleBuilder_ == null) { - if (constraintCase_ == 3) { - return (context.ContextOuterClass.Constraint_Schedule) constraint_; - } - return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + public java.lang.String getQosProfileName() { + java.lang.Object ref = qosProfileName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + qosProfileName_ = s; + return s; } else { - if (constraintCase_ == 3) { - return scheduleBuilder_.getMessage(); - } - return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + return (java.lang.String) ref; } } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>string qos_profile_name = 2;</code> + * @return The bytes for qosProfileName. */ - public Builder setSchedule(context.ContextOuterClass.Constraint_Schedule value) { - if (scheduleBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - constraint_ = value; - onChanged(); + public com.google.protobuf.ByteString getQosProfileNameBytes() { + java.lang.Object ref = qosProfileName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + qosProfileName_ = b; + return b; } else { - scheduleBuilder_.setMessage(value); + return (com.google.protobuf.ByteString) ref; } - constraintCase_ = 3; - return this; } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>string qos_profile_name = 2;</code> + * @param value The qosProfileName to set. + * @return This builder for chaining. */ - public Builder setSchedule(context.ContextOuterClass.Constraint_Schedule.Builder builderForValue) { - if (scheduleBuilder_ == null) { - constraint_ = builderForValue.build(); - onChanged(); - } else { - scheduleBuilder_.setMessage(builderForValue.build()); + public Builder setQosProfileName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } - constraintCase_ = 3; + qosProfileName_ = value; + bitField0_ |= 0x00000002; + onChanged(); return this; } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>string qos_profile_name = 2;</code> + * @return This builder for chaining. */ - public Builder mergeSchedule(context.ContextOuterClass.Constraint_Schedule value) { - if (scheduleBuilder_ == null) { - if (constraintCase_ == 3 && constraint_ != context.ContextOuterClass.Constraint_Schedule.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_Schedule.newBuilder((context.ContextOuterClass.Constraint_Schedule) constraint_).mergeFrom(value).buildPartial(); - } else { - constraint_ = value; - } - onChanged(); - } else { - if (constraintCase_ == 3) { - scheduleBuilder_.mergeFrom(value); - } - scheduleBuilder_.setMessage(value); - } - constraintCase_ = 3; + public Builder clearQosProfileName() { + qosProfileName_ = getDefaultInstance().getQosProfileName(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); return this; } /** - * <code>.context.Constraint_Schedule schedule = 3;</code> + * <code>string qos_profile_name = 2;</code> + * @param value The bytes for qosProfileName to set. + * @return This builder for chaining. */ - public Builder clearSchedule() { - if (scheduleBuilder_ == null) { - if (constraintCase_ == 3) { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - } - } else { - if (constraintCase_ == 3) { - constraintCase_ = 0; - constraint_ = null; - } - scheduleBuilder_.clear(); + public Builder setQosProfileNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + qosProfileName_ = value; + bitField0_ |= 0x00000002; + onChanged(); return this; } - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - */ - public context.ContextOuterClass.Constraint_Schedule.Builder getScheduleBuilder() { - return getScheduleFieldBuilder().getBuilder(); + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); } - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - */ @java.lang.Override - public context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder() { - if ((constraintCase_ == 3) && (scheduleBuilder_ != null)) { - return scheduleBuilder_.getMessageOrBuilder(); - } else { - if (constraintCase_ == 3) { - return (context.ContextOuterClass.Constraint_Schedule) constraint_; - } - return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); - } + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); } + // @@protoc_insertion_point(builder_scope:context.Constraint_QoSProfile) + } - /** - * <code>.context.Constraint_Schedule schedule = 3;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder> getScheduleFieldBuilder() { - if (scheduleBuilder_ == null) { - if (!(constraintCase_ == 3)) { - constraint_ = context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); - } - scheduleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder>((context.ContextOuterClass.Constraint_Schedule) constraint_, getParentForChildren(), isClean()); - constraint_ = null; - } - constraintCase_ = 3; - onChanged(); - ; - return scheduleBuilder_; - } + // @@protoc_insertion_point(class_scope:context.Constraint_QoSProfile) + private static final context.ContextOuterClass.Constraint_QoSProfile DEFAULT_INSTANCE; - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder> endpointLocationBuilder_; + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Constraint_QoSProfile(); + } - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return Whether the endpointLocation field is set. - */ - @java.lang.Override - public boolean hasEndpointLocation() { - return constraintCase_ == 4; - } + public static context.ContextOuterClass.Constraint_QoSProfile getDefaultInstance() { + return DEFAULT_INSTANCE; + } - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - * @return The endpointLocation. - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation() { - if (endpointLocationBuilder_ == null) { - if (constraintCase_ == 4) { - return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; - } - return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); - } else { - if (constraintCase_ == 4) { - return endpointLocationBuilder_.getMessage(); - } - return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); - } - } + private static final com.google.protobuf.Parser<Constraint_QoSProfile> PARSER = new com.google.protobuf.AbstractParser<Constraint_QoSProfile>() { - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - public Builder setEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation value) { - if (endpointLocationBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - constraint_ = value; - onChanged(); - } else { - endpointLocationBuilder_.setMessage(value); + @java.lang.Override + public Constraint_QoSProfile parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); } - constraintCase_ = 4; - return this; + return builder.buildPartial(); } + }; - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - public Builder setEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation.Builder builderForValue) { - if (endpointLocationBuilder_ == null) { - constraint_ = builderForValue.build(); - onChanged(); - } else { - endpointLocationBuilder_.setMessage(builderForValue.build()); - } - constraintCase_ = 4; - return this; - } + public static com.google.protobuf.Parser<Constraint_QoSProfile> parser() { + return PARSER; + } - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - public Builder mergeEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation value) { - if (endpointLocationBuilder_ == null) { - if (constraintCase_ == 4 && constraint_ != context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_EndPointLocation.newBuilder((context.ContextOuterClass.Constraint_EndPointLocation) constraint_).mergeFrom(value).buildPartial(); - } else { - constraint_ = value; - } - onChanged(); - } else { - if (constraintCase_ == 4) { - endpointLocationBuilder_.mergeFrom(value); - } - endpointLocationBuilder_.setMessage(value); - } - constraintCase_ = 4; - return this; - } + @java.lang.Override + public com.google.protobuf.Parser<Constraint_QoSProfile> getParserForType() { + return PARSER; + } - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - public Builder clearEndpointLocation() { - if (endpointLocationBuilder_ == null) { - if (constraintCase_ == 4) { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - } - } else { - if (constraintCase_ == 4) { - constraintCase_ = 0; - constraint_ = null; - } - endpointLocationBuilder_.clear(); - } - return this; - } + @java.lang.Override + public context.ContextOuterClass.Constraint_QoSProfile getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - public context.ContextOuterClass.Constraint_EndPointLocation.Builder getEndpointLocationBuilder() { - return getEndpointLocationFieldBuilder().getBuilder(); - } + public interface ConstraintOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Constraint) + com.google.protobuf.MessageOrBuilder { - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder() { - if ((constraintCase_ == 4) && (endpointLocationBuilder_ != null)) { - return endpointLocationBuilder_.getMessageOrBuilder(); - } else { - if (constraintCase_ == 4) { - return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; - } - return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); - } - } + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The enum numeric value on the wire for action. + */ + int getActionValue(); - /** - * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder> getEndpointLocationFieldBuilder() { - if (endpointLocationBuilder_ == null) { - if (!(constraintCase_ == 4)) { - constraint_ = context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); - } - endpointLocationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder>((context.ContextOuterClass.Constraint_EndPointLocation) constraint_, getParentForChildren(), isClean()); - constraint_ = null; - } - constraintCase_ = 4; - onChanged(); - ; - return endpointLocationBuilder_; - } + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The action. + */ + context.ContextOuterClass.ConstraintActionEnum getAction(); - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder> endpointPriorityBuilder_; + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return Whether the custom field is set. + */ + boolean hasCustom(); - /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return Whether the endpointPriority field is set. + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return The custom. + */ + context.ContextOuterClass.Constraint_Custom getCustom(); + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder(); + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return Whether the schedule field is set. + */ + boolean hasSchedule(); + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return The schedule. + */ + context.ContextOuterClass.Constraint_Schedule getSchedule(); + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder(); + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return Whether the endpointLocation field is set. + */ + boolean hasEndpointLocation(); + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return The endpointLocation. + */ + context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation(); + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder(); + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return Whether the endpointPriority field is set. + */ + boolean hasEndpointPriority(); + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return The endpointPriority. + */ + context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority(); + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder(); + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return Whether the slaCapacity field is set. + */ + boolean hasSlaCapacity(); + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return The slaCapacity. + */ + context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity(); + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder(); + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return Whether the slaLatency field is set. + */ + boolean hasSlaLatency(); + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return The slaLatency. + */ + context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency(); + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder(); + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return Whether the slaAvailability field is set. + */ + boolean hasSlaAvailability(); + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return The slaAvailability. + */ + context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability(); + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder(); + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return Whether the slaIsolation field is set. + */ + boolean hasSlaIsolation(); + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return The slaIsolation. + */ + context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation(); + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder(); + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return Whether the exclusions field is set. + */ + boolean hasExclusions(); + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return The exclusions. + */ + context.ContextOuterClass.Constraint_Exclusions getExclusions(); + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + */ + context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder(); + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return Whether the qosProfile field is set. + */ + boolean hasQosProfile(); + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return The qosProfile. + */ + context.ContextOuterClass.Constraint_QoSProfile getQosProfile(); + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + */ + context.ContextOuterClass.Constraint_QoSProfileOrBuilder getQosProfileOrBuilder(); + + context.ContextOuterClass.Constraint.ConstraintCase getConstraintCase(); + } + + /** + * Protobuf type {@code context.Constraint} + */ + public static final class Constraint extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Constraint) + ConstraintOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use Constraint.newBuilder() to construct. + private Constraint(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + + private Constraint() { + action_ = 0; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new Constraint(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Constraint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint.class, context.ContextOuterClass.Constraint.Builder.class); + } + + private int constraintCase_ = 0; + + @SuppressWarnings("serial") + private java.lang.Object constraint_; + + public enum ConstraintCase implements com.google.protobuf.Internal.EnumLite, com.google.protobuf.AbstractMessage.InternalOneOfEnum { + + CUSTOM(2), + SCHEDULE(3), + ENDPOINT_LOCATION(4), + ENDPOINT_PRIORITY(5), + SLA_CAPACITY(6), + SLA_LATENCY(7), + SLA_AVAILABILITY(8), + SLA_ISOLATION(9), + EXCLUSIONS(10), + QOS_PROFILE(11), + CONSTRAINT_NOT_SET(0); + + private final int value; + + private ConstraintCase(int value) { + this.value = value; + } + + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ConstraintCase valueOf(int value) { + return forNumber(value); + } + + public static ConstraintCase forNumber(int value) { + switch(value) { + case 2: + return CUSTOM; + case 3: + return SCHEDULE; + case 4: + return ENDPOINT_LOCATION; + case 5: + return ENDPOINT_PRIORITY; + case 6: + return SLA_CAPACITY; + case 7: + return SLA_LATENCY; + case 8: + return SLA_AVAILABILITY; + case 9: + return SLA_ISOLATION; + case 10: + return EXCLUSIONS; + case 11: + return QOS_PROFILE; + case 0: + return CONSTRAINT_NOT_SET; + default: + return null; + } + } + + public int getNumber() { + return this.value; + } + } + + public ConstraintCase getConstraintCase() { + return ConstraintCase.forNumber(constraintCase_); + } + + public static final int ACTION_FIELD_NUMBER = 1; + + private int action_ = 0; + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The enum numeric value on the wire for action. + */ + @java.lang.Override + public int getActionValue() { + return action_; + } + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The action. + */ + @java.lang.Override + public context.ContextOuterClass.ConstraintActionEnum getAction() { + context.ContextOuterClass.ConstraintActionEnum result = context.ContextOuterClass.ConstraintActionEnum.forNumber(action_); + return result == null ? context.ContextOuterClass.ConstraintActionEnum.UNRECOGNIZED : result; + } + + public static final int CUSTOM_FIELD_NUMBER = 2; + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return Whether the custom field is set. + */ + @java.lang.Override + public boolean hasCustom() { + return constraintCase_ == 2; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return The custom. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_Custom getCustom() { + if (constraintCase_ == 2) { + return (context.ContextOuterClass.Constraint_Custom) constraint_; + } + return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder() { + if (constraintCase_ == 2) { + return (context.ContextOuterClass.Constraint_Custom) constraint_; + } + return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } + + public static final int SCHEDULE_FIELD_NUMBER = 3; + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return Whether the schedule field is set. + */ + @java.lang.Override + public boolean hasSchedule() { + return constraintCase_ == 3; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return The schedule. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_Schedule getSchedule() { + if (constraintCase_ == 3) { + return (context.ContextOuterClass.Constraint_Schedule) constraint_; + } + return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder() { + if (constraintCase_ == 3) { + return (context.ContextOuterClass.Constraint_Schedule) constraint_; + } + return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } + + public static final int ENDPOINT_LOCATION_FIELD_NUMBER = 4; + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return Whether the endpointLocation field is set. + */ + @java.lang.Override + public boolean hasEndpointLocation() { + return constraintCase_ == 4; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return The endpointLocation. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation() { + if (constraintCase_ == 4) { + return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder() { + if (constraintCase_ == 4) { + return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } + + public static final int ENDPOINT_PRIORITY_FIELD_NUMBER = 5; + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return Whether the endpointPriority field is set. + */ + @java.lang.Override + public boolean hasEndpointPriority() { + return constraintCase_ == 5; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return The endpointPriority. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority() { + if (constraintCase_ == 5) { + return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder() { + if (constraintCase_ == 5) { + return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } + + public static final int SLA_CAPACITY_FIELD_NUMBER = 6; + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return Whether the slaCapacity field is set. + */ + @java.lang.Override + public boolean hasSlaCapacity() { + return constraintCase_ == 6; + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return The slaCapacity. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity() { + if (constraintCase_ == 6) { + return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder() { + if (constraintCase_ == 6) { + return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + } + + public static final int SLA_LATENCY_FIELD_NUMBER = 7; + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return Whether the slaLatency field is set. + */ + @java.lang.Override + public boolean hasSlaLatency() { + return constraintCase_ == 7; + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return The slaLatency. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency() { + if (constraintCase_ == 7) { + return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder() { + if (constraintCase_ == 7) { + return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + } + + public static final int SLA_AVAILABILITY_FIELD_NUMBER = 8; + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return Whether the slaAvailability field is set. + */ + @java.lang.Override + public boolean hasSlaAvailability() { + return constraintCase_ == 8; + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return The slaAvailability. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability() { + if (constraintCase_ == 8) { + return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder() { + if (constraintCase_ == 8) { + return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + } + + public static final int SLA_ISOLATION_FIELD_NUMBER = 9; + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return Whether the slaIsolation field is set. + */ + @java.lang.Override + public boolean hasSlaIsolation() { + return constraintCase_ == 9; + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return The slaIsolation. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation() { + if (constraintCase_ == 9) { + return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder() { + if (constraintCase_ == 9) { + return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + } + + public static final int EXCLUSIONS_FIELD_NUMBER = 10; + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return Whether the exclusions field is set. + */ + @java.lang.Override + public boolean hasExclusions() { + return constraintCase_ == 10; + } + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return The exclusions. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_Exclusions getExclusions() { + if (constraintCase_ == 10) { + return (context.ContextOuterClass.Constraint_Exclusions) constraint_; + } + return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder() { + if (constraintCase_ == 10) { + return (context.ContextOuterClass.Constraint_Exclusions) constraint_; + } + return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); + } + + public static final int QOS_PROFILE_FIELD_NUMBER = 11; + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return Whether the qosProfile field is set. + */ + @java.lang.Override + public boolean hasQosProfile() { + return constraintCase_ == 11; + } + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return The qosProfile. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_QoSProfile getQosProfile() { + if (constraintCase_ == 11) { + return (context.ContextOuterClass.Constraint_QoSProfile) constraint_; + } + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); + } + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_QoSProfileOrBuilder getQosProfileOrBuilder() { + if (constraintCase_ == 11) { + return (context.ContextOuterClass.Constraint_QoSProfile) constraint_; + } + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (action_ != context.ContextOuterClass.ConstraintActionEnum.CONSTRAINTACTION_UNDEFINED.getNumber()) { + output.writeEnum(1, action_); + } + if (constraintCase_ == 2) { + output.writeMessage(2, (context.ContextOuterClass.Constraint_Custom) constraint_); + } + if (constraintCase_ == 3) { + output.writeMessage(3, (context.ContextOuterClass.Constraint_Schedule) constraint_); + } + if (constraintCase_ == 4) { + output.writeMessage(4, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_); + } + if (constraintCase_ == 5) { + output.writeMessage(5, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_); + } + if (constraintCase_ == 6) { + output.writeMessage(6, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_); + } + if (constraintCase_ == 7) { + output.writeMessage(7, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_); + } + if (constraintCase_ == 8) { + output.writeMessage(8, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_); + } + if (constraintCase_ == 9) { + output.writeMessage(9, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_); + } + if (constraintCase_ == 10) { + output.writeMessage(10, (context.ContextOuterClass.Constraint_Exclusions) constraint_); + } + if (constraintCase_ == 11) { + output.writeMessage(11, (context.ContextOuterClass.Constraint_QoSProfile) constraint_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (action_ != context.ContextOuterClass.ConstraintActionEnum.CONSTRAINTACTION_UNDEFINED.getNumber()) { + size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, action_); + } + if (constraintCase_ == 2) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, (context.ContextOuterClass.Constraint_Custom) constraint_); + } + if (constraintCase_ == 3) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, (context.ContextOuterClass.Constraint_Schedule) constraint_); + } + if (constraintCase_ == 4) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, (context.ContextOuterClass.Constraint_EndPointLocation) constraint_); + } + if (constraintCase_ == 5) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, (context.ContextOuterClass.Constraint_EndPointPriority) constraint_); + } + if (constraintCase_ == 6) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_); + } + if (constraintCase_ == 7) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, (context.ContextOuterClass.Constraint_SLA_Latency) constraint_); + } + if (constraintCase_ == 8) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, (context.ContextOuterClass.Constraint_SLA_Availability) constraint_); + } + if (constraintCase_ == 9) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_); + } + if (constraintCase_ == 10) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, (context.ContextOuterClass.Constraint_Exclusions) constraint_); + } + if (constraintCase_ == 11) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, (context.ContextOuterClass.Constraint_QoSProfile) constraint_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.Constraint)) { + return super.equals(obj); + } + context.ContextOuterClass.Constraint other = (context.ContextOuterClass.Constraint) obj; + if (action_ != other.action_) + return false; + if (!getConstraintCase().equals(other.getConstraintCase())) + return false; + switch(constraintCase_) { + case 2: + if (!getCustom().equals(other.getCustom())) + return false; + break; + case 3: + if (!getSchedule().equals(other.getSchedule())) + return false; + break; + case 4: + if (!getEndpointLocation().equals(other.getEndpointLocation())) + return false; + break; + case 5: + if (!getEndpointPriority().equals(other.getEndpointPriority())) + return false; + break; + case 6: + if (!getSlaCapacity().equals(other.getSlaCapacity())) + return false; + break; + case 7: + if (!getSlaLatency().equals(other.getSlaLatency())) + return false; + break; + case 8: + if (!getSlaAvailability().equals(other.getSlaAvailability())) + return false; + break; + case 9: + if (!getSlaIsolation().equals(other.getSlaIsolation())) + return false; + break; + case 10: + if (!getExclusions().equals(other.getExclusions())) + return false; + break; + case 11: + if (!getQosProfile().equals(other.getQosProfile())) + return false; + break; + case 0: + default: + } + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ACTION_FIELD_NUMBER; + hash = (53 * hash) + action_; + switch(constraintCase_) { + case 2: + hash = (37 * hash) + CUSTOM_FIELD_NUMBER; + hash = (53 * hash) + getCustom().hashCode(); + break; + case 3: + hash = (37 * hash) + SCHEDULE_FIELD_NUMBER; + hash = (53 * hash) + getSchedule().hashCode(); + break; + case 4: + hash = (37 * hash) + ENDPOINT_LOCATION_FIELD_NUMBER; + hash = (53 * hash) + getEndpointLocation().hashCode(); + break; + case 5: + hash = (37 * hash) + ENDPOINT_PRIORITY_FIELD_NUMBER; + hash = (53 * hash) + getEndpointPriority().hashCode(); + break; + case 6: + hash = (37 * hash) + SLA_CAPACITY_FIELD_NUMBER; + hash = (53 * hash) + getSlaCapacity().hashCode(); + break; + case 7: + hash = (37 * hash) + SLA_LATENCY_FIELD_NUMBER; + hash = (53 * hash) + getSlaLatency().hashCode(); + break; + case 8: + hash = (37 * hash) + SLA_AVAILABILITY_FIELD_NUMBER; + hash = (53 * hash) + getSlaAvailability().hashCode(); + break; + case 9: + hash = (37 * hash) + SLA_ISOLATION_FIELD_NUMBER; + hash = (53 * hash) + getSlaIsolation().hashCode(); + break; + case 10: + hash = (37 * hash) + EXCLUSIONS_FIELD_NUMBER; + hash = (53 * hash) + getExclusions().hashCode(); + break; + case 11: + hash = (37 * hash) + QOS_PROFILE_FIELD_NUMBER; + hash = (53 * hash) + getQosProfile().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.Constraint parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Constraint parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Constraint parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.Constraint parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.Constraint parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Constraint parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Constraint parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Constraint parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.Constraint parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(context.ContextOuterClass.Constraint prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + + /** + * Protobuf type {@code context.Constraint} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Constraint) + context.ContextOuterClass.ConstraintOrBuilder { + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_Constraint_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Constraint.class, context.ContextOuterClass.Constraint.Builder.class); + } + + // Construct using context.ContextOuterClass.Constraint.newBuilder() + private Builder() { + } + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + action_ = 0; + if (customBuilder_ != null) { + customBuilder_.clear(); + } + if (scheduleBuilder_ != null) { + scheduleBuilder_.clear(); + } + if (endpointLocationBuilder_ != null) { + endpointLocationBuilder_.clear(); + } + if (endpointPriorityBuilder_ != null) { + endpointPriorityBuilder_.clear(); + } + if (slaCapacityBuilder_ != null) { + slaCapacityBuilder_.clear(); + } + if (slaLatencyBuilder_ != null) { + slaLatencyBuilder_.clear(); + } + if (slaAvailabilityBuilder_ != null) { + slaAvailabilityBuilder_.clear(); + } + if (slaIsolationBuilder_ != null) { + slaIsolationBuilder_.clear(); + } + if (exclusionsBuilder_ != null) { + exclusionsBuilder_.clear(); + } + if (qosProfileBuilder_ != null) { + qosProfileBuilder_.clear(); + } + constraintCase_ = 0; + constraint_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_Constraint_descriptor; + } + + @java.lang.Override + public context.ContextOuterClass.Constraint getDefaultInstanceForType() { + return context.ContextOuterClass.Constraint.getDefaultInstance(); + } + + @java.lang.Override + public context.ContextOuterClass.Constraint build() { + context.ContextOuterClass.Constraint result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public context.ContextOuterClass.Constraint buildPartial() { + context.ContextOuterClass.Constraint result = new context.ContextOuterClass.Constraint(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(context.ContextOuterClass.Constraint result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.action_ = action_; + } + } + + private void buildPartialOneofs(context.ContextOuterClass.Constraint result) { + result.constraintCase_ = constraintCase_; + result.constraint_ = this.constraint_; + if (constraintCase_ == 2 && customBuilder_ != null) { + result.constraint_ = customBuilder_.build(); + } + if (constraintCase_ == 3 && scheduleBuilder_ != null) { + result.constraint_ = scheduleBuilder_.build(); + } + if (constraintCase_ == 4 && endpointLocationBuilder_ != null) { + result.constraint_ = endpointLocationBuilder_.build(); + } + if (constraintCase_ == 5 && endpointPriorityBuilder_ != null) { + result.constraint_ = endpointPriorityBuilder_.build(); + } + if (constraintCase_ == 6 && slaCapacityBuilder_ != null) { + result.constraint_ = slaCapacityBuilder_.build(); + } + if (constraintCase_ == 7 && slaLatencyBuilder_ != null) { + result.constraint_ = slaLatencyBuilder_.build(); + } + if (constraintCase_ == 8 && slaAvailabilityBuilder_ != null) { + result.constraint_ = slaAvailabilityBuilder_.build(); + } + if (constraintCase_ == 9 && slaIsolationBuilder_ != null) { + result.constraint_ = slaIsolationBuilder_.build(); + } + if (constraintCase_ == 10 && exclusionsBuilder_ != null) { + result.constraint_ = exclusionsBuilder_.build(); + } + if (constraintCase_ == 11 && qosProfileBuilder_ != null) { + result.constraint_ = qosProfileBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.Constraint) { + return mergeFrom((context.ContextOuterClass.Constraint) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.Constraint other) { + if (other == context.ContextOuterClass.Constraint.getDefaultInstance()) + return this; + if (other.action_ != 0) { + setActionValue(other.getActionValue()); + } + switch(other.getConstraintCase()) { + case CUSTOM: + { + mergeCustom(other.getCustom()); + break; + } + case SCHEDULE: + { + mergeSchedule(other.getSchedule()); + break; + } + case ENDPOINT_LOCATION: + { + mergeEndpointLocation(other.getEndpointLocation()); + break; + } + case ENDPOINT_PRIORITY: + { + mergeEndpointPriority(other.getEndpointPriority()); + break; + } + case SLA_CAPACITY: + { + mergeSlaCapacity(other.getSlaCapacity()); + break; + } + case SLA_LATENCY: + { + mergeSlaLatency(other.getSlaLatency()); + break; + } + case SLA_AVAILABILITY: + { + mergeSlaAvailability(other.getSlaAvailability()); + break; + } + case SLA_ISOLATION: + { + mergeSlaIsolation(other.getSlaIsolation()); + break; + } + case EXCLUSIONS: + { + mergeExclusions(other.getExclusions()); + break; + } + case QOS_PROFILE: + { + mergeQosProfile(other.getQosProfile()); + break; + } + case CONSTRAINT_NOT_SET: + { + break; + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 8: + { + action_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } + // case 8 + case 18: + { + input.readMessage(getCustomFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 2; + break; + } + // case 18 + case 26: + { + input.readMessage(getScheduleFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 3; + break; + } + // case 26 + case 34: + { + input.readMessage(getEndpointLocationFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 4; + break; + } + // case 34 + case 42: + { + input.readMessage(getEndpointPriorityFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 5; + break; + } + // case 42 + case 50: + { + input.readMessage(getSlaCapacityFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 6; + break; + } + // case 50 + case 58: + { + input.readMessage(getSlaLatencyFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 7; + break; + } + // case 58 + case 66: + { + input.readMessage(getSlaAvailabilityFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 8; + break; + } + // case 66 + case 74: + { + input.readMessage(getSlaIsolationFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 9; + break; + } + // case 74 + case 82: + { + input.readMessage(getExclusionsFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 10; + break; + } + // case 82 + case 90: + { + input.readMessage(getQosProfileFieldBuilder().getBuilder(), extensionRegistry); + constraintCase_ = 11; + break; + } + // case 90 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } + // finally + return this; + } + + private int constraintCase_ = 0; + + private java.lang.Object constraint_; + + public ConstraintCase getConstraintCase() { + return ConstraintCase.forNumber(constraintCase_); + } + + public Builder clearConstraint() { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private int action_ = 0; + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The enum numeric value on the wire for action. + */ + @java.lang.Override + public int getActionValue() { + return action_; + } + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @param value The enum numeric value on the wire for action to set. + * @return This builder for chaining. + */ + public Builder setActionValue(int value) { + action_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return The action. + */ + @java.lang.Override + public context.ContextOuterClass.ConstraintActionEnum getAction() { + context.ContextOuterClass.ConstraintActionEnum result = context.ContextOuterClass.ConstraintActionEnum.forNumber(action_); + return result == null ? context.ContextOuterClass.ConstraintActionEnum.UNRECOGNIZED : result; + } + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @param value The action to set. + * @return This builder for chaining. + */ + public Builder setAction(context.ContextOuterClass.ConstraintActionEnum value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + action_ = value.getNumber(); + onChanged(); + return this; + } + + /** + * <code>.context.ConstraintActionEnum action = 1;</code> + * @return This builder for chaining. + */ + public Builder clearAction() { + bitField0_ = (bitField0_ & ~0x00000001); + action_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder> customBuilder_; + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return Whether the custom field is set. + */ + @java.lang.Override + public boolean hasCustom() { + return constraintCase_ == 2; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + * @return The custom. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_Custom getCustom() { + if (customBuilder_ == null) { + if (constraintCase_ == 2) { + return (context.ContextOuterClass.Constraint_Custom) constraint_; + } + return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } else { + if (constraintCase_ == 2) { + return customBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + public Builder setCustom(context.ContextOuterClass.Constraint_Custom value) { + if (customBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + customBuilder_.setMessage(value); + } + constraintCase_ = 2; + return this; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + public Builder setCustom(context.ContextOuterClass.Constraint_Custom.Builder builderForValue) { + if (customBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + customBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 2; + return this; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + public Builder mergeCustom(context.ContextOuterClass.Constraint_Custom value) { + if (customBuilder_ == null) { + if (constraintCase_ == 2 && constraint_ != context.ContextOuterClass.Constraint_Custom.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_Custom.newBuilder((context.ContextOuterClass.Constraint_Custom) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 2) { + customBuilder_.mergeFrom(value); + } else { + customBuilder_.setMessage(value); + } + } + constraintCase_ = 2; + return this; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + public Builder clearCustom() { + if (customBuilder_ == null) { + if (constraintCase_ == 2) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 2) { + constraintCase_ = 0; + constraint_ = null; + } + customBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + public context.ContextOuterClass.Constraint_Custom.Builder getCustomBuilder() { + return getCustomFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_CustomOrBuilder getCustomOrBuilder() { + if ((constraintCase_ == 2) && (customBuilder_ != null)) { + return customBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 2) { + return (context.ContextOuterClass.Constraint_Custom) constraint_; + } + return context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_Custom custom = 2;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder> getCustomFieldBuilder() { + if (customBuilder_ == null) { + if (!(constraintCase_ == 2)) { + constraint_ = context.ContextOuterClass.Constraint_Custom.getDefaultInstance(); + } + customBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Custom, context.ContextOuterClass.Constraint_Custom.Builder, context.ContextOuterClass.Constraint_CustomOrBuilder>((context.ContextOuterClass.Constraint_Custom) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 2; + onChanged(); + return customBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder> scheduleBuilder_; + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return Whether the schedule field is set. + */ + @java.lang.Override + public boolean hasSchedule() { + return constraintCase_ == 3; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + * @return The schedule. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_Schedule getSchedule() { + if (scheduleBuilder_ == null) { + if (constraintCase_ == 3) { + return (context.ContextOuterClass.Constraint_Schedule) constraint_; + } + return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } else { + if (constraintCase_ == 3) { + return scheduleBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + public Builder setSchedule(context.ContextOuterClass.Constraint_Schedule value) { + if (scheduleBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + scheduleBuilder_.setMessage(value); + } + constraintCase_ = 3; + return this; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + public Builder setSchedule(context.ContextOuterClass.Constraint_Schedule.Builder builderForValue) { + if (scheduleBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + scheduleBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 3; + return this; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + public Builder mergeSchedule(context.ContextOuterClass.Constraint_Schedule value) { + if (scheduleBuilder_ == null) { + if (constraintCase_ == 3 && constraint_ != context.ContextOuterClass.Constraint_Schedule.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_Schedule.newBuilder((context.ContextOuterClass.Constraint_Schedule) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 3) { + scheduleBuilder_.mergeFrom(value); + } else { + scheduleBuilder_.setMessage(value); + } + } + constraintCase_ = 3; + return this; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + public Builder clearSchedule() { + if (scheduleBuilder_ == null) { + if (constraintCase_ == 3) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 3) { + constraintCase_ = 0; + constraint_ = null; + } + scheduleBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + public context.ContextOuterClass.Constraint_Schedule.Builder getScheduleBuilder() { + return getScheduleFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_ScheduleOrBuilder getScheduleOrBuilder() { + if ((constraintCase_ == 3) && (scheduleBuilder_ != null)) { + return scheduleBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 3) { + return (context.ContextOuterClass.Constraint_Schedule) constraint_; + } + return context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_Schedule schedule = 3;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder> getScheduleFieldBuilder() { + if (scheduleBuilder_ == null) { + if (!(constraintCase_ == 3)) { + constraint_ = context.ContextOuterClass.Constraint_Schedule.getDefaultInstance(); + } + scheduleBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Schedule, context.ContextOuterClass.Constraint_Schedule.Builder, context.ContextOuterClass.Constraint_ScheduleOrBuilder>((context.ContextOuterClass.Constraint_Schedule) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 3; + onChanged(); + return scheduleBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder> endpointLocationBuilder_; + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return Whether the endpointLocation field is set. + */ + @java.lang.Override + public boolean hasEndpointLocation() { + return constraintCase_ == 4; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + * @return The endpointLocation. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointLocation getEndpointLocation() { + if (endpointLocationBuilder_ == null) { + if (constraintCase_ == 4) { + return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } else { + if (constraintCase_ == 4) { + return endpointLocationBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + public Builder setEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation value) { + if (endpointLocationBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + endpointLocationBuilder_.setMessage(value); + } + constraintCase_ = 4; + return this; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + public Builder setEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation.Builder builderForValue) { + if (endpointLocationBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + endpointLocationBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 4; + return this; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + public Builder mergeEndpointLocation(context.ContextOuterClass.Constraint_EndPointLocation value) { + if (endpointLocationBuilder_ == null) { + if (constraintCase_ == 4 && constraint_ != context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_EndPointLocation.newBuilder((context.ContextOuterClass.Constraint_EndPointLocation) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 4) { + endpointLocationBuilder_.mergeFrom(value); + } else { + endpointLocationBuilder_.setMessage(value); + } + } + constraintCase_ = 4; + return this; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + public Builder clearEndpointLocation() { + if (endpointLocationBuilder_ == null) { + if (constraintCase_ == 4) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 4) { + constraintCase_ = 0; + constraint_ = null; + } + endpointLocationBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + public context.ContextOuterClass.Constraint_EndPointLocation.Builder getEndpointLocationBuilder() { + return getEndpointLocationFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointLocationOrBuilder getEndpointLocationOrBuilder() { + if ((constraintCase_ == 4) && (endpointLocationBuilder_ != null)) { + return endpointLocationBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 4) { + return (context.ContextOuterClass.Constraint_EndPointLocation) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_EndPointLocation endpoint_location = 4;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder> getEndpointLocationFieldBuilder() { + if (endpointLocationBuilder_ == null) { + if (!(constraintCase_ == 4)) { + constraint_ = context.ContextOuterClass.Constraint_EndPointLocation.getDefaultInstance(); + } + endpointLocationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointLocation, context.ContextOuterClass.Constraint_EndPointLocation.Builder, context.ContextOuterClass.Constraint_EndPointLocationOrBuilder>((context.ContextOuterClass.Constraint_EndPointLocation) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 4; + onChanged(); + return endpointLocationBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder> endpointPriorityBuilder_; + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return Whether the endpointPriority field is set. + */ + @java.lang.Override + public boolean hasEndpointPriority() { + return constraintCase_ == 5; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * @return The endpointPriority. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority() { + if (endpointPriorityBuilder_ == null) { + if (constraintCase_ == 5) { + return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } else { + if (constraintCase_ == 5) { + return endpointPriorityBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + public Builder setEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority value) { + if (endpointPriorityBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + endpointPriorityBuilder_.setMessage(value); + } + constraintCase_ = 5; + return this; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + public Builder setEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority.Builder builderForValue) { + if (endpointPriorityBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + endpointPriorityBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 5; + return this; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + public Builder mergeEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority value) { + if (endpointPriorityBuilder_ == null) { + if (constraintCase_ == 5 && constraint_ != context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_EndPointPriority.newBuilder((context.ContextOuterClass.Constraint_EndPointPriority) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 5) { + endpointPriorityBuilder_.mergeFrom(value); + } else { + endpointPriorityBuilder_.setMessage(value); + } + } + constraintCase_ = 5; + return this; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + public Builder clearEndpointPriority() { + if (endpointPriorityBuilder_ == null) { + if (constraintCase_ == 5) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 5) { + constraintCase_ = 0; + constraint_ = null; + } + endpointPriorityBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + public context.ContextOuterClass.Constraint_EndPointPriority.Builder getEndpointPriorityBuilder() { + return getEndpointPriorityFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder() { + if ((constraintCase_ == 5) && (endpointPriorityBuilder_ != null)) { + return endpointPriorityBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 5) { + return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + } + return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder> getEndpointPriorityFieldBuilder() { + if (endpointPriorityBuilder_ == null) { + if (!(constraintCase_ == 5)) { + constraint_ = context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + } + endpointPriorityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder>((context.ContextOuterClass.Constraint_EndPointPriority) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 5; + onChanged(); + return endpointPriorityBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder> slaCapacityBuilder_; + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return Whether the slaCapacity field is set. + */ + @java.lang.Override + public boolean hasSlaCapacity() { + return constraintCase_ == 6; + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * @return The slaCapacity. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity() { + if (slaCapacityBuilder_ == null) { + if (constraintCase_ == 6) { + return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + } else { + if (constraintCase_ == 6) { + return slaCapacityBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + public Builder setSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity value) { + if (slaCapacityBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + slaCapacityBuilder_.setMessage(value); + } + constraintCase_ = 6; + return this; + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + public Builder setSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity.Builder builderForValue) { + if (slaCapacityBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + slaCapacityBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 6; + return this; + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + public Builder mergeSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity value) { + if (slaCapacityBuilder_ == null) { + if (constraintCase_ == 6 && constraint_ != context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Capacity.newBuilder((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 6) { + slaCapacityBuilder_.mergeFrom(value); + } else { + slaCapacityBuilder_.setMessage(value); + } + } + constraintCase_ = 6; + return this; + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + public Builder clearSlaCapacity() { + if (slaCapacityBuilder_ == null) { + if (constraintCase_ == 6) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 6) { + constraintCase_ = 0; + constraint_ = null; + } + slaCapacityBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + public context.ContextOuterClass.Constraint_SLA_Capacity.Builder getSlaCapacityBuilder() { + return getSlaCapacityFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder() { + if ((constraintCase_ == 6) && (slaCapacityBuilder_ != null)) { + return slaCapacityBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 6) { + return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder> getSlaCapacityFieldBuilder() { + if (slaCapacityBuilder_ == null) { + if (!(constraintCase_ == 6)) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + } + slaCapacityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder>((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 6; + onChanged(); + return slaCapacityBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder> slaLatencyBuilder_; + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return Whether the slaLatency field is set. + */ + @java.lang.Override + public boolean hasSlaLatency() { + return constraintCase_ == 7; + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + * @return The slaLatency. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency() { + if (slaLatencyBuilder_ == null) { + if (constraintCase_ == 7) { + return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + } else { + if (constraintCase_ == 7) { + return slaLatencyBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + public Builder setSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency value) { + if (slaLatencyBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + slaLatencyBuilder_.setMessage(value); + } + constraintCase_ = 7; + return this; + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + public Builder setSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency.Builder builderForValue) { + if (slaLatencyBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + slaLatencyBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 7; + return this; + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + public Builder mergeSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency value) { + if (slaLatencyBuilder_ == null) { + if (constraintCase_ == 7 && constraint_ != context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Latency.newBuilder((context.ContextOuterClass.Constraint_SLA_Latency) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 7) { + slaLatencyBuilder_.mergeFrom(value); + } else { + slaLatencyBuilder_.setMessage(value); + } + } + constraintCase_ = 7; + return this; + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + public Builder clearSlaLatency() { + if (slaLatencyBuilder_ == null) { + if (constraintCase_ == 7) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 7) { + constraintCase_ = 0; + constraint_ = null; + } + slaLatencyBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + public context.ContextOuterClass.Constraint_SLA_Latency.Builder getSlaLatencyBuilder() { + return getSlaLatencyFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder() { + if ((constraintCase_ == 7) && (slaLatencyBuilder_ != null)) { + return slaLatencyBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 7) { + return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder> getSlaLatencyFieldBuilder() { + if (slaLatencyBuilder_ == null) { + if (!(constraintCase_ == 7)) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + } + slaLatencyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder>((context.ContextOuterClass.Constraint_SLA_Latency) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 7; + onChanged(); + return slaLatencyBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder> slaAvailabilityBuilder_; + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return Whether the slaAvailability field is set. + */ + @java.lang.Override + public boolean hasSlaAvailability() { + return constraintCase_ == 8; + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + * @return The slaAvailability. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability() { + if (slaAvailabilityBuilder_ == null) { + if (constraintCase_ == 8) { + return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + } else { + if (constraintCase_ == 8) { + return slaAvailabilityBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + public Builder setSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability value) { + if (slaAvailabilityBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + slaAvailabilityBuilder_.setMessage(value); + } + constraintCase_ = 8; + return this; + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + public Builder setSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability.Builder builderForValue) { + if (slaAvailabilityBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + slaAvailabilityBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 8; + return this; + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + public Builder mergeSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability value) { + if (slaAvailabilityBuilder_ == null) { + if (constraintCase_ == 8 && constraint_ != context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Availability.newBuilder((context.ContextOuterClass.Constraint_SLA_Availability) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 8) { + slaAvailabilityBuilder_.mergeFrom(value); + } else { + slaAvailabilityBuilder_.setMessage(value); + } + } + constraintCase_ = 8; + return this; + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + public Builder clearSlaAvailability() { + if (slaAvailabilityBuilder_ == null) { + if (constraintCase_ == 8) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 8) { + constraintCase_ = 0; + constraint_ = null; + } + slaAvailabilityBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + public context.ContextOuterClass.Constraint_SLA_Availability.Builder getSlaAvailabilityBuilder() { + return getSlaAvailabilityFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder() { + if ((constraintCase_ == 8) && (slaAvailabilityBuilder_ != null)) { + return slaAvailabilityBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 8) { + return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder> getSlaAvailabilityFieldBuilder() { + if (slaAvailabilityBuilder_ == null) { + if (!(constraintCase_ == 8)) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + } + slaAvailabilityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder>((context.ContextOuterClass.Constraint_SLA_Availability) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 8; + onChanged(); + return slaAvailabilityBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder> slaIsolationBuilder_; + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return Whether the slaIsolation field is set. + */ + @java.lang.Override + public boolean hasSlaIsolation() { + return constraintCase_ == 9; + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * @return The slaIsolation. + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation() { + if (slaIsolationBuilder_ == null) { + if (constraintCase_ == 9) { + return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + } else { + if (constraintCase_ == 9) { + return slaIsolationBuilder_.getMessage(); + } + return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + public Builder setSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level value) { + if (slaIsolationBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + constraint_ = value; + onChanged(); + } else { + slaIsolationBuilder_.setMessage(value); + } + constraintCase_ = 9; + return this; + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + public Builder setSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder builderForValue) { + if (slaIsolationBuilder_ == null) { + constraint_ = builderForValue.build(); + onChanged(); + } else { + slaIsolationBuilder_.setMessage(builderForValue.build()); + } + constraintCase_ = 9; + return this; + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + public Builder mergeSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level value) { + if (slaIsolationBuilder_ == null) { + if (constraintCase_ == 9 && constraint_ != context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_).mergeFrom(value).buildPartial(); + } else { + constraint_ = value; + } + onChanged(); + } else { + if (constraintCase_ == 9) { + slaIsolationBuilder_.mergeFrom(value); + } else { + slaIsolationBuilder_.setMessage(value); + } + } + constraintCase_ = 9; + return this; + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + public Builder clearSlaIsolation() { + if (slaIsolationBuilder_ == null) { + if (constraintCase_ == 9) { + constraintCase_ = 0; + constraint_ = null; + onChanged(); + } + } else { + if (constraintCase_ == 9) { + constraintCase_ = 0; + constraint_ = null; + } + slaIsolationBuilder_.clear(); + } + return this; + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + public context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder getSlaIsolationBuilder() { + return getSlaIsolationFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + @java.lang.Override + public context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder() { + if ((constraintCase_ == 9) && (slaIsolationBuilder_ != null)) { + return slaIsolationBuilder_.getMessageOrBuilder(); + } else { + if (constraintCase_ == 9) { + return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; + } + return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder> getSlaIsolationFieldBuilder() { + if (slaIsolationBuilder_ == null) { + if (!(constraintCase_ == 9)) { + constraint_ = context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + } + slaIsolationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder>((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 9; + onChanged(); + return slaIsolationBuilder_; + } + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder> exclusionsBuilder_; + + /** + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return Whether the exclusions field is set. */ @java.lang.Override - public boolean hasEndpointPriority() { - return constraintCase_ == 5; + public boolean hasExclusions() { + return constraintCase_ == 10; } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> - * @return The endpointPriority. + * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * @return The exclusions. */ @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointPriority getEndpointPriority() { - if (endpointPriorityBuilder_ == null) { - if (constraintCase_ == 5) { - return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + public context.ContextOuterClass.Constraint_Exclusions getExclusions() { + if (exclusionsBuilder_ == null) { + if (constraintCase_ == 10) { + return (context.ContextOuterClass.Constraint_Exclusions) constraint_; } - return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } else { - if (constraintCase_ == 5) { - return endpointPriorityBuilder_.getMessage(); + if (constraintCase_ == 10) { + return exclusionsBuilder_.getMessage(); } - return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - public Builder setEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority value) { - if (endpointPriorityBuilder_ == null) { + public Builder setExclusions(context.ContextOuterClass.Constraint_Exclusions value) { + if (exclusionsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } constraint_ = value; onChanged(); } else { - endpointPriorityBuilder_.setMessage(value); + exclusionsBuilder_.setMessage(value); } - constraintCase_ = 5; + constraintCase_ = 10; return this; } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - public Builder setEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority.Builder builderForValue) { - if (endpointPriorityBuilder_ == null) { + public Builder setExclusions(context.ContextOuterClass.Constraint_Exclusions.Builder builderForValue) { + if (exclusionsBuilder_ == null) { constraint_ = builderForValue.build(); onChanged(); } else { - endpointPriorityBuilder_.setMessage(builderForValue.build()); + exclusionsBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 5; + constraintCase_ = 10; return this; } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - public Builder mergeEndpointPriority(context.ContextOuterClass.Constraint_EndPointPriority value) { - if (endpointPriorityBuilder_ == null) { - if (constraintCase_ == 5 && constraint_ != context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_EndPointPriority.newBuilder((context.ContextOuterClass.Constraint_EndPointPriority) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeExclusions(context.ContextOuterClass.Constraint_Exclusions value) { + if (exclusionsBuilder_ == null) { + if (constraintCase_ == 10 && constraint_ != context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_Exclusions.newBuilder((context.ContextOuterClass.Constraint_Exclusions) constraint_).mergeFrom(value).buildPartial(); } else { constraint_ = value; } onChanged(); } else { - if (constraintCase_ == 5) { - endpointPriorityBuilder_.mergeFrom(value); + if (constraintCase_ == 10) { + exclusionsBuilder_.mergeFrom(value); + } else { + exclusionsBuilder_.setMessage(value); } - endpointPriorityBuilder_.setMessage(value); } - constraintCase_ = 5; + constraintCase_ = 10; return this; } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - public Builder clearEndpointPriority() { - if (endpointPriorityBuilder_ == null) { - if (constraintCase_ == 5) { + public Builder clearExclusions() { + if (exclusionsBuilder_ == null) { + if (constraintCase_ == 10) { constraintCase_ = 0; constraint_ = null; onChanged(); } } else { - if (constraintCase_ == 5) { + if (constraintCase_ == 10) { constraintCase_ = 0; constraint_ = null; } - endpointPriorityBuilder_.clear(); + exclusionsBuilder_.clear(); } return this; } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - public context.ContextOuterClass.Constraint_EndPointPriority.Builder getEndpointPriorityBuilder() { - return getEndpointPriorityFieldBuilder().getBuilder(); + public context.ContextOuterClass.Constraint_Exclusions.Builder getExclusionsBuilder() { + return getExclusionsFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ @java.lang.Override - public context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder getEndpointPriorityOrBuilder() { - if ((constraintCase_ == 5) && (endpointPriorityBuilder_ != null)) { - return endpointPriorityBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder() { + if ((constraintCase_ == 10) && (exclusionsBuilder_ != null)) { + return exclusionsBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 5) { - return (context.ContextOuterClass.Constraint_EndPointPriority) constraint_; + if (constraintCase_ == 10) { + return (context.ContextOuterClass.Constraint_Exclusions) constraint_; } - return context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } } /** - * <code>.context.Constraint_EndPointPriority endpoint_priority = 5;</code> + * <code>.context.Constraint_Exclusions exclusions = 10;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder> getEndpointPriorityFieldBuilder() { - if (endpointPriorityBuilder_ == null) { - if (!(constraintCase_ == 5)) { - constraint_ = context.ContextOuterClass.Constraint_EndPointPriority.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder> getExclusionsFieldBuilder() { + if (exclusionsBuilder_ == null) { + if (!(constraintCase_ == 10)) { + constraint_ = context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); } - endpointPriorityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_EndPointPriority, context.ContextOuterClass.Constraint_EndPointPriority.Builder, context.ContextOuterClass.Constraint_EndPointPriorityOrBuilder>((context.ContextOuterClass.Constraint_EndPointPriority) constraint_, getParentForChildren(), isClean()); + exclusionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder>((context.ContextOuterClass.Constraint_Exclusions) constraint_, getParentForChildren(), isClean()); constraint_ = null; } - constraintCase_ = 5; + constraintCase_ = 10; onChanged(); - ; - return endpointPriorityBuilder_; + return exclusionsBuilder_; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder> slaCapacityBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_QoSProfile, context.ContextOuterClass.Constraint_QoSProfile.Builder, context.ContextOuterClass.Constraint_QoSProfileOrBuilder> qosProfileBuilder_; /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return Whether the slaCapacity field is set. + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return Whether the qosProfile field is set. */ @java.lang.Override - public boolean hasSlaCapacity() { - return constraintCase_ == 6; + public boolean hasQosProfile() { + return constraintCase_ == 11; } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - * @return The slaCapacity. + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + * @return The qosProfile. */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Capacity getSlaCapacity() { - if (slaCapacityBuilder_ == null) { - if (constraintCase_ == 6) { - return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; + public context.ContextOuterClass.Constraint_QoSProfile getQosProfile() { + if (qosProfileBuilder_ == null) { + if (constraintCase_ == 11) { + return (context.ContextOuterClass.Constraint_QoSProfile) constraint_; } - return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); } else { - if (constraintCase_ == 6) { - return slaCapacityBuilder_.getMessage(); + if (constraintCase_ == 11) { + return qosProfileBuilder_.getMessage(); } - return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); } } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - public Builder setSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity value) { - if (slaCapacityBuilder_ == null) { + public Builder setQosProfile(context.ContextOuterClass.Constraint_QoSProfile value) { + if (qosProfileBuilder_ == null) { if (value == null) { throw new NullPointerException(); } constraint_ = value; onChanged(); } else { - slaCapacityBuilder_.setMessage(value); + qosProfileBuilder_.setMessage(value); } - constraintCase_ = 6; + constraintCase_ = 11; return this; } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - public Builder setSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity.Builder builderForValue) { - if (slaCapacityBuilder_ == null) { + public Builder setQosProfile(context.ContextOuterClass.Constraint_QoSProfile.Builder builderForValue) { + if (qosProfileBuilder_ == null) { constraint_ = builderForValue.build(); onChanged(); } else { - slaCapacityBuilder_.setMessage(builderForValue.build()); + qosProfileBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 6; + constraintCase_ = 11; return this; } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - public Builder mergeSlaCapacity(context.ContextOuterClass.Constraint_SLA_Capacity value) { - if (slaCapacityBuilder_ == null) { - if (constraintCase_ == 6 && constraint_ != context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Capacity.newBuilder((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeQosProfile(context.ContextOuterClass.Constraint_QoSProfile value) { + if (qosProfileBuilder_ == null) { + if (constraintCase_ == 11 && constraint_ != context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance()) { + constraint_ = context.ContextOuterClass.Constraint_QoSProfile.newBuilder((context.ContextOuterClass.Constraint_QoSProfile) constraint_).mergeFrom(value).buildPartial(); } else { constraint_ = value; } onChanged(); } else { - if (constraintCase_ == 6) { - slaCapacityBuilder_.mergeFrom(value); + if (constraintCase_ == 11) { + qosProfileBuilder_.mergeFrom(value); + } else { + qosProfileBuilder_.setMessage(value); } - slaCapacityBuilder_.setMessage(value); } - constraintCase_ = 6; + constraintCase_ = 11; return this; } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - public Builder clearSlaCapacity() { - if (slaCapacityBuilder_ == null) { - if (constraintCase_ == 6) { + public Builder clearQosProfile() { + if (qosProfileBuilder_ == null) { + if (constraintCase_ == 11) { constraintCase_ = 0; constraint_ = null; onChanged(); } } else { - if (constraintCase_ == 6) { + if (constraintCase_ == 11) { constraintCase_ = 0; constraint_ = null; } - slaCapacityBuilder_.clear(); + qosProfileBuilder_.clear(); } return this; } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ - public context.ContextOuterClass.Constraint_SLA_Capacity.Builder getSlaCapacityBuilder() { - return getSlaCapacityFieldBuilder().getBuilder(); + public context.ContextOuterClass.Constraint_QoSProfile.Builder getQosProfileBuilder() { + return getQosProfileFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder getSlaCapacityOrBuilder() { - if ((constraintCase_ == 6) && (slaCapacityBuilder_ != null)) { - return slaCapacityBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.Constraint_QoSProfileOrBuilder getQosProfileOrBuilder() { + if ((constraintCase_ == 11) && (qosProfileBuilder_ != null)) { + return qosProfileBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 6) { - return (context.ContextOuterClass.Constraint_SLA_Capacity) constraint_; + if (constraintCase_ == 11) { + return (context.ContextOuterClass.Constraint_QoSProfile) constraint_; } - return context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); + return context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); + } + } + + /** + * <code>.context.Constraint_QoSProfile qos_profile = 11;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_QoSProfile, context.ContextOuterClass.Constraint_QoSProfile.Builder, context.ContextOuterClass.Constraint_QoSProfileOrBuilder> getQosProfileFieldBuilder() { + if (qosProfileBuilder_ == null) { + if (!(constraintCase_ == 11)) { + constraint_ = context.ContextOuterClass.Constraint_QoSProfile.getDefaultInstance(); + } + qosProfileBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_QoSProfile, context.ContextOuterClass.Constraint_QoSProfile.Builder, context.ContextOuterClass.Constraint_QoSProfileOrBuilder>((context.ContextOuterClass.Constraint_QoSProfile) constraint_, getParentForChildren(), isClean()); + constraint_ = null; + } + constraintCase_ = 11; + onChanged(); + return qosProfileBuilder_; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + // @@protoc_insertion_point(builder_scope:context.Constraint) + } + + // @@protoc_insertion_point(class_scope:context.Constraint) + private static final context.ContextOuterClass.Constraint DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new context.ContextOuterClass.Constraint(); + } + + public static context.ContextOuterClass.Constraint getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser<Constraint> PARSER = new com.google.protobuf.AbstractParser<Constraint>() { + + @java.lang.Override + public Constraint parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser<Constraint> parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser<Constraint> getParserForType() { + return PARSER; + } + + @java.lang.Override + public context.ContextOuterClass.Constraint getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + } + + public interface TeraFlowControllerOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TeraFlowController) + com.google.protobuf.MessageOrBuilder { + + /** + * <code>.context.ContextId context_id = 1;</code> + * @return Whether the contextId field is set. + */ + boolean hasContextId(); + + /** + * <code>.context.ContextId context_id = 1;</code> + * @return The contextId. + */ + context.ContextOuterClass.ContextId getContextId(); + + /** + * <code>.context.ContextId context_id = 1;</code> + */ + context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + + /** + * <code>string ip_address = 2;</code> + * @return The ipAddress. + */ + java.lang.String getIpAddress(); + + /** + * <code>string ip_address = 2;</code> + * @return The bytes for ipAddress. + */ + com.google.protobuf.ByteString getIpAddressBytes(); + + /** + * <code>uint32 port = 3;</code> + * @return The port. + */ + int getPort(); + } + + /** + * <pre> + * ----- Miscellaneous ------------------------------------------------------------------------------------------------- + * </pre> + * + * Protobuf type {@code context.TeraFlowController} + */ + public static final class TeraFlowController extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TeraFlowController) + TeraFlowControllerOrBuilder { + + private static final long serialVersionUID = 0L; + + // Use TeraFlowController.newBuilder() to construct. + private TeraFlowController(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + super(builder); + } + + private TeraFlowController() { + ipAddress_ = ""; + } + + @java.lang.Override + @SuppressWarnings({ "unused" }) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new TeraFlowController(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TeraFlowController_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TeraFlowController.class, context.ContextOuterClass.TeraFlowController.Builder.class); + } + + public static final int CONTEXT_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.ContextId contextId_; + + /** + * <code>.context.ContextId context_id = 1;</code> + * @return Whether the contextId field is set. + */ + @java.lang.Override + public boolean hasContextId() { + return contextId_ != null; + } + + /** + * <code>.context.ContextId context_id = 1;</code> + * @return The contextId. + */ + @java.lang.Override + public context.ContextOuterClass.ContextId getContextId() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + /** + * <code>.context.ContextId context_id = 1;</code> + */ + @java.lang.Override + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + } + + public static final int IP_ADDRESS_FIELD_NUMBER = 2; + + @SuppressWarnings("serial") + private volatile java.lang.Object ipAddress_ = ""; + + /** + * <code>string ip_address = 2;</code> + * @return The ipAddress. + */ + @java.lang.Override + public java.lang.String getIpAddress() { + java.lang.Object ref = ipAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ipAddress_ = s; + return s; + } + } + + /** + * <code>string ip_address = 2;</code> + * @return The bytes for ipAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString getIpAddressBytes() { + java.lang.Object ref = ipAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + ipAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PORT_FIELD_NUMBER = 3; + + private int port_ = 0; + + /** + * <code>uint32 port = 3;</code> + * @return The port. + */ + @java.lang.Override + public int getPort() { + return port_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) + return true; + if (isInitialized == 0) + return false; + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (contextId_ != null) { + output.writeMessage(1, getContextId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ipAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ipAddress_); + } + if (port_ != 0) { + output.writeUInt32(3, port_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) + return size; + size = 0; + if (contextId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(ipAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, ipAddress_); + } + if (port_ != 0) { + size += com.google.protobuf.CodedOutputStream.computeUInt32Size(3, port_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof context.ContextOuterClass.TeraFlowController)) { + return super.equals(obj); + } + context.ContextOuterClass.TeraFlowController other = (context.ContextOuterClass.TeraFlowController) obj; + if (hasContextId() != other.hasContextId()) + return false; + if (hasContextId()) { + if (!getContextId().equals(other.getContextId())) + return false; + } + if (!getIpAddress().equals(other.getIpAddress())) + return false; + if (getPort() != other.getPort()) + return false; + if (!getUnknownFields().equals(other.getUnknownFields())) + return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasContextId()) { + hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; + hash = (53 * hash) + getContextId().hashCode(); } + hash = (37 * hash) + IP_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getIpAddress().hashCode(); + hash = (37 * hash) + PORT_FIELD_NUMBER; + hash = (53 * hash) + getPort(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TeraFlowController parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TeraFlowController parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } - /** - * <code>.context.Constraint_SLA_Capacity sla_capacity = 6;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder> getSlaCapacityFieldBuilder() { - if (slaCapacityBuilder_ == null) { - if (!(constraintCase_ == 6)) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Capacity.getDefaultInstance(); - } - slaCapacityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Capacity, context.ContextOuterClass.Constraint_SLA_Capacity.Builder, context.ContextOuterClass.Constraint_SLA_CapacityOrBuilder>((context.ContextOuterClass.Constraint_SLA_Capacity) constraint_, getParentForChildren(), isClean()); - constraint_ = null; - } - constraintCase_ = 6; - onChanged(); - ; - return slaCapacityBuilder_; - } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder> slaLatencyBuilder_; + public static Builder newBuilder(context.ContextOuterClass.TeraFlowController prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return Whether the slaLatency field is set. - */ - @java.lang.Override - public boolean hasSlaLatency() { - return constraintCase_ == 7; - } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - * @return The slaLatency. - */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Latency getSlaLatency() { - if (slaLatencyBuilder_ == null) { - if (constraintCase_ == 7) { - return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); - } else { - if (constraintCase_ == 7) { - return slaLatencyBuilder_.getMessage(); - } - return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); - } - } + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - */ - public Builder setSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency value) { - if (slaLatencyBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - constraint_ = value; - onChanged(); - } else { - slaLatencyBuilder_.setMessage(value); - } - constraintCase_ = 7; - return this; - } + /** + * <pre> + * ----- Miscellaneous ------------------------------------------------------------------------------------------------- + * </pre> + * + * Protobuf type {@code context.TeraFlowController} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.TeraFlowController) + context.ContextOuterClass.TeraFlowControllerOrBuilder { - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - */ - public Builder setSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency.Builder builderForValue) { - if (slaLatencyBuilder_ == null) { - constraint_ = builderForValue.build(); - onChanged(); - } else { - slaLatencyBuilder_.setMessage(builderForValue.build()); - } - constraintCase_ = 7; - return this; + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - */ - public Builder mergeSlaLatency(context.ContextOuterClass.Constraint_SLA_Latency value) { - if (slaLatencyBuilder_ == null) { - if (constraintCase_ == 7 && constraint_ != context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Latency.newBuilder((context.ContextOuterClass.Constraint_SLA_Latency) constraint_).mergeFrom(value).buildPartial(); - } else { - constraint_ = value; - } - onChanged(); - } else { - if (constraintCase_ == 7) { - slaLatencyBuilder_.mergeFrom(value); - } - slaLatencyBuilder_.setMessage(value); - } - constraintCase_ = 7; - return this; + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_TeraFlowController_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TeraFlowController.class, context.ContextOuterClass.TeraFlowController.Builder.class); } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - */ - public Builder clearSlaLatency() { - if (slaLatencyBuilder_ == null) { - if (constraintCase_ == 7) { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - } - } else { - if (constraintCase_ == 7) { - constraintCase_ = 0; - constraint_ = null; - } - slaLatencyBuilder_.clear(); - } - return this; + // Construct using context.ContextOuterClass.TeraFlowController.newBuilder() + private Builder() { } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - */ - public context.ContextOuterClass.Constraint_SLA_Latency.Builder getSlaLatencyBuilder() { - return getSlaLatencyFieldBuilder().getBuilder(); + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder getSlaLatencyOrBuilder() { - if ((constraintCase_ == 7) && (slaLatencyBuilder_ != null)) { - return slaLatencyBuilder_.getMessageOrBuilder(); - } else { - if (constraintCase_ == 7) { - return (context.ContextOuterClass.Constraint_SLA_Latency) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); + public Builder clear() { + super.clear(); + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; } + ipAddress_ = ""; + port_ = 0; + return this; } - /** - * <code>.context.Constraint_SLA_Latency sla_latency = 7;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder> getSlaLatencyFieldBuilder() { - if (slaLatencyBuilder_ == null) { - if (!(constraintCase_ == 7)) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Latency.getDefaultInstance(); - } - slaLatencyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Latency, context.ContextOuterClass.Constraint_SLA_Latency.Builder, context.ContextOuterClass.Constraint_SLA_LatencyOrBuilder>((context.ContextOuterClass.Constraint_SLA_Latency) constraint_, getParentForChildren(), isClean()); - constraint_ = null; - } - constraintCase_ = 7; - onChanged(); - ; - return slaLatencyBuilder_; + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder> slaAvailabilityBuilder_; - - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return Whether the slaAvailability field is set. - */ @java.lang.Override - public boolean hasSlaAvailability() { - return constraintCase_ == 8; + public context.ContextOuterClass.TeraFlowController getDefaultInstanceForType() { + return context.ContextOuterClass.TeraFlowController.getDefaultInstance(); } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - * @return The slaAvailability. - */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Availability getSlaAvailability() { - if (slaAvailabilityBuilder_ == null) { - if (constraintCase_ == 8) { - return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); - } else { - if (constraintCase_ == 8) { - return slaAvailabilityBuilder_.getMessage(); - } - return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + public context.ContextOuterClass.TeraFlowController build() { + context.ContextOuterClass.TeraFlowController result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); } + return result; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - public Builder setSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability value) { - if (slaAvailabilityBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - constraint_ = value; - onChanged(); - } else { - slaAvailabilityBuilder_.setMessage(value); + @java.lang.Override + public context.ContextOuterClass.TeraFlowController buildPartial() { + context.ContextOuterClass.TeraFlowController result = new context.ContextOuterClass.TeraFlowController(this); + if (bitField0_ != 0) { + buildPartial0(result); } - constraintCase_ = 8; - return this; + onBuilt(); + return result; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - public Builder setSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability.Builder builderForValue) { - if (slaAvailabilityBuilder_ == null) { - constraint_ = builderForValue.build(); - onChanged(); - } else { - slaAvailabilityBuilder_.setMessage(builderForValue.build()); + private void buildPartial0(context.ContextOuterClass.TeraFlowController result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ipAddress_ = ipAddress_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.port_ = port_; } - constraintCase_ = 8; - return this; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - public Builder mergeSlaAvailability(context.ContextOuterClass.Constraint_SLA_Availability value) { - if (slaAvailabilityBuilder_ == null) { - if (constraintCase_ == 8 && constraint_ != context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Availability.newBuilder((context.ContextOuterClass.Constraint_SLA_Availability) constraint_).mergeFrom(value).buildPartial(); - } else { - constraint_ = value; - } - onChanged(); + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.TeraFlowController) { + return mergeFrom((context.ContextOuterClass.TeraFlowController) other); } else { - if (constraintCase_ == 8) { - slaAvailabilityBuilder_.mergeFrom(value); - } - slaAvailabilityBuilder_.setMessage(value); + super.mergeFrom(other); + return this; } - constraintCase_ = 8; - return this; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - public Builder clearSlaAvailability() { - if (slaAvailabilityBuilder_ == null) { - if (constraintCase_ == 8) { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - } - } else { - if (constraintCase_ == 8) { - constraintCase_ = 0; - constraint_ = null; - } - slaAvailabilityBuilder_.clear(); + public Builder mergeFrom(context.ContextOuterClass.TeraFlowController other) { + if (other == context.ContextOuterClass.TeraFlowController.getDefaultInstance()) + return this; + if (other.hasContextId()) { + mergeContextId(other.getContextId()); + } + if (!other.getIpAddress().isEmpty()) { + ipAddress_ = other.ipAddress_; + bitField0_ |= 0x00000002; + onChanged(); } + if (other.getPort() != 0) { + setPort(other.getPort()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); return this; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - public context.ContextOuterClass.Constraint_SLA_Availability.Builder getSlaAvailabilityBuilder() { - return getSlaAvailabilityFieldBuilder().getBuilder(); + @java.lang.Override + public final boolean isInitialized() { + return true; } - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder getSlaAvailabilityOrBuilder() { - if ((constraintCase_ == 8) && (slaAvailabilityBuilder_ != null)) { - return slaAvailabilityBuilder_.getMessageOrBuilder(); - } else { - if (constraintCase_ == 8) { - return (context.ContextOuterClass.Constraint_SLA_Availability) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); } - } - - /** - * <code>.context.Constraint_SLA_Availability sla_availability = 8;</code> - */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder> getSlaAvailabilityFieldBuilder() { - if (slaAvailabilityBuilder_ == null) { - if (!(constraintCase_ == 8)) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Availability.getDefaultInstance(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + ipAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 24: + { + port_ = input.readUInt32(); + bitField0_ |= 0x00000004; + break; + } + // case 24 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) } - slaAvailabilityBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Availability, context.ContextOuterClass.Constraint_SLA_Availability.Builder, context.ContextOuterClass.Constraint_SLA_AvailabilityOrBuilder>((context.ContextOuterClass.Constraint_SLA_Availability) constraint_, getParentForChildren(), isClean()); - constraint_ = null; + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); } - constraintCase_ = 8; - onChanged(); - ; - return slaAvailabilityBuilder_; + // finally + return this; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder> slaIsolationBuilder_; + private int bitField0_; + + private context.ContextOuterClass.ContextId contextId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return Whether the slaIsolation field is set. + * <code>.context.ContextId context_id = 1;</code> + * @return Whether the contextId field is set. */ - @java.lang.Override - public boolean hasSlaIsolation() { - return constraintCase_ == 9; + public boolean hasContextId() { + return ((bitField0_ & 0x00000001) != 0); } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> - * @return The slaIsolation. + * <code>.context.ContextId context_id = 1;</code> + * @return The contextId. */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Isolation_level getSlaIsolation() { - if (slaIsolationBuilder_ == null) { - if (constraintCase_ == 9) { - return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + public context.ContextOuterClass.ContextId getContextId() { + if (contextIdBuilder_ == null) { + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } else { - if (constraintCase_ == 9) { - return slaIsolationBuilder_.getMessage(); - } - return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + return contextIdBuilder_.getMessage(); } } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - public Builder setSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level value) { - if (slaIsolationBuilder_ == null) { + public Builder setContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - constraint_ = value; - onChanged(); + contextId_ = value; } else { - slaIsolationBuilder_.setMessage(value); + contextIdBuilder_.setMessage(value); } - constraintCase_ = 9; + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - public Builder setSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder builderForValue) { - if (slaIsolationBuilder_ == null) { - constraint_ = builderForValue.build(); - onChanged(); + public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { + if (contextIdBuilder_ == null) { + contextId_ = builderForValue.build(); } else { - slaIsolationBuilder_.setMessage(builderForValue.build()); + contextIdBuilder_.setMessage(builderForValue.build()); } - constraintCase_ = 9; + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - public Builder mergeSlaIsolation(context.ContextOuterClass.Constraint_SLA_Isolation_level value) { - if (slaIsolationBuilder_ == null) { - if (constraintCase_ == 9 && constraint_ != context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Isolation_level.newBuilder((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_).mergeFrom(value).buildPartial(); + public Builder mergeContextId(context.ContextOuterClass.ContextId value) { + if (contextIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); } else { - constraint_ = value; + contextId_ = value; } - onChanged(); } else { - if (constraintCase_ == 9) { - slaIsolationBuilder_.mergeFrom(value); - } - slaIsolationBuilder_.setMessage(value); + contextIdBuilder_.mergeFrom(value); } - constraintCase_ = 9; + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - public Builder clearSlaIsolation() { - if (slaIsolationBuilder_ == null) { - if (constraintCase_ == 9) { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - } - } else { - if (constraintCase_ == 9) { - constraintCase_ = 0; - constraint_ = null; - } - slaIsolationBuilder_.clear(); + public Builder clearContextId() { + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); + contextIdBuilder_ = null; } + onChanged(); return this; } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - public context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder getSlaIsolationBuilder() { - return getSlaIsolationFieldBuilder().getBuilder(); + public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getContextIdFieldBuilder().getBuilder(); } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - @java.lang.Override - public context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder getSlaIsolationOrBuilder() { - if ((constraintCase_ == 9) && (slaIsolationBuilder_ != null)) { - return slaIsolationBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { + if (contextIdBuilder_ != null) { + return contextIdBuilder_.getMessageOrBuilder(); } else { - if (constraintCase_ == 9) { - return (context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_; - } - return context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } } /** - * <code>.context.Constraint_SLA_Isolation_level sla_isolation = 9;</code> + * <code>.context.ContextId context_id = 1;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder> getSlaIsolationFieldBuilder() { - if (slaIsolationBuilder_ == null) { - if (!(constraintCase_ == 9)) { - constraint_ = context.ContextOuterClass.Constraint_SLA_Isolation_level.getDefaultInstance(); - } - slaIsolationBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_SLA_Isolation_level, context.ContextOuterClass.Constraint_SLA_Isolation_level.Builder, context.ContextOuterClass.Constraint_SLA_Isolation_levelOrBuilder>((context.ContextOuterClass.Constraint_SLA_Isolation_level) constraint_, getParentForChildren(), isClean()); - constraint_ = null; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> getContextIdFieldBuilder() { + if (contextIdBuilder_ == null) { + contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>(getContextId(), getParentForChildren(), isClean()); + contextId_ = null; } - constraintCase_ = 9; - onChanged(); - ; - return slaIsolationBuilder_; + return contextIdBuilder_; } - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder> exclusionsBuilder_; - - /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return Whether the exclusions field is set. - */ - @java.lang.Override - public boolean hasExclusions() { - return constraintCase_ == 10; - } + private java.lang.Object ipAddress_ = ""; /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> - * @return The exclusions. + * <code>string ip_address = 2;</code> + * @return The ipAddress. */ - @java.lang.Override - public context.ContextOuterClass.Constraint_Exclusions getExclusions() { - if (exclusionsBuilder_ == null) { - if (constraintCase_ == 10) { - return (context.ContextOuterClass.Constraint_Exclusions) constraint_; - } - return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); - } else { - if (constraintCase_ == 10) { - return exclusionsBuilder_.getMessage(); - } - return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); + public java.lang.String getIpAddress() { + java.lang.Object ref = ipAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ipAddress_ = s; + return s; + } else { + return (java.lang.String) ref; } } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>string ip_address = 2;</code> + * @return The bytes for ipAddress. */ - public Builder setExclusions(context.ContextOuterClass.Constraint_Exclusions value) { - if (exclusionsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - constraint_ = value; - onChanged(); + public com.google.protobuf.ByteString getIpAddressBytes() { + java.lang.Object ref = ipAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + ipAddress_ = b; + return b; } else { - exclusionsBuilder_.setMessage(value); + return (com.google.protobuf.ByteString) ref; } - constraintCase_ = 10; - return this; } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>string ip_address = 2;</code> + * @param value The ipAddress to set. + * @return This builder for chaining. */ - public Builder setExclusions(context.ContextOuterClass.Constraint_Exclusions.Builder builderForValue) { - if (exclusionsBuilder_ == null) { - constraint_ = builderForValue.build(); - onChanged(); - } else { - exclusionsBuilder_.setMessage(builderForValue.build()); + public Builder setIpAddress(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } - constraintCase_ = 10; + ipAddress_ = value; + bitField0_ |= 0x00000002; + onChanged(); return this; } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>string ip_address = 2;</code> + * @return This builder for chaining. */ - public Builder mergeExclusions(context.ContextOuterClass.Constraint_Exclusions value) { - if (exclusionsBuilder_ == null) { - if (constraintCase_ == 10 && constraint_ != context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance()) { - constraint_ = context.ContextOuterClass.Constraint_Exclusions.newBuilder((context.ContextOuterClass.Constraint_Exclusions) constraint_).mergeFrom(value).buildPartial(); - } else { - constraint_ = value; - } - onChanged(); - } else { - if (constraintCase_ == 10) { - exclusionsBuilder_.mergeFrom(value); - } - exclusionsBuilder_.setMessage(value); - } - constraintCase_ = 10; + public Builder clearIpAddress() { + ipAddress_ = getDefaultInstance().getIpAddress(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); return this; } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>string ip_address = 2;</code> + * @param value The bytes for ipAddress to set. + * @return This builder for chaining. */ - public Builder clearExclusions() { - if (exclusionsBuilder_ == null) { - if (constraintCase_ == 10) { - constraintCase_ = 0; - constraint_ = null; - onChanged(); - } - } else { - if (constraintCase_ == 10) { - constraintCase_ = 0; - constraint_ = null; - } - exclusionsBuilder_.clear(); + public Builder setIpAddressBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ipAddress_ = value; + bitField0_ |= 0x00000002; + onChanged(); return this; } + private int port_; + /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>uint32 port = 3;</code> + * @return The port. */ - public context.ContextOuterClass.Constraint_Exclusions.Builder getExclusionsBuilder() { - return getExclusionsFieldBuilder().getBuilder(); + @java.lang.Override + public int getPort() { + return port_; } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>uint32 port = 3;</code> + * @param value The port to set. + * @return This builder for chaining. */ - @java.lang.Override - public context.ContextOuterClass.Constraint_ExclusionsOrBuilder getExclusionsOrBuilder() { - if ((constraintCase_ == 10) && (exclusionsBuilder_ != null)) { - return exclusionsBuilder_.getMessageOrBuilder(); - } else { - if (constraintCase_ == 10) { - return (context.ContextOuterClass.Constraint_Exclusions) constraint_; - } - return context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); - } + public Builder setPort(int value) { + port_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; } /** - * <code>.context.Constraint_Exclusions exclusions = 10;</code> + * <code>uint32 port = 3;</code> + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder> getExclusionsFieldBuilder() { - if (exclusionsBuilder_ == null) { - if (!(constraintCase_ == 10)) { - constraint_ = context.ContextOuterClass.Constraint_Exclusions.getDefaultInstance(); - } - exclusionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Constraint_Exclusions, context.ContextOuterClass.Constraint_Exclusions.Builder, context.ContextOuterClass.Constraint_ExclusionsOrBuilder>((context.ContextOuterClass.Constraint_Exclusions) constraint_, getParentForChildren(), isClean()); - constraint_ = null; - } - constraintCase_ = 10; + public Builder clearPort() { + bitField0_ = (bitField0_ & ~0x00000004); + port_ = 0; onChanged(); - ; - return exclusionsBuilder_; + return this; } @java.lang.Override @@ -70638,44 +71867,54 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.Constraint) + // @@protoc_insertion_point(builder_scope:context.TeraFlowController) } - // @@protoc_insertion_point(class_scope:context.Constraint) - private static final context.ContextOuterClass.Constraint DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.TeraFlowController) + private static final context.ContextOuterClass.TeraFlowController DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.Constraint(); + DEFAULT_INSTANCE = new context.ContextOuterClass.TeraFlowController(); } - public static context.ContextOuterClass.Constraint getDefaultInstance() { + public static context.ContextOuterClass.TeraFlowController getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<Constraint> PARSER = new com.google.protobuf.AbstractParser<Constraint>() { + private static final com.google.protobuf.Parser<TeraFlowController> PARSER = new com.google.protobuf.AbstractParser<TeraFlowController>() { @java.lang.Override - public Constraint parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Constraint(input, extensionRegistry); + public TeraFlowController parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<Constraint> parser() { + public static com.google.protobuf.Parser<TeraFlowController> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<Constraint> getParserForType() { + public com.google.protobuf.Parser<TeraFlowController> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.Constraint getDefaultInstanceForType() { + public context.ContextOuterClass.TeraFlowController getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface TeraFlowControllerOrBuilder extends // @@protoc_insertion_point(interface_extends:context.TeraFlowController) + public interface AuthenticationResultOrBuilder extends // @@protoc_insertion_point(interface_extends:context.AuthenticationResult) com.google.protobuf.MessageOrBuilder { /** @@ -70696,120 +71935,41 @@ public final class ContextOuterClass { context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); /** - * <code>string ip_address = 2;</code> - * @return The ipAddress. - */ - java.lang.String getIpAddress(); - - /** - * <code>string ip_address = 2;</code> - * @return The bytes for ipAddress. - */ - com.google.protobuf.ByteString getIpAddressBytes(); - - /** - * <code>uint32 port = 3;</code> - * @return The port. + * <code>bool authenticated = 2;</code> + * @return The authenticated. */ - int getPort(); + boolean getAuthenticated(); } /** - * <pre> - * ----- Miscellaneous ------------------------------------------------------------------------------------------------- - * </pre> - * - * Protobuf type {@code context.TeraFlowController} + * Protobuf type {@code context.AuthenticationResult} */ - public static final class TeraFlowController extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.TeraFlowController) - TeraFlowControllerOrBuilder { + public static final class AuthenticationResult extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.AuthenticationResult) + AuthenticationResultOrBuilder { private static final long serialVersionUID = 0L; - // Use TeraFlowController.newBuilder() to construct. - private TeraFlowController(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use AuthenticationResult.newBuilder() to construct. + private AuthenticationResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private TeraFlowController() { - ipAddress_ = ""; + private AuthenticationResult() { } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new TeraFlowController(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private TeraFlowController(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.ContextId.Builder subBuilder = null; - if (contextId_ != null) { - subBuilder = contextId_.toBuilder(); - } - contextId_ = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextId_); - contextId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - ipAddress_ = s; - break; - } - case 24: - { - port_ = input.readUInt32(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } + return new AuthenticationResult(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; + return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TeraFlowController_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TeraFlowController.class, context.ContextOuterClass.TeraFlowController.Builder.class); + return context.ContextOuterClass.internal_static_context_AuthenticationResult_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.AuthenticationResult.class, context.ContextOuterClass.AuthenticationResult.Builder.class); } public static final int CONTEXT_ID_FIELD_NUMBER = 1; @@ -70839,57 +71999,20 @@ public final class ContextOuterClass { */ @java.lang.Override public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return getContextId(); - } - - public static final int IP_ADDRESS_FIELD_NUMBER = 2; - - private volatile java.lang.Object ipAddress_; - - /** - * <code>string ip_address = 2;</code> - * @return The ipAddress. - */ - @java.lang.Override - public java.lang.String getIpAddress() { - java.lang.Object ref = ipAddress_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - ipAddress_ = s; - return s; - } - } - - /** - * <code>string ip_address = 2;</code> - * @return The bytes for ipAddress. - */ - @java.lang.Override - public com.google.protobuf.ByteString getIpAddressBytes() { - java.lang.Object ref = ipAddress_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - ipAddress_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; } - public static final int PORT_FIELD_NUMBER = 3; + public static final int AUTHENTICATED_FIELD_NUMBER = 2; - private int port_; + private boolean authenticated_ = false; /** - * <code>uint32 port = 3;</code> - * @return The port. + * <code>bool authenticated = 2;</code> + * @return The authenticated. */ @java.lang.Override - public int getPort() { - return port_; + public boolean getAuthenticated() { + return authenticated_; } private byte memoizedIsInitialized = -1; @@ -70910,13 +72033,10 @@ public final class ContextOuterClass { if (contextId_ != null) { output.writeMessage(1, getContextId()); } - if (!getIpAddressBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, ipAddress_); - } - if (port_ != 0) { - output.writeUInt32(3, port_); + if (authenticated_ != false) { + output.writeBool(2, authenticated_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -70928,13 +72048,10 @@ public final class ContextOuterClass { if (contextId_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); } - if (!getIpAddressBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, ipAddress_); - } - if (port_ != 0) { - size += com.google.protobuf.CodedOutputStream.computeUInt32Size(3, port_); + if (authenticated_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, authenticated_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -70944,21 +72061,19 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.TeraFlowController)) { + if (!(obj instanceof context.ContextOuterClass.AuthenticationResult)) { return super.equals(obj); } - context.ContextOuterClass.TeraFlowController other = (context.ContextOuterClass.TeraFlowController) obj; + context.ContextOuterClass.AuthenticationResult other = (context.ContextOuterClass.AuthenticationResult) obj; if (hasContextId() != other.hasContextId()) return false; if (hasContextId()) { if (!getContextId().equals(other.getContextId())) return false; } - if (!getIpAddress().equals(other.getIpAddress())) - return false; - if (getPort() != other.getPort()) + if (getAuthenticated() != other.getAuthenticated()) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -70974,60 +72089,58 @@ public final class ContextOuterClass { hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; hash = (53 * hash) + getContextId().hashCode(); } - hash = (37 * hash) + IP_ADDRESS_FIELD_NUMBER; - hash = (53 * hash) + getIpAddress().hashCode(); - hash = (37 * hash) + PORT_FIELD_NUMBER; - hash = (53 * hash) + getPort(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (37 * hash) + AUTHENTICATED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAuthenticated()); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.TeraFlowController parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.TeraFlowController parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.TeraFlowController parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.TeraFlowController parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.TeraFlowController parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.TeraFlowController parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.TeraFlowController parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.TeraFlowController parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.TeraFlowController parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -71040,7 +72153,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.TeraFlowController prototype) { + public static Builder newBuilder(context.ContextOuterClass.AuthenticationResult prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -71056,66 +72169,54 @@ public final class ContextOuterClass { } /** - * <pre> - * ----- Miscellaneous ------------------------------------------------------------------------------------------------- - * </pre> - * - * Protobuf type {@code context.TeraFlowController} + * Protobuf type {@code context.AuthenticationResult} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.TeraFlowController) - context.ContextOuterClass.TeraFlowControllerOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.AuthenticationResult) + context.ContextOuterClass.AuthenticationResultOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; + return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_TeraFlowController_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.TeraFlowController.class, context.ContextOuterClass.TeraFlowController.Builder.class); + return context.ContextOuterClass.internal_static_context_AuthenticationResult_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.AuthenticationResult.class, context.ContextOuterClass.AuthenticationResult.Builder.class); } - // Construct using context.ContextOuterClass.TeraFlowController.newBuilder() + // Construct using context.ContextOuterClass.AuthenticationResult.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (contextIdBuilder_ == null) { - contextId_ = null; - } else { - contextId_ = null; + bitField0_ = 0; + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } - ipAddress_ = ""; - port_ = 0; + authenticated_ = false; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_TeraFlowController_descriptor; + return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; } @java.lang.Override - public context.ContextOuterClass.TeraFlowController getDefaultInstanceForType() { - return context.ContextOuterClass.TeraFlowController.getDefaultInstance(); + public context.ContextOuterClass.AuthenticationResult getDefaultInstanceForType() { + return context.ContextOuterClass.AuthenticationResult.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.TeraFlowController build() { - context.ContextOuterClass.TeraFlowController result = buildPartial(); + public context.ContextOuterClass.AuthenticationResult build() { + context.ContextOuterClass.AuthenticationResult result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -71123,73 +72224,45 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.TeraFlowController buildPartial() { - context.ContextOuterClass.TeraFlowController result = new context.ContextOuterClass.TeraFlowController(this); - if (contextIdBuilder_ == null) { - result.contextId_ = contextId_; - } else { - result.contextId_ = contextIdBuilder_.build(); + public context.ContextOuterClass.AuthenticationResult buildPartial() { + context.ContextOuterClass.AuthenticationResult result = new context.ContextOuterClass.AuthenticationResult(this); + if (bitField0_ != 0) { + buildPartial0(result); } - result.ipAddress_ = ipAddress_; - result.port_ = port_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.AuthenticationResult result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contextId_ = contextIdBuilder_ == null ? contextId_ : contextIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.authenticated_ = authenticated_; + } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.TeraFlowController) { - return mergeFrom((context.ContextOuterClass.TeraFlowController) other); + if (other instanceof context.ContextOuterClass.AuthenticationResult) { + return mergeFrom((context.ContextOuterClass.AuthenticationResult) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.TeraFlowController other) { - if (other == context.ContextOuterClass.TeraFlowController.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.AuthenticationResult other) { + if (other == context.ContextOuterClass.AuthenticationResult.getDefaultInstance()) return this; if (other.hasContextId()) { mergeContextId(other.getContextId()); } - if (!other.getIpAddress().isEmpty()) { - ipAddress_ = other.ipAddress_; - onChanged(); - } - if (other.getPort() != 0) { - setPort(other.getPort()); + if (other.getAuthenticated() != false) { + setAuthenticated(other.getAuthenticated()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -71201,20 +72274,54 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.TeraFlowController parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getContextIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 16: + { + authenticated_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } + // case 16 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.TeraFlowController) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private context.ContextOuterClass.ContextId contextId_; private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; @@ -71224,7 +72331,7 @@ public final class ContextOuterClass { * @return Whether the contextId field is set. */ public boolean hasContextId() { - return contextIdBuilder_ != null || contextId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** @@ -71248,10 +72355,11 @@ public final class ContextOuterClass { throw new NullPointerException(); } contextId_ = value; - onChanged(); } else { contextIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -71261,10 +72369,11 @@ public final class ContextOuterClass { public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { if (contextIdBuilder_ == null) { contextId_ = builderForValue.build(); - onChanged(); } else { contextIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -71273,15 +72382,16 @@ public final class ContextOuterClass { */ public Builder mergeContextId(context.ContextOuterClass.ContextId value) { if (contextIdBuilder_ == null) { - if (contextId_ != null) { - contextId_ = context.ContextOuterClass.ContextId.newBuilder(contextId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && contextId_ != null && contextId_ != context.ContextOuterClass.ContextId.getDefaultInstance()) { + getContextIdBuilder().mergeFrom(value); } else { contextId_ = value; } - onChanged(); } else { contextIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } @@ -71289,13 +72399,13 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 1;</code> */ public Builder clearContextId() { - if (contextIdBuilder_ == null) { - contextId_ = null; - onChanged(); - } else { - contextId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + contextId_ = null; + if (contextIdBuilder_ != null) { + contextIdBuilder_.dispose(); contextIdBuilder_ = null; } + onChanged(); return this; } @@ -71303,6 +72413,7 @@ public final class ContextOuterClass { * <code>.context.ContextId context_id = 1;</code> */ public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getContextIdFieldBuilder().getBuilder(); } @@ -71329,106 +72440,36 @@ public final class ContextOuterClass { return contextIdBuilder_; } - private java.lang.Object ipAddress_ = ""; - - /** - * <code>string ip_address = 2;</code> - * @return The ipAddress. - */ - public java.lang.String getIpAddress() { - java.lang.Object ref = ipAddress_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - ipAddress_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - - /** - * <code>string ip_address = 2;</code> - * @return The bytes for ipAddress. - */ - public com.google.protobuf.ByteString getIpAddressBytes() { - java.lang.Object ref = ipAddress_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - ipAddress_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - /** - * <code>string ip_address = 2;</code> - * @param value The ipAddress to set. - * @return This builder for chaining. - */ - public Builder setIpAddress(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - ipAddress_ = value; - onChanged(); - return this; - } - - /** - * <code>string ip_address = 2;</code> - * @return This builder for chaining. - */ - public Builder clearIpAddress() { - ipAddress_ = getDefaultInstance().getIpAddress(); - onChanged(); - return this; - } - - /** - * <code>string ip_address = 2;</code> - * @param value The bytes for ipAddress to set. - * @return This builder for chaining. - */ - public Builder setIpAddressBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - ipAddress_ = value; - onChanged(); - return this; - } - - private int port_; + private boolean authenticated_; /** - * <code>uint32 port = 3;</code> - * @return The port. + * <code>bool authenticated = 2;</code> + * @return The authenticated. */ @java.lang.Override - public int getPort() { - return port_; + public boolean getAuthenticated() { + return authenticated_; } /** - * <code>uint32 port = 3;</code> - * @param value The port to set. + * <code>bool authenticated = 2;</code> + * @param value The authenticated to set. * @return This builder for chaining. */ - public Builder setPort(int value) { - port_ = value; + public Builder setAuthenticated(boolean value) { + authenticated_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>uint32 port = 3;</code> + * <code>bool authenticated = 2;</code> * @return This builder for chaining. */ - public Builder clearPort() { - port_ = 0; + public Builder clearAuthenticated() { + bitField0_ = (bitField0_ & ~0x00000002); + authenticated_ = false; onChanged(); return this; } @@ -71442,198 +72483,141 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.TeraFlowController) + // @@protoc_insertion_point(builder_scope:context.AuthenticationResult) } - // @@protoc_insertion_point(class_scope:context.TeraFlowController) - private static final context.ContextOuterClass.TeraFlowController DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.AuthenticationResult) + private static final context.ContextOuterClass.AuthenticationResult DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.TeraFlowController(); + DEFAULT_INSTANCE = new context.ContextOuterClass.AuthenticationResult(); } - public static context.ContextOuterClass.TeraFlowController getDefaultInstance() { + public static context.ContextOuterClass.AuthenticationResult getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<TeraFlowController> PARSER = new com.google.protobuf.AbstractParser<TeraFlowController>() { + private static final com.google.protobuf.Parser<AuthenticationResult> PARSER = new com.google.protobuf.AbstractParser<AuthenticationResult>() { @java.lang.Override - public TeraFlowController parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new TeraFlowController(input, extensionRegistry); + public AuthenticationResult parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<TeraFlowController> parser() { + public static com.google.protobuf.Parser<AuthenticationResult> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<TeraFlowController> getParserForType() { + public com.google.protobuf.Parser<AuthenticationResult> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.TeraFlowController getDefaultInstanceForType() { + public context.ContextOuterClass.AuthenticationResult getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface AuthenticationResultOrBuilder extends // @@protoc_insertion_point(interface_extends:context.AuthenticationResult) + public interface OpticalConfigIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfigId) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.ContextId context_id = 1;</code> - * @return Whether the contextId field is set. - */ - boolean hasContextId(); - - /** - * <code>.context.ContextId context_id = 1;</code> - * @return The contextId. - */ - context.ContextOuterClass.ContextId getContextId(); - - /** - * <code>.context.ContextId context_id = 1;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @return The opticalconfigUuid. */ - context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder(); + java.lang.String getOpticalconfigUuid(); /** - * <code>bool authenticated = 2;</code> - * @return The authenticated. + * <code>string opticalconfig_uuid = 1;</code> + * @return The bytes for opticalconfigUuid. */ - boolean getAuthenticated(); + com.google.protobuf.ByteString getOpticalconfigUuidBytes(); } /** - * Protobuf type {@code context.AuthenticationResult} + * <pre> + * ---------------- Experimental ------------------------ + * </pre> + * + * Protobuf type {@code context.OpticalConfigId} */ - public static final class AuthenticationResult extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.AuthenticationResult) - AuthenticationResultOrBuilder { + public static final class OpticalConfigId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfigId) + OpticalConfigIdOrBuilder { private static final long serialVersionUID = 0L; - // Use AuthenticationResult.newBuilder() to construct. - private AuthenticationResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalConfigId.newBuilder() to construct. + private OpticalConfigId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private AuthenticationResult() { + private OpticalConfigId() { + opticalconfigUuid_ = ""; } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new AuthenticationResult(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private AuthenticationResult(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.ContextId.Builder subBuilder = null; - if (contextId_ != null) { - subBuilder = contextId_.toBuilder(); - } - contextId_ = input.readMessage(context.ContextOuterClass.ContextId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(contextId_); - contextId_ = subBuilder.buildPartial(); - } - break; - } - case 16: - { - authenticated_ = input.readBool(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } + return new OpticalConfigId(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_AuthenticationResult_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.AuthenticationResult.class, context.ContextOuterClass.AuthenticationResult.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigId.class, context.ContextOuterClass.OpticalConfigId.Builder.class); } - public static final int CONTEXT_ID_FIELD_NUMBER = 1; - - private context.ContextOuterClass.ContextId contextId_; - - /** - * <code>.context.ContextId context_id = 1;</code> - * @return Whether the contextId field is set. - */ - @java.lang.Override - public boolean hasContextId() { - return contextId_ != null; - } + public static final int OPTICALCONFIG_UUID_FIELD_NUMBER = 1; - /** - * <code>.context.ContextId context_id = 1;</code> - * @return The contextId. - */ - @java.lang.Override - public context.ContextOuterClass.ContextId getContextId() { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } + @SuppressWarnings("serial") + private volatile java.lang.Object opticalconfigUuid_ = ""; /** - * <code>.context.ContextId context_id = 1;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @return The opticalconfigUuid. */ @java.lang.Override - public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - return getContextId(); + public java.lang.String getOpticalconfigUuid() { + java.lang.Object ref = opticalconfigUuid_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + opticalconfigUuid_ = s; + return s; + } } - public static final int AUTHENTICATED_FIELD_NUMBER = 2; - - private boolean authenticated_; - /** - * <code>bool authenticated = 2;</code> - * @return The authenticated. + * <code>string opticalconfig_uuid = 1;</code> + * @return The bytes for opticalconfigUuid. */ @java.lang.Override - public boolean getAuthenticated() { - return authenticated_; + public com.google.protobuf.ByteString getOpticalconfigUuidBytes() { + java.lang.Object ref = opticalconfigUuid_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + opticalconfigUuid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } } private byte memoizedIsInitialized = -1; @@ -71651,13 +72635,10 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (contextId_ != null) { - output.writeMessage(1, getContextId()); - } - if (authenticated_ != false) { - output.writeBool(2, authenticated_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(opticalconfigUuid_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, opticalconfigUuid_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -71666,13 +72647,10 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (contextId_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getContextId()); - } - if (authenticated_ != false) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, authenticated_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(opticalconfigUuid_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, opticalconfigUuid_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -71682,19 +72660,13 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.AuthenticationResult)) { + if (!(obj instanceof context.ContextOuterClass.OpticalConfigId)) { return super.equals(obj); } - context.ContextOuterClass.AuthenticationResult other = (context.ContextOuterClass.AuthenticationResult) obj; - if (hasContextId() != other.hasContextId()) - return false; - if (hasContextId()) { - if (!getContextId().equals(other.getContextId())) - return false; - } - if (getAuthenticated() != other.getAuthenticated()) + context.ContextOuterClass.OpticalConfigId other = (context.ContextOuterClass.OpticalConfigId) obj; + if (!getOpticalconfigUuid().equals(other.getOpticalconfigUuid())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -71706,62 +72678,58 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (hasContextId()) { - hash = (37 * hash) + CONTEXT_ID_FIELD_NUMBER; - hash = (53 * hash) + getContextId().hashCode(); - } - hash = (37 * hash) + AUTHENTICATED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAuthenticated()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (37 * hash) + OPTICALCONFIG_UUID_FIELD_NUMBER; + hash = (53 * hash) + getOpticalconfigUuid().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.AuthenticationResult parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.AuthenticationResult parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.AuthenticationResult parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.AuthenticationResult parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -71774,7 +72742,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.AuthenticationResult prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalConfigId prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -71790,61 +72758,53 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.AuthenticationResult} + * <pre> + * ---------------- Experimental ------------------------ + * </pre> + * + * Protobuf type {@code context.OpticalConfigId} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.AuthenticationResult) - context.ContextOuterClass.AuthenticationResultOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfigId) + context.ContextOuterClass.OpticalConfigIdOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_AuthenticationResult_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.AuthenticationResult.class, context.ContextOuterClass.AuthenticationResult.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigId.class, context.ContextOuterClass.OpticalConfigId.Builder.class); } - // Construct using context.ContextOuterClass.AuthenticationResult.newBuilder() + // Construct using context.ContextOuterClass.OpticalConfigId.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (contextIdBuilder_ == null) { - contextId_ = null; - } else { - contextId_ = null; - contextIdBuilder_ = null; - } - authenticated_ = false; + bitField0_ = 0; + opticalconfigUuid_ = ""; return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_AuthenticationResult_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; } @java.lang.Override - public context.ContextOuterClass.AuthenticationResult getDefaultInstanceForType() { - return context.ContextOuterClass.AuthenticationResult.getDefaultInstance(); + public context.ContextOuterClass.OpticalConfigId getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalConfigId.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.AuthenticationResult build() { - context.ContextOuterClass.AuthenticationResult result = buildPartial(); + public context.ContextOuterClass.OpticalConfigId build() { + context.ContextOuterClass.OpticalConfigId result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -71852,68 +72812,41 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.AuthenticationResult buildPartial() { - context.ContextOuterClass.AuthenticationResult result = new context.ContextOuterClass.AuthenticationResult(this); - if (contextIdBuilder_ == null) { - result.contextId_ = contextId_; - } else { - result.contextId_ = contextIdBuilder_.build(); + public context.ContextOuterClass.OpticalConfigId buildPartial() { + context.ContextOuterClass.OpticalConfigId result = new context.ContextOuterClass.OpticalConfigId(this); + if (bitField0_ != 0) { + buildPartial0(result); } - result.authenticated_ = authenticated_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.OpticalConfigId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.opticalconfigUuid_ = opticalconfigUuid_; + } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.AuthenticationResult) { - return mergeFrom((context.ContextOuterClass.AuthenticationResult) other); + if (other instanceof context.ContextOuterClass.OpticalConfigId) { + return mergeFrom((context.ContextOuterClass.OpticalConfigId) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.AuthenticationResult other) { - if (other == context.ContextOuterClass.AuthenticationResult.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalConfigId other) { + if (other == context.ContextOuterClass.OpticalConfigId.getDefaultInstance()) return this; - if (other.hasContextId()) { - mergeContextId(other.getContextId()); - } - if (other.getAuthenticated() != false) { - setAuthenticated(other.getAuthenticated()); + if (!other.getOpticalconfigUuid().isEmpty()) { + opticalconfigUuid_ = other.opticalconfigUuid_; + bitField0_ |= 0x00000001; + onChanged(); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -71925,162 +72858,118 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.AuthenticationResult parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + opticalconfigUuid_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.AuthenticationResult) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private context.ContextOuterClass.ContextId contextId_; - - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> contextIdBuilder_; - - /** - * <code>.context.ContextId context_id = 1;</code> - * @return Whether the contextId field is set. - */ - public boolean hasContextId() { - return contextIdBuilder_ != null || contextId_ != null; - } - - /** - * <code>.context.ContextId context_id = 1;</code> - * @return The contextId. - */ - public context.ContextOuterClass.ContextId getContextId() { - if (contextIdBuilder_ == null) { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; - } else { - return contextIdBuilder_.getMessage(); - } - } - - /** - * <code>.context.ContextId context_id = 1;</code> - */ - public Builder setContextId(context.ContextOuterClass.ContextId value) { - if (contextIdBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - contextId_ = value; onChanged(); - } else { - contextIdBuilder_.setMessage(value); } + // finally return this; } - /** - * <code>.context.ContextId context_id = 1;</code> - */ - public Builder setContextId(context.ContextOuterClass.ContextId.Builder builderForValue) { - if (contextIdBuilder_ == null) { - contextId_ = builderForValue.build(); - onChanged(); - } else { - contextIdBuilder_.setMessage(builderForValue.build()); - } - return this; - } + private int bitField0_; - /** - * <code>.context.ContextId context_id = 1;</code> - */ - public Builder mergeContextId(context.ContextOuterClass.ContextId value) { - if (contextIdBuilder_ == null) { - if (contextId_ != null) { - contextId_ = context.ContextOuterClass.ContextId.newBuilder(contextId_).mergeFrom(value).buildPartial(); - } else { - contextId_ = value; - } - onChanged(); - } else { - contextIdBuilder_.mergeFrom(value); - } - return this; - } + private java.lang.Object opticalconfigUuid_ = ""; /** - * <code>.context.ContextId context_id = 1;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @return The opticalconfigUuid. */ - public Builder clearContextId() { - if (contextIdBuilder_ == null) { - contextId_ = null; - onChanged(); + public java.lang.String getOpticalconfigUuid() { + java.lang.Object ref = opticalconfigUuid_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + opticalconfigUuid_ = s; + return s; } else { - contextId_ = null; - contextIdBuilder_ = null; + return (java.lang.String) ref; } - return this; - } - - /** - * <code>.context.ContextId context_id = 1;</code> - */ - public context.ContextOuterClass.ContextId.Builder getContextIdBuilder() { - onChanged(); - return getContextIdFieldBuilder().getBuilder(); } /** - * <code>.context.ContextId context_id = 1;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @return The bytes for opticalconfigUuid. */ - public context.ContextOuterClass.ContextIdOrBuilder getContextIdOrBuilder() { - if (contextIdBuilder_ != null) { - return contextIdBuilder_.getMessageOrBuilder(); + public com.google.protobuf.ByteString getOpticalconfigUuidBytes() { + java.lang.Object ref = opticalconfigUuid_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + opticalconfigUuid_ = b; + return b; } else { - return contextId_ == null ? context.ContextOuterClass.ContextId.getDefaultInstance() : contextId_; + return (com.google.protobuf.ByteString) ref; } } /** - * <code>.context.ContextId context_id = 1;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @param value The opticalconfigUuid to set. + * @return This builder for chaining. */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder> getContextIdFieldBuilder() { - if (contextIdBuilder_ == null) { - contextIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ContextId, context.ContextOuterClass.ContextId.Builder, context.ContextOuterClass.ContextIdOrBuilder>(getContextId(), getParentForChildren(), isClean()); - contextId_ = null; + public Builder setOpticalconfigUuid(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); } - return contextIdBuilder_; - } - - private boolean authenticated_; - - /** - * <code>bool authenticated = 2;</code> - * @return The authenticated. - */ - @java.lang.Override - public boolean getAuthenticated() { - return authenticated_; + opticalconfigUuid_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; } /** - * <code>bool authenticated = 2;</code> - * @param value The authenticated to set. + * <code>string opticalconfig_uuid = 1;</code> * @return This builder for chaining. */ - public Builder setAuthenticated(boolean value) { - authenticated_ = value; + public Builder clearOpticalconfigUuid() { + opticalconfigUuid_ = getDefaultInstance().getOpticalconfigUuid(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); return this; } /** - * <code>bool authenticated = 2;</code> + * <code>string opticalconfig_uuid = 1;</code> + * @param value The bytes for opticalconfigUuid to set. * @return This builder for chaining. */ - public Builder clearAuthenticated() { - authenticated_ = false; + public Builder setOpticalconfigUuidBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + opticalconfigUuid_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } @@ -72094,176 +72983,233 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.AuthenticationResult) + // @@protoc_insertion_point(builder_scope:context.OpticalConfigId) } - // @@protoc_insertion_point(class_scope:context.AuthenticationResult) - private static final context.ContextOuterClass.AuthenticationResult DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalConfigId) + private static final context.ContextOuterClass.OpticalConfigId DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.AuthenticationResult(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfigId(); } - public static context.ContextOuterClass.AuthenticationResult getDefaultInstance() { + public static context.ContextOuterClass.OpticalConfigId getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<AuthenticationResult> PARSER = new com.google.protobuf.AbstractParser<AuthenticationResult>() { + private static final com.google.protobuf.Parser<OpticalConfigId> PARSER = new com.google.protobuf.AbstractParser<OpticalConfigId>() { @java.lang.Override - public AuthenticationResult parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new AuthenticationResult(input, extensionRegistry); + public OpticalConfigId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<AuthenticationResult> parser() { + public static com.google.protobuf.Parser<OpticalConfigId> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<AuthenticationResult> getParserForType() { + public com.google.protobuf.Parser<OpticalConfigId> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.AuthenticationResult getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalConfigId getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalConfigIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfigId) + public interface OpticalConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfig) com.google.protobuf.MessageOrBuilder { /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The opticalconfigUuid. + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return Whether the opticalconfigId field is set. */ - java.lang.String getOpticalconfigUuid(); + boolean hasOpticalconfigId(); /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The bytes for opticalconfigUuid. + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return The opticalconfigId. */ - com.google.protobuf.ByteString getOpticalconfigUuidBytes(); - } + context.ContextOuterClass.OpticalConfigId getOpticalconfigId(); - /** - * <pre> - * ---------------- Experimental ------------------------ - * </pre> - * - * Protobuf type {@code context.OpticalConfigId} + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder(); + + /** + * <code>string config = 2;</code> + * @return The config. + */ + java.lang.String getConfig(); + + /** + * <code>string config = 2;</code> + * @return The bytes for config. + */ + com.google.protobuf.ByteString getConfigBytes(); + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return Whether the deviceId field is set. + */ + boolean hasDeviceId(); + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return The deviceId. + */ + context.ContextOuterClass.DeviceId getDeviceId(); + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder(); + } + + /** + * Protobuf type {@code context.OpticalConfig} */ - public static final class OpticalConfigId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfigId) - OpticalConfigIdOrBuilder { + public static final class OpticalConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfig) + OpticalConfigOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalConfigId.newBuilder() to construct. - private OpticalConfigId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalConfig.newBuilder() to construct. + private OpticalConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalConfigId() { - opticalconfigUuid_ = ""; + private OpticalConfig() { + config_ = ""; } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalConfigId(); + return new OpticalConfig(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; } @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_OpticalConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfig.class, context.ContextOuterClass.OpticalConfig.Builder.class); } - private OpticalConfigId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - opticalconfigUuid_ = s; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } + public static final int OPTICALCONFIG_ID_FIELD_NUMBER = 1; + + private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return Whether the opticalconfigId field is set. + */ + @java.lang.Override + public boolean hasOpticalconfigId() { + return opticalconfigId_ != null; } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return The opticalconfigId. + */ + @java.lang.Override + public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; } + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfigId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigId.class, context.ContextOuterClass.OpticalConfigId.Builder.class); + public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; } - public static final int OPTICALCONFIG_UUID_FIELD_NUMBER = 1; + public static final int CONFIG_FIELD_NUMBER = 2; - private volatile java.lang.Object opticalconfigUuid_; + @SuppressWarnings("serial") + private volatile java.lang.Object config_ = ""; /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The opticalconfigUuid. + * <code>string config = 2;</code> + * @return The config. */ @java.lang.Override - public java.lang.String getOpticalconfigUuid() { - java.lang.Object ref = opticalconfigUuid_; + public java.lang.String getConfig() { + java.lang.Object ref = config_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - opticalconfigUuid_ = s; + config_ = s; return s; } } /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The bytes for opticalconfigUuid. + * <code>string config = 2;</code> + * @return The bytes for config. */ @java.lang.Override - public com.google.protobuf.ByteString getOpticalconfigUuidBytes() { - java.lang.Object ref = opticalconfigUuid_; + public com.google.protobuf.ByteString getConfigBytes() { + java.lang.Object ref = config_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - opticalconfigUuid_ = b; + config_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } + public static final int DEVICE_ID_FIELD_NUMBER = 3; + + private context.ContextOuterClass.DeviceId deviceId_; + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return Whether the deviceId field is set. + */ + @java.lang.Override + public boolean hasDeviceId() { + return deviceId_ != null; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return The deviceId. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceId getDeviceId() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + @java.lang.Override + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -72279,10 +73225,16 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getOpticalconfigUuidBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, opticalconfigUuid_); + if (opticalconfigId_ != null) { + output.writeMessage(1, getOpticalconfigId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(config_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, config_); + } + if (deviceId_ != null) { + output.writeMessage(3, getDeviceId()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -72291,10 +73243,16 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!getOpticalconfigUuidBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, opticalconfigUuid_); + if (opticalconfigId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOpticalconfigId()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(config_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, config_); + } + if (deviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getDeviceId()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -72304,13 +73262,25 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalConfigId)) { + if (!(obj instanceof context.ContextOuterClass.OpticalConfig)) { return super.equals(obj); } - context.ContextOuterClass.OpticalConfigId other = (context.ContextOuterClass.OpticalConfigId) obj; - if (!getOpticalconfigUuid().equals(other.getOpticalconfigUuid())) + context.ContextOuterClass.OpticalConfig other = (context.ContextOuterClass.OpticalConfig) obj; + if (hasOpticalconfigId() != other.hasOpticalconfigId()) + return false; + if (hasOpticalconfigId()) { + if (!getOpticalconfigId().equals(other.getOpticalconfigId())) + return false; + } + if (!getConfig().equals(other.getConfig())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (hasDeviceId() != other.hasDeviceId()) + return false; + if (hasDeviceId()) { + if (!getDeviceId().equals(other.getDeviceId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -72322,58 +73292,66 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + OPTICALCONFIG_UUID_FIELD_NUMBER; - hash = (53 * hash) + getOpticalconfigUuid().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + if (hasOpticalconfigId()) { + hash = (37 * hash) + OPTICALCONFIG_ID_FIELD_NUMBER; + hash = (53 * hash) + getOpticalconfigId().hashCode(); + } + hash = (37 * hash) + CONFIG_FIELD_NUMBER; + hash = (53 * hash) + getConfig().hashCode(); + if (hasDeviceId()) { + hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getDeviceId().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalConfigId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfig parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -72386,7 +73364,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalConfigId prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalConfig prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -72402,59 +73380,59 @@ public final class ContextOuterClass { } /** - * <pre> - * ---------------- Experimental ------------------------ - * </pre> - * - * Protobuf type {@code context.OpticalConfigId} + * Protobuf type {@code context.OpticalConfig} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfigId) - context.ContextOuterClass.OpticalConfigIdOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfig) + context.ContextOuterClass.OpticalConfigOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfigId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigId.class, context.ContextOuterClass.OpticalConfigId.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfig.class, context.ContextOuterClass.OpticalConfig.Builder.class); } - // Construct using context.ContextOuterClass.OpticalConfigId.newBuilder() + // Construct using context.ContextOuterClass.OpticalConfig.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - opticalconfigUuid_ = ""; + bitField0_ = 0; + opticalconfigId_ = null; + if (opticalconfigIdBuilder_ != null) { + opticalconfigIdBuilder_.dispose(); + opticalconfigIdBuilder_ = null; + } + config_ = ""; + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalConfigId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalConfigId getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalConfigId.getDefaultInstance(); + public context.ContextOuterClass.OpticalConfig getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalConfig.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalConfigId build() { - context.ContextOuterClass.OpticalConfigId result = buildPartial(); + public context.ContextOuterClass.OpticalConfig build() { + context.ContextOuterClass.OpticalConfig result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -72462,61 +73440,53 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalConfigId buildPartial() { - context.ContextOuterClass.OpticalConfigId result = new context.ContextOuterClass.OpticalConfigId(this); - result.opticalconfigUuid_ = opticalconfigUuid_; + public context.ContextOuterClass.OpticalConfig buildPartial() { + context.ContextOuterClass.OpticalConfig result = new context.ContextOuterClass.OpticalConfig(this); + if (bitField0_ != 0) { + buildPartial0(result); + } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.OpticalConfig result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.opticalconfigId_ = opticalconfigIdBuilder_ == null ? opticalconfigId_ : opticalconfigIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.config_ = config_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build(); + } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalConfigId) { - return mergeFrom((context.ContextOuterClass.OpticalConfigId) other); + if (other instanceof context.ContextOuterClass.OpticalConfig) { + return mergeFrom((context.ContextOuterClass.OpticalConfig) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalConfigId other) { - if (other == context.ContextOuterClass.OpticalConfigId.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalConfig other) { + if (other == context.ContextOuterClass.OpticalConfig.getDefaultInstance()) return this; - if (!other.getOpticalconfigUuid().isEmpty()) { - opticalconfigUuid_ = other.opticalconfigUuid_; + if (other.hasOpticalconfigId()) { + mergeOpticalconfigId(other.getOpticalconfigId()); + } + if (!other.getConfig().isEmpty()) { + config_ = other.config_; + bitField0_ |= 0x00000002; onChanged(); } - this.mergeUnknownFields(other.unknownFields); + if (other.hasDeviceId()) { + mergeDeviceId(other.getDeviceId()); + } + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -72528,32 +73498,191 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.OpticalConfigId parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getOpticalconfigIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + config_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.OpticalConfigId) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); + onChanged(); + } + // finally + return this; + } + + private int bitField0_; + + private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> opticalconfigIdBuilder_; + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return Whether the opticalconfigId field is set. + */ + public boolean hasOpticalconfigId() { + return ((bitField0_ & 0x00000001) != 0); + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * @return The opticalconfigId. + */ + public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { + if (opticalconfigIdBuilder_ == null) { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + } else { + return opticalconfigIdBuilder_.getMessage(); + } + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { + if (opticalconfigIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); } + opticalconfigId_ = value; + } else { + opticalconfigIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } - private java.lang.Object opticalconfigUuid_ = ""; + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId.Builder builderForValue) { + if (opticalconfigIdBuilder_ == null) { + opticalconfigId_ = builderForValue.build(); + } else { + opticalconfigIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The opticalconfigUuid. + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> */ - public java.lang.String getOpticalconfigUuid() { - java.lang.Object ref = opticalconfigUuid_; + public Builder mergeOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { + if (opticalconfigIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && opticalconfigId_ != null && opticalconfigId_ != context.ContextOuterClass.OpticalConfigId.getDefaultInstance()) { + getOpticalconfigIdBuilder().mergeFrom(value); + } else { + opticalconfigId_ = value; + } + } else { + opticalconfigIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public Builder clearOpticalconfigId() { + bitField0_ = (bitField0_ & ~0x00000001); + opticalconfigId_ = null; + if (opticalconfigIdBuilder_ != null) { + opticalconfigIdBuilder_.dispose(); + opticalconfigIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public context.ContextOuterClass.OpticalConfigId.Builder getOpticalconfigIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getOpticalconfigIdFieldBuilder().getBuilder(); + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { + if (opticalconfigIdBuilder_ != null) { + return opticalconfigIdBuilder_.getMessageOrBuilder(); + } else { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + } + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> getOpticalconfigIdFieldBuilder() { + if (opticalconfigIdBuilder_ == null) { + opticalconfigIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder>(getOpticalconfigId(), getParentForChildren(), isClean()); + opticalconfigId_ = null; + } + return opticalconfigIdBuilder_; + } + + private java.lang.Object config_ = ""; + + /** + * <code>string config = 2;</code> + * @return The config. + */ + public java.lang.String getConfig() { + java.lang.Object ref = config_; if (!(ref instanceof java.lang.String)) { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - opticalconfigUuid_ = s; + config_ = s; return s; } else { return (java.lang.String) ref; @@ -72561,14 +73690,14 @@ public final class ContextOuterClass { } /** - * <code>string opticalconfig_uuid = 1;</code> - * @return The bytes for opticalconfigUuid. + * <code>string config = 2;</code> + * @return The bytes for config. */ - public com.google.protobuf.ByteString getOpticalconfigUuidBytes() { - java.lang.Object ref = opticalconfigUuid_; + public com.google.protobuf.ByteString getConfigBytes() { + java.lang.Object ref = config_; if (ref instanceof String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - opticalconfigUuid_ = b; + config_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; @@ -72576,42 +73705,163 @@ public final class ContextOuterClass { } /** - * <code>string opticalconfig_uuid = 1;</code> - * @param value The opticalconfigUuid to set. - * @return This builder for chaining. + * <code>string config = 2;</code> + * @param value The config to set. + * @return This builder for chaining. + */ + public Builder setConfig(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + config_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * <code>string config = 2;</code> + * @return This builder for chaining. + */ + public Builder clearConfig() { + config_ = getDefaultInstance().getConfig(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + + /** + * <code>string config = 2;</code> + * @param value The bytes for config to set. + * @return This builder for chaining. + */ + public Builder setConfigBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + config_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private context.ContextOuterClass.DeviceId deviceId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> deviceIdBuilder_; + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return Whether the deviceId field is set. + */ + public boolean hasDeviceId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + * @return The deviceId. + */ + public context.ContextOuterClass.DeviceId getDeviceId() { + if (deviceIdBuilder_ == null) { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } else { + return deviceIdBuilder_.getMessage(); + } + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + public Builder setDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + deviceId_ = value; + } else { + deviceIdBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdBuilder_ == null) { + deviceId_ = builderForValue.build(); + } else { + deviceIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getDeviceIdBuilder().mergeFrom(value); + } else { + deviceId_ = value; + } + } else { + deviceIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> + */ + public Builder clearDeviceId() { + bitField0_ = (bitField0_ & ~0x00000004); + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * <code>.context.DeviceId device_id = 3;</code> */ - public Builder setOpticalconfigUuid(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - opticalconfigUuid_ = value; + public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { + bitField0_ |= 0x00000004; onChanged(); - return this; + return getDeviceIdFieldBuilder().getBuilder(); } /** - * <code>string opticalconfig_uuid = 1;</code> - * @return This builder for chaining. + * <code>.context.DeviceId device_id = 3;</code> */ - public Builder clearOpticalconfigUuid() { - opticalconfigUuid_ = getDefaultInstance().getOpticalconfigUuid(); - onChanged(); - return this; + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + if (deviceIdBuilder_ != null) { + return deviceIdBuilder_.getMessageOrBuilder(); + } else { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } } /** - * <code>string opticalconfig_uuid = 1;</code> - * @param value The bytes for opticalconfigUuid to set. - * @return This builder for chaining. + * <code>.context.DeviceId device_id = 3;</code> */ - public Builder setOpticalconfigUuidBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdFieldBuilder() { + if (deviceIdBuilder_ == null) { + deviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>(getDeviceId(), getParentForChildren(), isClean()); + deviceId_ = null; } - checkByteStringIsUtf8(value); - opticalconfigUuid_ = value; - onChanged(); - return this; + return deviceIdBuilder_; } @java.lang.Override @@ -72623,230 +73873,157 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalConfigId) + // @@protoc_insertion_point(builder_scope:context.OpticalConfig) } - // @@protoc_insertion_point(class_scope:context.OpticalConfigId) - private static final context.ContextOuterClass.OpticalConfigId DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalConfig) + private static final context.ContextOuterClass.OpticalConfig DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfigId(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfig(); } - public static context.ContextOuterClass.OpticalConfigId getDefaultInstance() { + public static context.ContextOuterClass.OpticalConfig getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalConfigId> PARSER = new com.google.protobuf.AbstractParser<OpticalConfigId>() { + private static final com.google.protobuf.Parser<OpticalConfig> PARSER = new com.google.protobuf.AbstractParser<OpticalConfig>() { @java.lang.Override - public OpticalConfigId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new OpticalConfigId(input, extensionRegistry); + public OpticalConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<OpticalConfigId> parser() { + public static com.google.protobuf.Parser<OpticalConfig> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalConfigId> getParserForType() { + public com.google.protobuf.Parser<OpticalConfig> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalConfigId getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalConfig getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalConfigOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfig) + public interface OpticalConfigListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfigList) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return Whether the opticalconfigId field is set. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - boolean hasOpticalconfigId(); + java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList(); /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return The opticalconfigId. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - context.ContextOuterClass.OpticalConfigId getOpticalconfigId(); + context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index); /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder(); + int getOpticalconfigsCount(); /** - * <code>string config = 2;</code> - * @return The config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - java.lang.String getConfig(); + java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList(); /** - * <code>string config = 2;</code> - * @return The bytes for config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - com.google.protobuf.ByteString getConfigBytes(); + context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index); } /** - * Protobuf type {@code context.OpticalConfig} + * Protobuf type {@code context.OpticalConfigList} */ - public static final class OpticalConfig extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfig) - OpticalConfigOrBuilder { + public static final class OpticalConfigList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfigList) + OpticalConfigListOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalConfig.newBuilder() to construct. - private OpticalConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalConfigList.newBuilder() to construct. + private OpticalConfigList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalConfig() { - config_ = ""; + private OpticalConfigList() { + opticalconfigs_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalConfig(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private OpticalConfig(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.OpticalConfigId.Builder subBuilder = null; - if (opticalconfigId_ != null) { - subBuilder = opticalconfigId_.toBuilder(); - } - opticalconfigId_ = input.readMessage(context.ContextOuterClass.OpticalConfigId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(opticalconfigId_); - opticalconfigId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - config_ = s; - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } + return new OpticalConfigList(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfig.class, context.ContextOuterClass.OpticalConfig.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigList.class, context.ContextOuterClass.OpticalConfigList.Builder.class); } - public static final int OPTICALCONFIG_ID_FIELD_NUMBER = 1; + public static final int OPTICALCONFIGS_FIELD_NUMBER = 1; - private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + @SuppressWarnings("serial") + private java.util.List<context.ContextOuterClass.OpticalConfig> opticalconfigs_; /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return Whether the opticalconfigId field is set. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ @java.lang.Override - public boolean hasOpticalconfigId() { - return opticalconfigId_ != null; + public java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList() { + return opticalconfigs_; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return The opticalconfigId. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ @java.lang.Override - public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { - return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + public java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList() { + return opticalconfigs_; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ @java.lang.Override - public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { - return getOpticalconfigId(); + public int getOpticalconfigsCount() { + return opticalconfigs_.size(); } - public static final int CONFIG_FIELD_NUMBER = 2; - - private volatile java.lang.Object config_; - /** - * <code>string config = 2;</code> - * @return The config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ @java.lang.Override - public java.lang.String getConfig() { - java.lang.Object ref = config_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - config_ = s; - return s; - } + public context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index) { + return opticalconfigs_.get(index); } /** - * <code>string config = 2;</code> - * @return The bytes for config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ @java.lang.Override - public com.google.protobuf.ByteString getConfigBytes() { - java.lang.Object ref = config_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - config_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index) { + return opticalconfigs_.get(index); } private byte memoizedIsInitialized = -1; @@ -72864,13 +74041,10 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (opticalconfigId_ != null) { - output.writeMessage(1, getOpticalconfigId()); - } - if (!getConfigBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, config_); + for (int i = 0; i < opticalconfigs_.size(); i++) { + output.writeMessage(1, opticalconfigs_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -72879,13 +74053,10 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (opticalconfigId_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOpticalconfigId()); - } - if (!getConfigBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, config_); + for (int i = 0; i < opticalconfigs_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, opticalconfigs_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -72895,19 +74066,13 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalConfig)) { + if (!(obj instanceof context.ContextOuterClass.OpticalConfigList)) { return super.equals(obj); } - context.ContextOuterClass.OpticalConfig other = (context.ContextOuterClass.OpticalConfig) obj; - if (hasOpticalconfigId() != other.hasOpticalconfigId()) - return false; - if (hasOpticalconfigId()) { - if (!getOpticalconfigId().equals(other.getOpticalconfigId())) - return false; - } - if (!getConfig().equals(other.getConfig())) + context.ContextOuterClass.OpticalConfigList other = (context.ContextOuterClass.OpticalConfigList) obj; + if (!getOpticalconfigsList().equals(other.getOpticalconfigsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -72919,62 +74084,60 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (hasOpticalconfigId()) { - hash = (37 * hash) + OPTICALCONFIG_ID_FIELD_NUMBER; - hash = (53 * hash) + getOpticalconfigId().hashCode(); + if (getOpticalconfigsCount() > 0) { + hash = (37 * hash) + OPTICALCONFIGS_FIELD_NUMBER; + hash = (53 * hash) + getOpticalconfigsList().hashCode(); } - hash = (37 * hash) + CONFIG_FIELD_NUMBER; - hash = (53 * hash) + getConfig().hashCode(); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalConfig parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfig parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfig parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfig parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfig parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfig parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfig parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfig parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfig parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -72987,7 +74150,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalConfig prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalConfigList prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -73003,61 +74166,55 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.OpticalConfig} + * Protobuf type {@code context.OpticalConfigList} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfig) - context.ContextOuterClass.OpticalConfigOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfigList) + context.ContextOuterClass.OpticalConfigListOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfig_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfig.class, context.ContextOuterClass.OpticalConfig.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigList.class, context.ContextOuterClass.OpticalConfigList.Builder.class); } - // Construct using context.ContextOuterClass.OpticalConfig.newBuilder() + // Construct using context.ContextOuterClass.OpticalConfigList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (opticalconfigIdBuilder_ == null) { - opticalconfigId_ = null; + bitField0_ = 0; + if (opticalconfigsBuilder_ == null) { + opticalconfigs_ = java.util.Collections.emptyList(); } else { - opticalconfigId_ = null; - opticalconfigIdBuilder_ = null; + opticalconfigs_ = null; + opticalconfigsBuilder_.clear(); } - config_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalConfig_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalConfig getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalConfig.getDefaultInstance(); + public context.ContextOuterClass.OpticalConfigList getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalConfigList.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalConfig build() { - context.ContextOuterClass.OpticalConfig result = buildPartial(); + public context.ContextOuterClass.OpticalConfigList build() { + context.ContextOuterClass.OpticalConfigList result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -73065,69 +74222,70 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalConfig buildPartial() { - context.ContextOuterClass.OpticalConfig result = new context.ContextOuterClass.OpticalConfig(this); - if (opticalconfigIdBuilder_ == null) { - result.opticalconfigId_ = opticalconfigId_; - } else { - result.opticalconfigId_ = opticalconfigIdBuilder_.build(); + public context.ContextOuterClass.OpticalConfigList buildPartial() { + context.ContextOuterClass.OpticalConfigList result = new context.ContextOuterClass.OpticalConfigList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } - result.config_ = config_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); + private void buildPartialRepeatedFields(context.ContextOuterClass.OpticalConfigList result) { + if (opticalconfigsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + opticalconfigs_ = java.util.Collections.unmodifiableList(opticalconfigs_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.opticalconfigs_ = opticalconfigs_; + } else { + result.opticalconfigs_ = opticalconfigsBuilder_.build(); + } } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.OpticalConfigList result) { + int from_bitField0_ = bitField0_; } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalConfig) { - return mergeFrom((context.ContextOuterClass.OpticalConfig) other); + if (other instanceof context.ContextOuterClass.OpticalConfigList) { + return mergeFrom((context.ContextOuterClass.OpticalConfigList) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalConfig other) { - if (other == context.ContextOuterClass.OpticalConfig.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalConfigList other) { + if (other == context.ContextOuterClass.OpticalConfigList.getDefaultInstance()) return this; - if (other.hasOpticalconfigId()) { - mergeOpticalconfigId(other.getOpticalconfigId()); - } - if (!other.getConfig().isEmpty()) { - config_ = other.config_; - onChanged(); + if (opticalconfigsBuilder_ == null) { + if (!other.opticalconfigs_.isEmpty()) { + if (opticalconfigs_.isEmpty()) { + opticalconfigs_ = other.opticalconfigs_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.addAll(other.opticalconfigs_); + } + onChanged(); + } + } else { + if (!other.opticalconfigs_.isEmpty()) { + if (opticalconfigsBuilder_.isEmpty()) { + opticalconfigsBuilder_.dispose(); + opticalconfigsBuilder_ = null; + opticalconfigs_ = other.opticalconfigs_; + bitField0_ = (bitField0_ & ~0x00000001); + opticalconfigsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getOpticalconfigsFieldBuilder() : null; + } else { + opticalconfigsBuilder_.addAllMessages(other.opticalconfigs_); + } + } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -73139,204 +74297,287 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.OpticalConfig parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.OpticalConfig m = input.readMessage(context.ContextOuterClass.OpticalConfig.parser(), extensionRegistry); + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.add(m); + } else { + opticalconfigsBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.OpticalConfig) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } - private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + private int bitField0_; - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> opticalconfigIdBuilder_; + private java.util.List<context.ContextOuterClass.OpticalConfig> opticalconfigs_ = java.util.Collections.emptyList(); + + private void ensureOpticalconfigsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + opticalconfigs_ = new java.util.ArrayList<context.ContextOuterClass.OpticalConfig>(opticalconfigs_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder> opticalconfigsBuilder_; /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return Whether the opticalconfigId field is set. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public boolean hasOpticalconfigId() { - return opticalconfigIdBuilder_ != null || opticalconfigId_ != null; + public java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList() { + if (opticalconfigsBuilder_ == null) { + return java.util.Collections.unmodifiableList(opticalconfigs_); + } else { + return opticalconfigsBuilder_.getMessageList(); + } } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> - * @return The opticalconfigId. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { - if (opticalconfigIdBuilder_ == null) { - return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + public int getOpticalconfigsCount() { + if (opticalconfigsBuilder_ == null) { + return opticalconfigs_.size(); } else { - return opticalconfigIdBuilder_.getMessage(); + return opticalconfigsBuilder_.getCount(); } } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { - if (opticalconfigIdBuilder_ == null) { + public context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index) { + if (opticalconfigsBuilder_ == null) { + return opticalconfigs_.get(index); + } else { + return opticalconfigsBuilder_.getMessage(index); + } + } + + /** + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + */ + public Builder setOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig value) { + if (opticalconfigsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - opticalconfigId_ = value; + ensureOpticalconfigsIsMutable(); + opticalconfigs_.set(index, value); onChanged(); } else { - opticalconfigIdBuilder_.setMessage(value); + opticalconfigsBuilder_.setMessage(index, value); } return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId.Builder builderForValue) { - if (opticalconfigIdBuilder_ == null) { - opticalconfigId_ = builderForValue.build(); + public Builder setOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig.Builder builderForValue) { + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.set(index, builderForValue.build()); onChanged(); } else { - opticalconfigIdBuilder_.setMessage(builderForValue.build()); + opticalconfigsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder mergeOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { - if (opticalconfigIdBuilder_ == null) { - if (opticalconfigId_ != null) { - opticalconfigId_ = context.ContextOuterClass.OpticalConfigId.newBuilder(opticalconfigId_).mergeFrom(value).buildPartial(); - } else { - opticalconfigId_ = value; + public Builder addOpticalconfigs(context.ContextOuterClass.OpticalConfig value) { + if (opticalconfigsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); } + ensureOpticalconfigsIsMutable(); + opticalconfigs_.add(value); onChanged(); } else { - opticalconfigIdBuilder_.mergeFrom(value); + opticalconfigsBuilder_.addMessage(value); } return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder clearOpticalconfigId() { - if (opticalconfigIdBuilder_ == null) { - opticalconfigId_ = null; + public Builder addOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig value) { + if (opticalconfigsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalconfigsIsMutable(); + opticalconfigs_.add(index, value); onChanged(); } else { - opticalconfigId_ = null; - opticalconfigIdBuilder_ = null; + opticalconfigsBuilder_.addMessage(index, value); } return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public context.ContextOuterClass.OpticalConfigId.Builder getOpticalconfigIdBuilder() { - onChanged(); - return getOpticalconfigIdFieldBuilder().getBuilder(); + public Builder addOpticalconfigs(context.ContextOuterClass.OpticalConfig.Builder builderForValue) { + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.add(builderForValue.build()); + onChanged(); + } else { + opticalconfigsBuilder_.addMessage(builderForValue.build()); + } + return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { - if (opticalconfigIdBuilder_ != null) { - return opticalconfigIdBuilder_.getMessageOrBuilder(); + public Builder addOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig.Builder builderForValue) { + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.add(index, builderForValue.build()); + onChanged(); + } else { + opticalconfigsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + + /** + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + */ + public Builder addAllOpticalconfigs(java.lang.Iterable<? extends context.ContextOuterClass.OpticalConfig> values) { + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, opticalconfigs_); + onChanged(); + } else { + opticalconfigsBuilder_.addAllMessages(values); + } + return this; + } + + /** + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + */ + public Builder clearOpticalconfigs() { + if (opticalconfigsBuilder_ == null) { + opticalconfigs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + opticalconfigsBuilder_.clear(); + } + return this; + } + + /** + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + */ + public Builder removeOpticalconfigs(int index) { + if (opticalconfigsBuilder_ == null) { + ensureOpticalconfigsIsMutable(); + opticalconfigs_.remove(index); + onChanged(); } else { - return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + opticalconfigsBuilder_.remove(index); } + return this; } /** - * <code>.context.OpticalConfigId opticalconfig_id = 1;</code> + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> getOpticalconfigIdFieldBuilder() { - if (opticalconfigIdBuilder_ == null) { - opticalconfigIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder>(getOpticalconfigId(), getParentForChildren(), isClean()); - opticalconfigId_ = null; - } - return opticalconfigIdBuilder_; + public context.ContextOuterClass.OpticalConfig.Builder getOpticalconfigsBuilder(int index) { + return getOpticalconfigsFieldBuilder().getBuilder(index); } - private java.lang.Object config_ = ""; - /** - * <code>string config = 2;</code> - * @return The config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public java.lang.String getConfig() { - java.lang.Object ref = config_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - config_ = s; - return s; + public context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index) { + if (opticalconfigsBuilder_ == null) { + return opticalconfigs_.get(index); } else { - return (java.lang.String) ref; + return opticalconfigsBuilder_.getMessageOrBuilder(index); } } /** - * <code>string config = 2;</code> - * @return The bytes for config. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public com.google.protobuf.ByteString getConfigBytes() { - java.lang.Object ref = config_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - config_ = b; - return b; + public java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList() { + if (opticalconfigsBuilder_ != null) { + return opticalconfigsBuilder_.getMessageOrBuilderList(); } else { - return (com.google.protobuf.ByteString) ref; + return java.util.Collections.unmodifiableList(opticalconfigs_); } } /** - * <code>string config = 2;</code> - * @param value The config to set. - * @return This builder for chaining. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder setConfig(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - config_ = value; - onChanged(); - return this; + public context.ContextOuterClass.OpticalConfig.Builder addOpticalconfigsBuilder() { + return getOpticalconfigsFieldBuilder().addBuilder(context.ContextOuterClass.OpticalConfig.getDefaultInstance()); } /** - * <code>string config = 2;</code> - * @return This builder for chaining. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder clearConfig() { - config_ = getDefaultInstance().getConfig(); - onChanged(); - return this; + public context.ContextOuterClass.OpticalConfig.Builder addOpticalconfigsBuilder(int index) { + return getOpticalconfigsFieldBuilder().addBuilder(index, context.ContextOuterClass.OpticalConfig.getDefaultInstance()); } /** - * <code>string config = 2;</code> - * @param value The bytes for config to set. - * @return This builder for chaining. + * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> */ - public Builder setConfigBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public java.util.List<context.ContextOuterClass.OpticalConfig.Builder> getOpticalconfigsBuilderList() { + return getOpticalconfigsFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsFieldBuilder() { + if (opticalconfigsBuilder_ == null) { + opticalconfigsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder>(opticalconfigs_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + opticalconfigs_ = null; } - checkByteStringIsUtf8(value); - config_ = value; - onChanged(); - return this; + return opticalconfigsBuilder_; } @java.lang.Override @@ -73348,197 +74589,180 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalConfig) + // @@protoc_insertion_point(builder_scope:context.OpticalConfigList) } - // @@protoc_insertion_point(class_scope:context.OpticalConfig) - private static final context.ContextOuterClass.OpticalConfig DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalConfigList) + private static final context.ContextOuterClass.OpticalConfigList DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfig(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfigList(); } - public static context.ContextOuterClass.OpticalConfig getDefaultInstance() { + public static context.ContextOuterClass.OpticalConfigList getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalConfig> PARSER = new com.google.protobuf.AbstractParser<OpticalConfig>() { + private static final com.google.protobuf.Parser<OpticalConfigList> PARSER = new com.google.protobuf.AbstractParser<OpticalConfigList>() { @java.lang.Override - public OpticalConfig parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new OpticalConfig(input, extensionRegistry); + public OpticalConfigList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<OpticalConfig> parser() { + public static com.google.protobuf.Parser<OpticalConfigList> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalConfig> getParserForType() { + public com.google.protobuf.Parser<OpticalConfigList> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalConfig getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalConfigList getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalConfigListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfigList) + public interface OpticalConfigEventOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalConfigEvent) com.google.protobuf.MessageOrBuilder { /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return Whether the event field is set. */ - java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList(); + boolean hasEvent(); /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return The event. */ - context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index); + context.ContextOuterClass.Event getEvent(); /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - int getOpticalconfigsCount(); + context.ContextOuterClass.EventOrBuilder getEventOrBuilder(); /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return Whether the opticalconfigId field is set. */ - java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList(); + boolean hasOpticalconfigId(); /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return The opticalconfigId. */ - context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index); + context.ContextOuterClass.OpticalConfigId getOpticalconfigId(); + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + */ + context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder(); } /** - * Protobuf type {@code context.OpticalConfigList} + * Protobuf type {@code context.OpticalConfigEvent} */ - public static final class OpticalConfigList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfigList) - OpticalConfigListOrBuilder { + public static final class OpticalConfigEvent extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalConfigEvent) + OpticalConfigEventOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalConfigList.newBuilder() to construct. - private OpticalConfigList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalConfigEvent.newBuilder() to construct. + private OpticalConfigEvent(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalConfigList() { - opticalconfigs_ = java.util.Collections.emptyList(); + private OpticalConfigEvent() { } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalConfigList(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private OpticalConfigList(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - opticalconfigs_ = new java.util.ArrayList<context.ContextOuterClass.OpticalConfig>(); - mutable_bitField0_ |= 0x00000001; - } - opticalconfigs_.add(input.readMessage(context.ContextOuterClass.OpticalConfig.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - opticalconfigs_ = java.util.Collections.unmodifiableList(opticalconfigs_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } + return new OpticalConfigEvent(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigEvent_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfigList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigList.class, context.ContextOuterClass.OpticalConfigList.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigEvent.class, context.ContextOuterClass.OpticalConfigEvent.Builder.class); } - public static final int OPTICALCONFIGS_FIELD_NUMBER = 1; + public static final int EVENT_FIELD_NUMBER = 1; - private java.util.List<context.ContextOuterClass.OpticalConfig> opticalconfigs_; + private context.ContextOuterClass.Event event_; /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return Whether the event field is set. */ @java.lang.Override - public java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList() { - return opticalconfigs_; + public boolean hasEvent() { + return event_ != null; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return The event. */ @java.lang.Override - public java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList() { - return opticalconfigs_; + public context.ContextOuterClass.Event getEvent() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ @java.lang.Override - public int getOpticalconfigsCount() { - return opticalconfigs_.size(); + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } + public static final int OPTICALCONFIG_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return Whether the opticalconfigId field is set. */ @java.lang.Override - public context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index) { - return opticalconfigs_.get(index); + public boolean hasOpticalconfigId() { + return opticalconfigId_ != null; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return The opticalconfigId. */ @java.lang.Override - public context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index) { - return opticalconfigs_.get(index); + public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + */ + @java.lang.Override + public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; } private byte memoizedIsInitialized = -1; @@ -73556,10 +74780,13 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - for (int i = 0; i < opticalconfigs_.size(); i++) { - output.writeMessage(1, opticalconfigs_.get(i)); + if (event_ != null) { + output.writeMessage(1, getEvent()); + } + if (opticalconfigId_ != null) { + output.writeMessage(2, getOpticalconfigId()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -73568,10 +74795,13 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - for (int i = 0; i < opticalconfigs_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, opticalconfigs_.get(i)); + if (event_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getEvent()); + } + if (opticalconfigId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getOpticalconfigId()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -73581,13 +74811,23 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalConfigList)) { + if (!(obj instanceof context.ContextOuterClass.OpticalConfigEvent)) { return super.equals(obj); } - context.ContextOuterClass.OpticalConfigList other = (context.ContextOuterClass.OpticalConfigList) obj; - if (!getOpticalconfigsList().equals(other.getOpticalconfigsList())) + context.ContextOuterClass.OpticalConfigEvent other = (context.ContextOuterClass.OpticalConfigEvent) obj; + if (hasEvent() != other.hasEvent()) + return false; + if (hasEvent()) { + if (!getEvent().equals(other.getEvent())) + return false; + } + if (hasOpticalconfigId() != other.hasOpticalconfigId()) return false; - if (!unknownFields.equals(other.unknownFields)) + if (hasOpticalconfigId()) { + if (!getOpticalconfigId().equals(other.getOpticalconfigId())) + return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -73599,60 +74839,64 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (getOpticalconfigsCount() > 0) { - hash = (37 * hash) + OPTICALCONFIGS_FIELD_NUMBER; - hash = (53 * hash) + getOpticalconfigsList().hashCode(); + if (hasEvent()) { + hash = (37 * hash) + EVENT_FIELD_NUMBER; + hash = (53 * hash) + getEvent().hashCode(); + } + if (hasOpticalconfigId()) { + hash = (37 * hash) + OPTICALCONFIG_ID_FIELD_NUMBER; + hash = (53 * hash) + getOpticalconfigId().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalConfigList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalConfigList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalConfigEvent parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -73665,7 +74909,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalConfigList prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalConfigEvent prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -73681,61 +74925,58 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.OpticalConfigList} + * Protobuf type {@code context.OpticalConfigEvent} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfigList) - context.ContextOuterClass.OpticalConfigListOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalConfigEvent) + context.ContextOuterClass.OpticalConfigEventOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigEvent_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalConfigList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigList.class, context.ContextOuterClass.OpticalConfigList.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalConfigEvent_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalConfigEvent.class, context.ContextOuterClass.OpticalConfigEvent.Builder.class); } - // Construct using context.ContextOuterClass.OpticalConfigList.newBuilder() + // Construct using context.ContextOuterClass.OpticalConfigEvent.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getOpticalconfigsFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); - if (opticalconfigsBuilder_ == null) { - opticalconfigs_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - } else { - opticalconfigsBuilder_.clear(); + bitField0_ = 0; + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; + } + opticalconfigId_ = null; + if (opticalconfigIdBuilder_ != null) { + opticalconfigIdBuilder_.dispose(); + opticalconfigIdBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalConfigList_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalConfigEvent_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalConfigList getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalConfigList.getDefaultInstance(); + public context.ContextOuterClass.OpticalConfigEvent getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalConfigEvent.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalConfigList build() { - context.ContextOuterClass.OpticalConfigList result = buildPartial(); + public context.ContextOuterClass.OpticalConfigEvent build() { + context.ContextOuterClass.OpticalConfigEvent result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -73743,90 +74984,45 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalConfigList buildPartial() { - context.ContextOuterClass.OpticalConfigList result = new context.ContextOuterClass.OpticalConfigList(this); - int from_bitField0_ = bitField0_; - if (opticalconfigsBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - opticalconfigs_ = java.util.Collections.unmodifiableList(opticalconfigs_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.opticalconfigs_ = opticalconfigs_; - } else { - result.opticalconfigs_ = opticalconfigsBuilder_.build(); + public context.ContextOuterClass.OpticalConfigEvent buildPartial() { + context.ContextOuterClass.OpticalConfigEvent result = new context.ContextOuterClass.OpticalConfigEvent(this); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.OpticalConfigEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.event_ = eventBuilder_ == null ? event_ : eventBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.opticalconfigId_ = opticalconfigIdBuilder_ == null ? opticalconfigId_ : opticalconfigIdBuilder_.build(); + } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalConfigList) { - return mergeFrom((context.ContextOuterClass.OpticalConfigList) other); + if (other instanceof context.ContextOuterClass.OpticalConfigEvent) { + return mergeFrom((context.ContextOuterClass.OpticalConfigEvent) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalConfigList other) { - if (other == context.ContextOuterClass.OpticalConfigList.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalConfigEvent other) { + if (other == context.ContextOuterClass.OpticalConfigEvent.getDefaultInstance()) return this; - if (opticalconfigsBuilder_ == null) { - if (!other.opticalconfigs_.isEmpty()) { - if (opticalconfigs_.isEmpty()) { - opticalconfigs_ = other.opticalconfigs_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.addAll(other.opticalconfigs_); - } - onChanged(); - } - } else { - if (!other.opticalconfigs_.isEmpty()) { - if (opticalconfigsBuilder_.isEmpty()) { - opticalconfigsBuilder_.dispose(); - opticalconfigsBuilder_ = null; - opticalconfigs_ = other.opticalconfigs_; - bitField0_ = (bitField0_ & ~0x00000001); - opticalconfigsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getOpticalconfigsFieldBuilder() : null; - } else { - opticalconfigsBuilder_.addAllMessages(other.opticalconfigs_); - } - } + if (other.hasEvent()) { + mergeEvent(other.getEvent()); + } + if (other.hasOpticalconfigId()) { + mergeOpticalconfigId(other.getOpticalconfigId()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -73838,257 +75034,288 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.OpticalConfigList parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getEventFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getOpticalconfigIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.OpticalConfigList) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } private int bitField0_; - private java.util.List<context.ContextOuterClass.OpticalConfig> opticalconfigs_ = java.util.Collections.emptyList(); - - private void ensureOpticalconfigsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - opticalconfigs_ = new java.util.ArrayList<context.ContextOuterClass.OpticalConfig>(opticalconfigs_); - bitField0_ |= 0x00000001; - } - } - - private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder> opticalconfigsBuilder_; + private context.ContextOuterClass.Event event_; - /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> - */ - public java.util.List<context.ContextOuterClass.OpticalConfig> getOpticalconfigsList() { - if (opticalconfigsBuilder_ == null) { - return java.util.Collections.unmodifiableList(opticalconfigs_); - } else { - return opticalconfigsBuilder_.getMessageList(); - } - } + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> eventBuilder_; /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return Whether the event field is set. */ - public int getOpticalconfigsCount() { - if (opticalconfigsBuilder_ == null) { - return opticalconfigs_.size(); - } else { - return opticalconfigsBuilder_.getCount(); - } + public boolean hasEvent() { + return ((bitField0_ & 0x00000001) != 0); } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> + * @return The event. */ - public context.ContextOuterClass.OpticalConfig getOpticalconfigs(int index) { - if (opticalconfigsBuilder_ == null) { - return opticalconfigs_.get(index); + public context.ContextOuterClass.Event getEvent() { + if (eventBuilder_ == null) { + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } else { - return opticalconfigsBuilder_.getMessage(index); + return eventBuilder_.getMessage(); } } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder setOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig value) { - if (opticalconfigsBuilder_ == null) { + public Builder setEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureOpticalconfigsIsMutable(); - opticalconfigs_.set(index, value); - onChanged(); + event_ = value; } else { - opticalconfigsBuilder_.setMessage(index, value); + eventBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder setOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig.Builder builderForValue) { - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.set(index, builderForValue.build()); - onChanged(); + public Builder setEvent(context.ContextOuterClass.Event.Builder builderForValue) { + if (eventBuilder_ == null) { + event_ = builderForValue.build(); } else { - opticalconfigsBuilder_.setMessage(index, builderForValue.build()); + eventBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder addOpticalconfigs(context.ContextOuterClass.OpticalConfig value) { - if (opticalconfigsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); + public Builder mergeEvent(context.ContextOuterClass.Event value) { + if (eventBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && event_ != null && event_ != context.ContextOuterClass.Event.getDefaultInstance()) { + getEventBuilder().mergeFrom(value); + } else { + event_ = value; } - ensureOpticalconfigsIsMutable(); - opticalconfigs_.add(value); - onChanged(); } else { - opticalconfigsBuilder_.addMessage(value); + eventBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder addOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig value) { - if (opticalconfigsBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - ensureOpticalconfigsIsMutable(); - opticalconfigs_.add(index, value); - onChanged(); - } else { - opticalconfigsBuilder_.addMessage(index, value); + public Builder clearEvent() { + bitField0_ = (bitField0_ & ~0x00000001); + event_ = null; + if (eventBuilder_ != null) { + eventBuilder_.dispose(); + eventBuilder_ = null; } + onChanged(); return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder addOpticalconfigs(context.ContextOuterClass.OpticalConfig.Builder builderForValue) { - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.add(builderForValue.build()); - onChanged(); + public context.ContextOuterClass.Event.Builder getEventBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getEventFieldBuilder().getBuilder(); + } + + /** + * <code>.context.Event event = 1;</code> + */ + public context.ContextOuterClass.EventOrBuilder getEventOrBuilder() { + if (eventBuilder_ != null) { + return eventBuilder_.getMessageOrBuilder(); } else { - opticalconfigsBuilder_.addMessage(builderForValue.build()); + return event_ == null ? context.ContextOuterClass.Event.getDefaultInstance() : event_; } - return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.Event event = 1;</code> */ - public Builder addOpticalconfigs(int index, context.ContextOuterClass.OpticalConfig.Builder builderForValue) { - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.add(index, builderForValue.build()); - onChanged(); - } else { - opticalconfigsBuilder_.addMessage(index, builderForValue.build()); + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder> getEventFieldBuilder() { + if (eventBuilder_ == null) { + eventBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Event, context.ContextOuterClass.Event.Builder, context.ContextOuterClass.EventOrBuilder>(getEvent(), getParentForChildren(), isClean()); + event_ = null; } - return this; + return eventBuilder_; } + private context.ContextOuterClass.OpticalConfigId opticalconfigId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> opticalconfigIdBuilder_; + /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return Whether the opticalconfigId field is set. */ - public Builder addAllOpticalconfigs(java.lang.Iterable<? extends context.ContextOuterClass.OpticalConfig> values) { - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, opticalconfigs_); - onChanged(); + public boolean hasOpticalconfigId() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> + * @return The opticalconfigId. + */ + public context.ContextOuterClass.OpticalConfigId getOpticalconfigId() { + if (opticalconfigIdBuilder_ == null) { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; } else { - opticalconfigsBuilder_.addAllMessages(values); + return opticalconfigIdBuilder_.getMessage(); } - return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public Builder clearOpticalconfigs() { - if (opticalconfigsBuilder_ == null) { - opticalconfigs_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); - onChanged(); + public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { + if (opticalconfigIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + opticalconfigId_ = value; } else { - opticalconfigsBuilder_.clear(); + opticalconfigIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public Builder removeOpticalconfigs(int index) { - if (opticalconfigsBuilder_ == null) { - ensureOpticalconfigsIsMutable(); - opticalconfigs_.remove(index); - onChanged(); + public Builder setOpticalconfigId(context.ContextOuterClass.OpticalConfigId.Builder builderForValue) { + if (opticalconfigIdBuilder_ == null) { + opticalconfigId_ = builderForValue.build(); } else { - opticalconfigsBuilder_.remove(index); + opticalconfigIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> - */ - public context.ContextOuterClass.OpticalConfig.Builder getOpticalconfigsBuilder(int index) { - return getOpticalconfigsFieldBuilder().getBuilder(index); - } - - /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public context.ContextOuterClass.OpticalConfigOrBuilder getOpticalconfigsOrBuilder(int index) { - if (opticalconfigsBuilder_ == null) { - return opticalconfigs_.get(index); + public Builder mergeOpticalconfigId(context.ContextOuterClass.OpticalConfigId value) { + if (opticalconfigIdBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && opticalconfigId_ != null && opticalconfigId_ != context.ContextOuterClass.OpticalConfigId.getDefaultInstance()) { + getOpticalconfigIdBuilder().mergeFrom(value); + } else { + opticalconfigId_ = value; + } } else { - return opticalconfigsBuilder_.getMessageOrBuilder(index); + opticalconfigIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); + return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public java.util.List<? extends context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsOrBuilderList() { - if (opticalconfigsBuilder_ != null) { - return opticalconfigsBuilder_.getMessageOrBuilderList(); - } else { - return java.util.Collections.unmodifiableList(opticalconfigs_); + public Builder clearOpticalconfigId() { + bitField0_ = (bitField0_ & ~0x00000002); + opticalconfigId_ = null; + if (opticalconfigIdBuilder_ != null) { + opticalconfigIdBuilder_.dispose(); + opticalconfigIdBuilder_ = null; } + onChanged(); + return this; } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public context.ContextOuterClass.OpticalConfig.Builder addOpticalconfigsBuilder() { - return getOpticalconfigsFieldBuilder().addBuilder(context.ContextOuterClass.OpticalConfig.getDefaultInstance()); + public context.ContextOuterClass.OpticalConfigId.Builder getOpticalconfigIdBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getOpticalconfigIdFieldBuilder().getBuilder(); } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public context.ContextOuterClass.OpticalConfig.Builder addOpticalconfigsBuilder(int index) { - return getOpticalconfigsFieldBuilder().addBuilder(index, context.ContextOuterClass.OpticalConfig.getDefaultInstance()); + public context.ContextOuterClass.OpticalConfigIdOrBuilder getOpticalconfigIdOrBuilder() { + if (opticalconfigIdBuilder_ != null) { + return opticalconfigIdBuilder_.getMessageOrBuilder(); + } else { + return opticalconfigId_ == null ? context.ContextOuterClass.OpticalConfigId.getDefaultInstance() : opticalconfigId_; + } } /** - * <code>repeated .context.OpticalConfig opticalconfigs = 1;</code> + * <code>.context.OpticalConfigId opticalconfig_id = 2;</code> */ - public java.util.List<context.ContextOuterClass.OpticalConfig.Builder> getOpticalconfigsBuilderList() { - return getOpticalconfigsFieldBuilder().getBuilderList(); - } - - private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder> getOpticalconfigsFieldBuilder() { - if (opticalconfigsBuilder_ == null) { - opticalconfigsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfig.Builder, context.ContextOuterClass.OpticalConfigOrBuilder>(opticalconfigs_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); - opticalconfigs_ = null; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder> getOpticalconfigIdFieldBuilder() { + if (opticalconfigIdBuilder_ == null) { + opticalconfigIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfigId.Builder, context.ContextOuterClass.OpticalConfigIdOrBuilder>(getOpticalconfigId(), getParentForChildren(), isClean()); + opticalconfigId_ = null; } - return opticalconfigsBuilder_; + return opticalconfigIdBuilder_; } @java.lang.Override @@ -74100,174 +75327,180 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalConfigList) + // @@protoc_insertion_point(builder_scope:context.OpticalConfigEvent) } - // @@protoc_insertion_point(class_scope:context.OpticalConfigList) - private static final context.ContextOuterClass.OpticalConfigList DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalConfigEvent) + private static final context.ContextOuterClass.OpticalConfigEvent DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfigList(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalConfigEvent(); } - public static context.ContextOuterClass.OpticalConfigList getDefaultInstance() { + public static context.ContextOuterClass.OpticalConfigEvent getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalConfigList> PARSER = new com.google.protobuf.AbstractParser<OpticalConfigList>() { + private static final com.google.protobuf.Parser<OpticalConfigEvent> PARSER = new com.google.protobuf.AbstractParser<OpticalConfigEvent>() { @java.lang.Override - public OpticalConfigList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new OpticalConfigList(input, extensionRegistry); + public OpticalConfigEvent parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<OpticalConfigList> parser() { + public static com.google.protobuf.Parser<OpticalConfigEvent> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalConfigList> getParserForType() { + public com.google.protobuf.Parser<OpticalConfigEvent> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalConfigList getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalConfigEvent getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalLinkIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLinkId) + public interface OpticalEndPointIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalEndPointId) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.DeviceId device_id = 2;</code> + * @return Whether the deviceId field is set. + */ + boolean hasDeviceId(); + + /** + * <code>.context.DeviceId device_id = 2;</code> + * @return The deviceId. + */ + context.ContextOuterClass.DeviceId getDeviceId(); + + /** + * <code>.context.DeviceId device_id = 2;</code> + */ + context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder(); + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return Whether the endpointUuid field is set. */ - boolean hasOpticalLinkUuid(); + boolean hasEndpointUuid(); /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return The opticalLinkUuid. + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return The endpointUuid. */ - context.ContextOuterClass.Uuid getOpticalLinkUuid(); + context.ContextOuterClass.Uuid getEndpointUuid(); /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.Uuid endpoint_uuid = 3;</code> */ - context.ContextOuterClass.UuidOrBuilder getOpticalLinkUuidOrBuilder(); + context.ContextOuterClass.UuidOrBuilder getEndpointUuidOrBuilder(); } /** - * Protobuf type {@code context.OpticalLinkId} + * Protobuf type {@code context.OpticalEndPointId} */ - public static final class OpticalLinkId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLinkId) - OpticalLinkIdOrBuilder { + public static final class OpticalEndPointId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalEndPointId) + OpticalEndPointIdOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalLinkId.newBuilder() to construct. - private OpticalLinkId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalEndPointId.newBuilder() to construct. + private OpticalEndPointId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalLinkId() { + private OpticalEndPointId() { } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalLinkId(); + return new OpticalEndPointId(); + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_OpticalEndPointId_descriptor; } @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { + return context.ContextOuterClass.internal_static_context_OpticalEndPointId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalEndPointId.class, context.ContextOuterClass.OpticalEndPointId.Builder.class); } - private OpticalLinkId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (opticalLinkUuid_ != null) { - subBuilder = opticalLinkUuid_.toBuilder(); - } - opticalLinkUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(opticalLinkUuid_); - opticalLinkUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } + public static final int DEVICE_ID_FIELD_NUMBER = 2; + + private context.ContextOuterClass.DeviceId deviceId_; + + /** + * <code>.context.DeviceId device_id = 2;</code> + * @return Whether the deviceId field is set. + */ + @java.lang.Override + public boolean hasDeviceId() { + return deviceId_ != null; } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLinkId_descriptor; + /** + * <code>.context.DeviceId device_id = 2;</code> + * @return The deviceId. + */ + @java.lang.Override + public context.ContextOuterClass.DeviceId getDeviceId() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; } + /** + * <code>.context.DeviceId device_id = 2;</code> + */ @java.lang.Override - protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLinkId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkId.class, context.ContextOuterClass.OpticalLinkId.Builder.class); + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; } - public static final int OPTICAL_LINK_UUID_FIELD_NUMBER = 1; + public static final int ENDPOINT_UUID_FIELD_NUMBER = 3; - private context.ContextOuterClass.Uuid opticalLinkUuid_; + private context.ContextOuterClass.Uuid endpointUuid_; /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return Whether the endpointUuid field is set. */ @java.lang.Override - public boolean hasOpticalLinkUuid() { - return opticalLinkUuid_ != null; + public boolean hasEndpointUuid() { + return endpointUuid_ != null; } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return The opticalLinkUuid. + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return The endpointUuid. */ @java.lang.Override - public context.ContextOuterClass.Uuid getOpticalLinkUuid() { - return opticalLinkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : opticalLinkUuid_; + public context.ContextOuterClass.Uuid getEndpointUuid() { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.Uuid endpoint_uuid = 3;</code> */ @java.lang.Override - public context.ContextOuterClass.UuidOrBuilder getOpticalLinkUuidOrBuilder() { - return getOpticalLinkUuid(); + public context.ContextOuterClass.UuidOrBuilder getEndpointUuidOrBuilder() { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; } private byte memoizedIsInitialized = -1; @@ -74285,10 +75518,13 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (opticalLinkUuid_ != null) { - output.writeMessage(1, getOpticalLinkUuid()); + if (deviceId_ != null) { + output.writeMessage(2, getDeviceId()); + } + if (endpointUuid_ != null) { + output.writeMessage(3, getEndpointUuid()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -74297,10 +75533,13 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (opticalLinkUuid_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getOpticalLinkUuid()); + if (deviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getDeviceId()); } - size += unknownFields.getSerializedSize(); + if (endpointUuid_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getEndpointUuid()); + } + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -74310,17 +75549,23 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalLinkId)) { + if (!(obj instanceof context.ContextOuterClass.OpticalEndPointId)) { return super.equals(obj); } - context.ContextOuterClass.OpticalLinkId other = (context.ContextOuterClass.OpticalLinkId) obj; - if (hasOpticalLinkUuid() != other.hasOpticalLinkUuid()) + context.ContextOuterClass.OpticalEndPointId other = (context.ContextOuterClass.OpticalEndPointId) obj; + if (hasDeviceId() != other.hasDeviceId()) + return false; + if (hasDeviceId()) { + if (!getDeviceId().equals(other.getDeviceId())) + return false; + } + if (hasEndpointUuid() != other.hasEndpointUuid()) return false; - if (hasOpticalLinkUuid()) { - if (!getOpticalLinkUuid().equals(other.getOpticalLinkUuid())) + if (hasEndpointUuid()) { + if (!getEndpointUuid().equals(other.getEndpointUuid())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -74332,60 +75577,64 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (hasOpticalLinkUuid()) { - hash = (37 * hash) + OPTICAL_LINK_UUID_FIELD_NUMBER; - hash = (53 * hash) + getOpticalLinkUuid().hashCode(); + if (hasDeviceId()) { + hash = (37 * hash) + DEVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getDeviceId().hashCode(); + } + if (hasEndpointUuid()) { + hash = (37 * hash) + ENDPOINT_UUID_FIELD_NUMBER; + hash = (53 * hash) + getEndpointUuid().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalLinkId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalEndPointId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -74398,7 +75647,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalLinkId prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalEndPointId prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -74414,60 +75663,58 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.OpticalLinkId} + * Protobuf type {@code context.OpticalEndPointId} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLinkId) - context.ContextOuterClass.OpticalLinkIdOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalEndPointId) + context.ContextOuterClass.OpticalEndPointIdOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLinkId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalEndPointId_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLinkId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkId.class, context.ContextOuterClass.OpticalLinkId.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalEndPointId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalEndPointId.class, context.ContextOuterClass.OpticalEndPointId.Builder.class); } - // Construct using context.ContextOuterClass.OpticalLinkId.newBuilder() + // Construct using context.ContextOuterClass.OpticalEndPointId.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuid_ = null; - } else { - opticalLinkUuid_ = null; - opticalLinkUuidBuilder_ = null; + bitField0_ = 0; + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + endpointUuid_ = null; + if (endpointUuidBuilder_ != null) { + endpointUuidBuilder_.dispose(); + endpointUuidBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalLinkId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalEndPointId_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalLinkId getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalLinkId.getDefaultInstance(); + public context.ContextOuterClass.OpticalEndPointId getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalEndPointId.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalLinkId build() { - context.ContextOuterClass.OpticalLinkId result = buildPartial(); + public context.ContextOuterClass.OpticalEndPointId build() { + context.ContextOuterClass.OpticalEndPointId result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -74475,64 +75722,45 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalLinkId buildPartial() { - context.ContextOuterClass.OpticalLinkId result = new context.ContextOuterClass.OpticalLinkId(this); - if (opticalLinkUuidBuilder_ == null) { - result.opticalLinkUuid_ = opticalLinkUuid_; - } else { - result.opticalLinkUuid_ = opticalLinkUuidBuilder_.build(); + public context.ContextOuterClass.OpticalEndPointId buildPartial() { + context.ContextOuterClass.OpticalEndPointId result = new context.ContextOuterClass.OpticalEndPointId(this); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.OpticalEndPointId result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.deviceId_ = deviceIdBuilder_ == null ? deviceId_ : deviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.endpointUuid_ = endpointUuidBuilder_ == null ? endpointUuid_ : endpointUuidBuilder_.build(); + } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalLinkId) { - return mergeFrom((context.ContextOuterClass.OpticalLinkId) other); + if (other instanceof context.ContextOuterClass.OpticalEndPointId) { + return mergeFrom((context.ContextOuterClass.OpticalEndPointId) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalLinkId other) { - if (other == context.ContextOuterClass.OpticalLinkId.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalEndPointId other) { + if (other == context.ContextOuterClass.OpticalEndPointId.getDefaultInstance()) return this; - if (other.hasOpticalLinkUuid()) { - mergeOpticalLinkUuid(other.getOpticalLinkUuid()); + if (other.hasDeviceId()) { + mergeDeviceId(other.getDeviceId()); + } + if (other.hasEndpointUuid()) { + mergeEndpointUuid(other.getEndpointUuid()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -74544,132 +75772,288 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.OpticalLinkId parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 18: + { + input.readMessage(getDeviceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 18 + case 26: + { + input.readMessage(getEndpointUuidFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 26 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.OpticalLinkId) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } - private context.ContextOuterClass.Uuid opticalLinkUuid_; + private int bitField0_; + + private context.ContextOuterClass.DeviceId deviceId_; - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> opticalLinkUuidBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> deviceIdBuilder_; /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.DeviceId device_id = 2;</code> + * @return Whether the deviceId field is set. */ - public boolean hasOpticalLinkUuid() { - return opticalLinkUuidBuilder_ != null || opticalLinkUuid_ != null; + public boolean hasDeviceId() { + return ((bitField0_ & 0x00000001) != 0); } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> - * @return The opticalLinkUuid. + * <code>.context.DeviceId device_id = 2;</code> + * @return The deviceId. */ - public context.ContextOuterClass.Uuid getOpticalLinkUuid() { - if (opticalLinkUuidBuilder_ == null) { - return opticalLinkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : opticalLinkUuid_; + public context.ContextOuterClass.DeviceId getDeviceId() { + if (deviceIdBuilder_ == null) { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; } else { - return opticalLinkUuidBuilder_.getMessage(); + return deviceIdBuilder_.getMessage(); } } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.DeviceId device_id = 2;</code> */ - public Builder setOpticalLinkUuid(context.ContextOuterClass.Uuid value) { - if (opticalLinkUuidBuilder_ == null) { + public Builder setDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - opticalLinkUuid_ = value; - onChanged(); + deviceId_ = value; } else { - opticalLinkUuidBuilder_.setMessage(value); + deviceIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.DeviceId device_id = 2;</code> */ - public Builder setOpticalLinkUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuid_ = builderForValue.build(); - onChanged(); + public Builder setDeviceId(context.ContextOuterClass.DeviceId.Builder builderForValue) { + if (deviceIdBuilder_ == null) { + deviceId_ = builderForValue.build(); } else { - opticalLinkUuidBuilder_.setMessage(builderForValue.build()); + deviceIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.DeviceId device_id = 2;</code> */ - public Builder mergeOpticalLinkUuid(context.ContextOuterClass.Uuid value) { - if (opticalLinkUuidBuilder_ == null) { - if (opticalLinkUuid_ != null) { - opticalLinkUuid_ = context.ContextOuterClass.Uuid.newBuilder(opticalLinkUuid_).mergeFrom(value).buildPartial(); + public Builder mergeDeviceId(context.ContextOuterClass.DeviceId value) { + if (deviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && deviceId_ != null && deviceId_ != context.ContextOuterClass.DeviceId.getDefaultInstance()) { + getDeviceIdBuilder().mergeFrom(value); } else { - opticalLinkUuid_ = value; + deviceId_ = value; } - onChanged(); } else { - opticalLinkUuidBuilder_.mergeFrom(value); + deviceIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.DeviceId device_id = 2;</code> */ - public Builder clearOpticalLinkUuid() { - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuid_ = null; - onChanged(); + public Builder clearDeviceId() { + bitField0_ = (bitField0_ & ~0x00000001); + deviceId_ = null; + if (deviceIdBuilder_ != null) { + deviceIdBuilder_.dispose(); + deviceIdBuilder_ = null; + } + onChanged(); + return this; + } + + /** + * <code>.context.DeviceId device_id = 2;</code> + */ + public context.ContextOuterClass.DeviceId.Builder getDeviceIdBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getDeviceIdFieldBuilder().getBuilder(); + } + + /** + * <code>.context.DeviceId device_id = 2;</code> + */ + public context.ContextOuterClass.DeviceIdOrBuilder getDeviceIdOrBuilder() { + if (deviceIdBuilder_ != null) { + return deviceIdBuilder_.getMessageOrBuilder(); + } else { + return deviceId_ == null ? context.ContextOuterClass.DeviceId.getDefaultInstance() : deviceId_; + } + } + + /** + * <code>.context.DeviceId device_id = 2;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder> getDeviceIdFieldBuilder() { + if (deviceIdBuilder_ == null) { + deviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceId.Builder, context.ContextOuterClass.DeviceIdOrBuilder>(getDeviceId(), getParentForChildren(), isClean()); + deviceId_ = null; + } + return deviceIdBuilder_; + } + + private context.ContextOuterClass.Uuid endpointUuid_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> endpointUuidBuilder_; + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return Whether the endpointUuid field is set. + */ + public boolean hasEndpointUuid() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + * @return The endpointUuid. + */ + public context.ContextOuterClass.Uuid getEndpointUuid() { + if (endpointUuidBuilder_ == null) { + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; + } else { + return endpointUuidBuilder_.getMessage(); + } + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + public Builder setEndpointUuid(context.ContextOuterClass.Uuid value) { + if (endpointUuidBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + endpointUuid_ = value; + } else { + endpointUuidBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + public Builder setEndpointUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { + if (endpointUuidBuilder_ == null) { + endpointUuid_ = builderForValue.build(); + } else { + endpointUuidBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + public Builder mergeEndpointUuid(context.ContextOuterClass.Uuid value) { + if (endpointUuidBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && endpointUuid_ != null && endpointUuid_ != context.ContextOuterClass.Uuid.getDefaultInstance()) { + getEndpointUuidBuilder().mergeFrom(value); + } else { + endpointUuid_ = value; + } } else { - opticalLinkUuid_ = null; - opticalLinkUuidBuilder_ = null; + endpointUuidBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + /** + * <code>.context.Uuid endpoint_uuid = 3;</code> + */ + public Builder clearEndpointUuid() { + bitField0_ = (bitField0_ & ~0x00000002); + endpointUuid_ = null; + if (endpointUuidBuilder_ != null) { + endpointUuidBuilder_.dispose(); + endpointUuidBuilder_ = null; } + onChanged(); return this; } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.Uuid endpoint_uuid = 3;</code> */ - public context.ContextOuterClass.Uuid.Builder getOpticalLinkUuidBuilder() { + public context.ContextOuterClass.Uuid.Builder getEndpointUuidBuilder() { + bitField0_ |= 0x00000002; onChanged(); - return getOpticalLinkUuidFieldBuilder().getBuilder(); + return getEndpointUuidFieldBuilder().getBuilder(); } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.Uuid endpoint_uuid = 3;</code> */ - public context.ContextOuterClass.UuidOrBuilder getOpticalLinkUuidOrBuilder() { - if (opticalLinkUuidBuilder_ != null) { - return opticalLinkUuidBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.UuidOrBuilder getEndpointUuidOrBuilder() { + if (endpointUuidBuilder_ != null) { + return endpointUuidBuilder_.getMessageOrBuilder(); } else { - return opticalLinkUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : opticalLinkUuid_; + return endpointUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : endpointUuid_; } } /** - * <code>.context.Uuid optical_link_uuid = 1;</code> + * <code>.context.Uuid endpoint_uuid = 3;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getOpticalLinkUuidFieldBuilder() { - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getOpticalLinkUuid(), getParentForChildren(), isClean()); - opticalLinkUuid_ = null; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getEndpointUuidFieldBuilder() { + if (endpointUuidBuilder_ == null) { + endpointUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getEndpointUuid(), getParentForChildren(), isClean()); + endpointUuid_ = null; } - return opticalLinkUuidBuilder_; + return endpointUuidBuilder_; } @java.lang.Override @@ -74681,174 +76065,157 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalLinkId) + // @@protoc_insertion_point(builder_scope:context.OpticalEndPointId) } - // @@protoc_insertion_point(class_scope:context.OpticalLinkId) - private static final context.ContextOuterClass.OpticalLinkId DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalEndPointId) + private static final context.ContextOuterClass.OpticalEndPointId DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLinkId(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalEndPointId(); } - public static context.ContextOuterClass.OpticalLinkId getDefaultInstance() { + public static context.ContextOuterClass.OpticalEndPointId getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalLinkId> PARSER = new com.google.protobuf.AbstractParser<OpticalLinkId>() { + private static final com.google.protobuf.Parser<OpticalEndPointId> PARSER = new com.google.protobuf.AbstractParser<OpticalEndPointId>() { @java.lang.Override - public OpticalLinkId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new OpticalLinkId(input, extensionRegistry); + public OpticalEndPointId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<OpticalLinkId> parser() { + public static com.google.protobuf.Parser<OpticalEndPointId> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalLinkId> getParserForType() { + public com.google.protobuf.Parser<OpticalEndPointId> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalLinkId getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalEndPointId getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface FiberIdOrBuilder extends // @@protoc_insertion_point(interface_extends:context.FiberId) + public interface OpticalLinkListOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLinkList) com.google.protobuf.MessageOrBuilder { /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return Whether the fiberUuid field is set. + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList(); + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + context.ContextOuterClass.OpticalLink getOpticalLinks(int index); + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - boolean hasFiberUuid(); + int getOpticalLinksCount(); /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return The fiberUuid. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - context.ContextOuterClass.Uuid getFiberUuid(); + java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList(); /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - context.ContextOuterClass.UuidOrBuilder getFiberUuidOrBuilder(); + context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index); } /** - * Protobuf type {@code context.FiberId} + * Protobuf type {@code context.OpticalLinkList} */ - public static final class FiberId extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.FiberId) - FiberIdOrBuilder { + public static final class OpticalLinkList extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLinkList) + OpticalLinkListOrBuilder { private static final long serialVersionUID = 0L; - // Use FiberId.newBuilder() to construct. - private FiberId(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalLinkList.newBuilder() to construct. + private OpticalLinkList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private FiberId() { + private OpticalLinkList() { + opticalLinks_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new FiberId(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private FiberId(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - context.ContextOuterClass.Uuid.Builder subBuilder = null; - if (fiberUuid_ != null) { - subBuilder = fiberUuid_.toBuilder(); - } - fiberUuid_ = input.readMessage(context.ContextOuterClass.Uuid.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(fiberUuid_); - fiberUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } + return new OpticalLinkList(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_FiberId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_FiberId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.FiberId.class, context.ContextOuterClass.FiberId.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalLinkList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkList.class, context.ContextOuterClass.OpticalLinkList.Builder.class); } - public static final int FIBER_UUID_FIELD_NUMBER = 1; + public static final int OPTICAL_LINKS_FIELD_NUMBER = 1; + + @SuppressWarnings("serial") + private java.util.List<context.ContextOuterClass.OpticalLink> opticalLinks_; - private context.ContextOuterClass.Uuid fiberUuid_; + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + @java.lang.Override + public java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList() { + return opticalLinks_; + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + @java.lang.Override + public java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList() { + return opticalLinks_; + } /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return Whether the fiberUuid field is set. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ @java.lang.Override - public boolean hasFiberUuid() { - return fiberUuid_ != null; + public int getOpticalLinksCount() { + return opticalLinks_.size(); } /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return The fiberUuid. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ @java.lang.Override - public context.ContextOuterClass.Uuid getFiberUuid() { - return fiberUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : fiberUuid_; + public context.ContextOuterClass.OpticalLink getOpticalLinks(int index) { + return opticalLinks_.get(index); } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ @java.lang.Override - public context.ContextOuterClass.UuidOrBuilder getFiberUuidOrBuilder() { - return getFiberUuid(); + public context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index) { + return opticalLinks_.get(index); } private byte memoizedIsInitialized = -1; @@ -74866,10 +76233,10 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (fiberUuid_ != null) { - output.writeMessage(1, getFiberUuid()); + for (int i = 0; i < opticalLinks_.size(); i++) { + output.writeMessage(1, opticalLinks_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -74878,10 +76245,10 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (fiberUuid_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getFiberUuid()); + for (int i = 0; i < opticalLinks_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, opticalLinks_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -74891,17 +76258,13 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.FiberId)) { + if (!(obj instanceof context.ContextOuterClass.OpticalLinkList)) { return super.equals(obj); } - context.ContextOuterClass.FiberId other = (context.ContextOuterClass.FiberId) obj; - if (hasFiberUuid() != other.hasFiberUuid()) + context.ContextOuterClass.OpticalLinkList other = (context.ContextOuterClass.OpticalLinkList) obj; + if (!getOpticalLinksList().equals(other.getOpticalLinksList())) return false; - if (hasFiberUuid()) { - if (!getFiberUuid().equals(other.getFiberUuid())) - return false; - } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -74913,60 +76276,60 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - if (hasFiberUuid()) { - hash = (37 * hash) + FIBER_UUID_FIELD_NUMBER; - hash = (53 * hash) + getFiberUuid().hashCode(); + if (getOpticalLinksCount() > 0) { + hash = (37 * hash) + OPTICAL_LINKS_FIELD_NUMBER; + hash = (53 * hash) + getOpticalLinksList().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.FiberId parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.FiberId parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.FiberId parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.FiberId parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.FiberId parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.FiberId parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.FiberId parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.FiberId parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.FiberId parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.FiberId parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.FiberId parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.FiberId parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkList parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -74979,7 +76342,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.FiberId prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalLinkList prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -74995,60 +76358,55 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.FiberId} + * Protobuf type {@code context.OpticalLinkList} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.FiberId) - context.ContextOuterClass.FiberIdOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLinkList) + context.ContextOuterClass.OpticalLinkListOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_FiberId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkList_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_FiberId_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.FiberId.class, context.ContextOuterClass.FiberId.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalLinkList_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkList.class, context.ContextOuterClass.OpticalLinkList.Builder.class); } - // Construct using context.ContextOuterClass.FiberId.newBuilder() + // Construct using context.ContextOuterClass.OpticalLinkList.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (fiberUuidBuilder_ == null) { - fiberUuid_ = null; + bitField0_ = 0; + if (opticalLinksBuilder_ == null) { + opticalLinks_ = java.util.Collections.emptyList(); } else { - fiberUuid_ = null; - fiberUuidBuilder_ = null; + opticalLinks_ = null; + opticalLinksBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000001); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_FiberId_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkList_descriptor; } @java.lang.Override - public context.ContextOuterClass.FiberId getDefaultInstanceForType() { - return context.ContextOuterClass.FiberId.getDefaultInstance(); + public context.ContextOuterClass.OpticalLinkList getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalLinkList.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.FiberId build() { - context.ContextOuterClass.FiberId result = buildPartial(); + public context.ContextOuterClass.OpticalLinkList build() { + context.ContextOuterClass.OpticalLinkList result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -75056,201 +76414,362 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.FiberId buildPartial() { - context.ContextOuterClass.FiberId result = new context.ContextOuterClass.FiberId(this); - if (fiberUuidBuilder_ == null) { - result.fiberUuid_ = fiberUuid_; + public context.ContextOuterClass.OpticalLinkList buildPartial() { + context.ContextOuterClass.OpticalLinkList result = new context.ContextOuterClass.OpticalLinkList(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(context.ContextOuterClass.OpticalLinkList result) { + if (opticalLinksBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + opticalLinks_ = java.util.Collections.unmodifiableList(opticalLinks_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.opticalLinks_ = opticalLinks_; + } else { + result.opticalLinks_ = opticalLinksBuilder_.build(); + } + } + + private void buildPartial0(context.ContextOuterClass.OpticalLinkList result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof context.ContextOuterClass.OpticalLinkList) { + return mergeFrom((context.ContextOuterClass.OpticalLinkList) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(context.ContextOuterClass.OpticalLinkList other) { + if (other == context.ContextOuterClass.OpticalLinkList.getDefaultInstance()) + return this; + if (opticalLinksBuilder_ == null) { + if (!other.opticalLinks_.isEmpty()) { + if (opticalLinks_.isEmpty()) { + opticalLinks_ = other.opticalLinks_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureOpticalLinksIsMutable(); + opticalLinks_.addAll(other.opticalLinks_); + } + onChanged(); + } } else { - result.fiberUuid_ = fiberUuidBuilder_.build(); + if (!other.opticalLinks_.isEmpty()) { + if (opticalLinksBuilder_.isEmpty()) { + opticalLinksBuilder_.dispose(); + opticalLinksBuilder_ = null; + opticalLinks_ = other.opticalLinks_; + bitField0_ = (bitField0_ & ~0x00000001); + opticalLinksBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getOpticalLinksFieldBuilder() : null; + } else { + opticalLinksBuilder_.addAllMessages(other.opticalLinks_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + context.ContextOuterClass.OpticalLink m = input.readMessage(context.ContextOuterClass.OpticalLink.parser(), extensionRegistry); + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(m); + } else { + opticalLinksBuilder_.addMessage(m); + } + break; + } + // case 10 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); } - onBuilt(); - return result; + // finally + return this; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } + private int bitField0_; - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } + private java.util.List<context.ContextOuterClass.OpticalLink> opticalLinks_ = java.util.Collections.emptyList(); - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); + private void ensureOpticalLinksIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + opticalLinks_ = new java.util.ArrayList<context.ContextOuterClass.OpticalLink>(opticalLinks_); + bitField0_ |= 0x00000001; + } } - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder> opticalLinksBuilder_; - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public java.util.List<context.ContextOuterClass.OpticalLink> getOpticalLinksList() { + if (opticalLinksBuilder_ == null) { + return java.util.Collections.unmodifiableList(opticalLinks_); + } else { + return opticalLinksBuilder_.getMessageList(); + } } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public int getOpticalLinksCount() { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.size(); + } else { + return opticalLinksBuilder_.getCount(); + } } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.FiberId) { - return mergeFrom((context.ContextOuterClass.FiberId) other); + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public context.ContextOuterClass.OpticalLink getOpticalLinks(int index) { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.get(index); } else { - super.mergeFrom(other); - return this; + return opticalLinksBuilder_.getMessage(index); } } - public Builder mergeFrom(context.ContextOuterClass.FiberId other) { - if (other == context.ContextOuterClass.FiberId.getDefaultInstance()) - return this; - if (other.hasFiberUuid()) { - mergeFiberUuid(other.getFiberUuid()); + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public Builder setOpticalLinks(int index, context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinksIsMutable(); + opticalLinks_.set(index, value); + onChanged(); + } else { + opticalLinksBuilder_.setMessage(index, value); } - this.mergeUnknownFields(other.unknownFields); - onChanged(); return this; } - @java.lang.Override - public final boolean isInitialized() { - return true; + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public Builder setOpticalLinks(int index, context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.set(index, builderForValue.build()); + onChanged(); + } else { + opticalLinksBuilder_.setMessage(index, builderForValue.build()); + } + return this; } - @java.lang.Override - public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.FiberId parsedMessage = null; - try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.FiberId) e.getUnfinishedMessage(); - throw e.unwrapIOException(); - } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public Builder addOpticalLinks(context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); } + ensureOpticalLinksIsMutable(); + opticalLinks_.add(value); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(value); } return this; } - private context.ContextOuterClass.Uuid fiberUuid_; - - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> fiberUuidBuilder_; - /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return Whether the fiberUuid field is set. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public boolean hasFiberUuid() { - return fiberUuidBuilder_ != null || fiberUuid_ != null; + public Builder addOpticalLinks(int index, context.ContextOuterClass.OpticalLink value) { + if (opticalLinksBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureOpticalLinksIsMutable(); + opticalLinks_.add(index, value); + onChanged(); + } else { + opticalLinksBuilder_.addMessage(index, value); + } + return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> - * @return The fiberUuid. + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public context.ContextOuterClass.Uuid getFiberUuid() { - if (fiberUuidBuilder_ == null) { - return fiberUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : fiberUuid_; + public Builder addOpticalLinks(context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(builderForValue.build()); + onChanged(); } else { - return fiberUuidBuilder_.getMessage(); + opticalLinksBuilder_.addMessage(builderForValue.build()); } + return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public Builder setFiberUuid(context.ContextOuterClass.Uuid value) { - if (fiberUuidBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - fiberUuid_ = value; + public Builder addOpticalLinks(int index, context.ContextOuterClass.OpticalLink.Builder builderForValue) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.add(index, builderForValue.build()); onChanged(); } else { - fiberUuidBuilder_.setMessage(value); + opticalLinksBuilder_.addMessage(index, builderForValue.build()); } return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public Builder setFiberUuid(context.ContextOuterClass.Uuid.Builder builderForValue) { - if (fiberUuidBuilder_ == null) { - fiberUuid_ = builderForValue.build(); + public Builder addAllOpticalLinks(java.lang.Iterable<? extends context.ContextOuterClass.OpticalLink> values) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, opticalLinks_); onChanged(); } else { - fiberUuidBuilder_.setMessage(builderForValue.build()); + opticalLinksBuilder_.addAllMessages(values); } return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public Builder mergeFiberUuid(context.ContextOuterClass.Uuid value) { - if (fiberUuidBuilder_ == null) { - if (fiberUuid_ != null) { - fiberUuid_ = context.ContextOuterClass.Uuid.newBuilder(fiberUuid_).mergeFrom(value).buildPartial(); - } else { - fiberUuid_ = value; - } + public Builder clearOpticalLinks() { + if (opticalLinksBuilder_ == null) { + opticalLinks_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); onChanged(); } else { - fiberUuidBuilder_.mergeFrom(value); + opticalLinksBuilder_.clear(); } return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public Builder clearFiberUuid() { - if (fiberUuidBuilder_ == null) { - fiberUuid_ = null; + public Builder removeOpticalLinks(int index) { + if (opticalLinksBuilder_ == null) { + ensureOpticalLinksIsMutable(); + opticalLinks_.remove(index); onChanged(); } else { - fiberUuid_ = null; - fiberUuidBuilder_ = null; + opticalLinksBuilder_.remove(index); } return this; } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public context.ContextOuterClass.Uuid.Builder getFiberUuidBuilder() { - onChanged(); - return getFiberUuidFieldBuilder().getBuilder(); + public context.ContextOuterClass.OpticalLink.Builder getOpticalLinksBuilder(int index) { + return getOpticalLinksFieldBuilder().getBuilder(index); } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - public context.ContextOuterClass.UuidOrBuilder getFiberUuidOrBuilder() { - if (fiberUuidBuilder_ != null) { - return fiberUuidBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.OpticalLinkOrBuilder getOpticalLinksOrBuilder(int index) { + if (opticalLinksBuilder_ == null) { + return opticalLinks_.get(index); } else { - return fiberUuid_ == null ? context.ContextOuterClass.Uuid.getDefaultInstance() : fiberUuid_; + return opticalLinksBuilder_.getMessageOrBuilder(index); } } /** - * <code>.context.Uuid fiber_uuid = 1;</code> + * <code>repeated .context.OpticalLink optical_links = 1;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder> getFiberUuidFieldBuilder() { - if (fiberUuidBuilder_ == null) { - fiberUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.Uuid, context.ContextOuterClass.Uuid.Builder, context.ContextOuterClass.UuidOrBuilder>(getFiberUuid(), getParentForChildren(), isClean()); - fiberUuid_ = null; + public java.util.List<? extends context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksOrBuilderList() { + if (opticalLinksBuilder_ != null) { + return opticalLinksBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(opticalLinks_); + } + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public context.ContextOuterClass.OpticalLink.Builder addOpticalLinksBuilder() { + return getOpticalLinksFieldBuilder().addBuilder(context.ContextOuterClass.OpticalLink.getDefaultInstance()); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public context.ContextOuterClass.OpticalLink.Builder addOpticalLinksBuilder(int index) { + return getOpticalLinksFieldBuilder().addBuilder(index, context.ContextOuterClass.OpticalLink.getDefaultInstance()); + } + + /** + * <code>repeated .context.OpticalLink optical_links = 1;</code> + */ + public java.util.List<context.ContextOuterClass.OpticalLink.Builder> getOpticalLinksBuilderList() { + return getOpticalLinksFieldBuilder().getBuilderList(); + } + + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder> getOpticalLinksFieldBuilder() { + if (opticalLinksBuilder_ == null) { + opticalLinksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.OpticalLink.Builder, context.ContextOuterClass.OpticalLinkOrBuilder>(opticalLinks_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); + opticalLinks_ = null; } - return fiberUuidBuilder_; + return opticalLinksBuilder_; } @java.lang.Override @@ -75262,448 +76781,280 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.FiberId) + // @@protoc_insertion_point(builder_scope:context.OpticalLinkList) } - // @@protoc_insertion_point(class_scope:context.FiberId) - private static final context.ContextOuterClass.FiberId DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalLinkList) + private static final context.ContextOuterClass.OpticalLinkList DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.FiberId(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLinkList(); } - public static context.ContextOuterClass.FiberId getDefaultInstance() { + public static context.ContextOuterClass.OpticalLinkList getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<FiberId> PARSER = new com.google.protobuf.AbstractParser<FiberId>() { + private static final com.google.protobuf.Parser<OpticalLinkList> PARSER = new com.google.protobuf.AbstractParser<OpticalLinkList>() { @java.lang.Override - public FiberId parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new FiberId(input, extensionRegistry); + public OpticalLinkList parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<FiberId> parser() { + public static com.google.protobuf.Parser<OpticalLinkList> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<FiberId> getParserForType() { + public com.google.protobuf.Parser<OpticalLinkList> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.FiberId getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalLinkList getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface FiberOrBuilder extends // @@protoc_insertion_point(interface_extends:context.Fiber) + public interface OpticalLinkDetailsOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLinkDetails) com.google.protobuf.MessageOrBuilder { /** - * <code>string ID = 10;</code> - * @return The iD. - */ - java.lang.String getID(); - - /** - * <code>string ID = 10;</code> - * @return The bytes for iD. + * <code>float length = 1;</code> + * @return The length. */ - com.google.protobuf.ByteString getIDBytes(); + float getLength(); /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The srcPort. */ java.lang.String getSrcPort(); /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The bytes for srcPort. */ com.google.protobuf.ByteString getSrcPortBytes(); /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The dstPort. */ java.lang.String getDstPort(); /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The bytes for dstPort. */ com.google.protobuf.ByteString getDstPortBytes(); /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The localPeerPort. */ java.lang.String getLocalPeerPort(); /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The bytes for localPeerPort. */ com.google.protobuf.ByteString getLocalPeerPortBytes(); /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The remotePeerPort. */ java.lang.String getRemotePeerPort(); /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The bytes for remotePeerPort. */ com.google.protobuf.ByteString getRemotePeerPortBytes(); /** - * <code>repeated int32 c_slots = 5;</code> - * @return A list containing the cSlots. + * <code>bool used = 6;</code> + * @return The used. */ - java.util.List<java.lang.Integer> getCSlotsList(); + boolean getUsed(); /** - * <code>repeated int32 c_slots = 5;</code> - * @return The count of cSlots. + * <code>map<string, int32> c_slots = 7;</code> */ int getCSlotsCount(); /** - * <code>repeated int32 c_slots = 5;</code> - * @param index The index of the element to return. - * @return The cSlots at the given index. + * <code>map<string, int32> c_slots = 7;</code> + */ + boolean containsCSlots(java.lang.String key); + + /** + * Use {@link #getCSlotsMap()} instead. */ - int getCSlots(int index); + @java.lang.Deprecated + java.util.Map<java.lang.String, java.lang.Integer> getCSlots(); + + /** + * <code>map<string, int32> c_slots = 7;</code> + */ + java.util.Map<java.lang.String, java.lang.Integer> getCSlotsMap(); /** - * <code>repeated int32 l_slots = 6;</code> - * @return A list containing the lSlots. + * <code>map<string, int32> c_slots = 7;</code> */ - java.util.List<java.lang.Integer> getLSlotsList(); + int getCSlotsOrDefault(java.lang.String key, int defaultValue); /** - * <code>repeated int32 l_slots = 6;</code> - * @return The count of lSlots. + * <code>map<string, int32> c_slots = 7;</code> + */ + int getCSlotsOrThrow(java.lang.String key); + + /** + * <code>map<string, int32> l_slots = 8;</code> */ int getLSlotsCount(); /** - * <code>repeated int32 l_slots = 6;</code> - * @param index The index of the element to return. - * @return The lSlots at the given index. + * <code>map<string, int32> l_slots = 8;</code> */ - int getLSlots(int index); + boolean containsLSlots(java.lang.String key); /** - * <code>repeated int32 s_slots = 7;</code> - * @return A list containing the sSlots. + * Use {@link #getLSlotsMap()} instead. */ - java.util.List<java.lang.Integer> getSSlotsList(); + @java.lang.Deprecated + java.util.Map<java.lang.String, java.lang.Integer> getLSlots(); /** - * <code>repeated int32 s_slots = 7;</code> - * @return The count of sSlots. + * <code>map<string, int32> l_slots = 8;</code> */ - int getSSlotsCount(); + java.util.Map<java.lang.String, java.lang.Integer> getLSlotsMap(); /** - * <code>repeated int32 s_slots = 7;</code> - * @param index The index of the element to return. - * @return The sSlots at the given index. + * <code>map<string, int32> l_slots = 8;</code> */ - int getSSlots(int index); + int getLSlotsOrDefault(java.lang.String key, int defaultValue); /** - * <code>float length = 8;</code> - * @return The length. + * <code>map<string, int32> l_slots = 8;</code> */ - float getLength(); + int getLSlotsOrThrow(java.lang.String key); /** - * <code>bool used = 9;</code> - * @return The used. + * <code>map<string, int32> s_slots = 9;</code> */ - boolean getUsed(); + int getSSlotsCount(); /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return Whether the fiberUuid field is set. + * <code>map<string, int32> s_slots = 9;</code> */ - boolean hasFiberUuid(); + boolean containsSSlots(java.lang.String key); /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return The fiberUuid. + * Use {@link #getSSlotsMap()} instead. */ - context.ContextOuterClass.FiberId getFiberUuid(); + @java.lang.Deprecated + java.util.Map<java.lang.String, java.lang.Integer> getSSlots(); + + /** + * <code>map<string, int32> s_slots = 9;</code> + */ + java.util.Map<java.lang.String, java.lang.Integer> getSSlotsMap(); /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - context.ContextOuterClass.FiberIdOrBuilder getFiberUuidOrBuilder(); + int getSSlotsOrDefault(java.lang.String key, int defaultValue); + + /** + * <code>map<string, int32> s_slots = 9;</code> + */ + int getSSlotsOrThrow(java.lang.String key); } /** - * Protobuf type {@code context.Fiber} + * Protobuf type {@code context.OpticalLinkDetails} */ - public static final class Fiber extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.Fiber) - FiberOrBuilder { + public static final class OpticalLinkDetails extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLinkDetails) + OpticalLinkDetailsOrBuilder { private static final long serialVersionUID = 0L; - // Use Fiber.newBuilder() to construct. - private Fiber(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalLinkDetails.newBuilder() to construct. + private OpticalLinkDetails(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private Fiber() { - iD_ = ""; + private OpticalLinkDetails() { srcPort_ = ""; dstPort_ = ""; localPeerPort_ = ""; remotePeerPort_ = ""; - cSlots_ = emptyIntList(); - lSlots_ = emptyIntList(); - sSlots_ = emptyIntList(); } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new Fiber(); + return new OpticalLinkDetails(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; } - private Fiber(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - srcPort_ = s; - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - dstPort_ = s; - break; - } - case 26: - { - java.lang.String s = input.readStringRequireUtf8(); - localPeerPort_ = s; - break; - } - case 34: - { - java.lang.String s = input.readStringRequireUtf8(); - remotePeerPort_ = s; - break; - } - case 40: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - cSlots_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - cSlots_.addInt(input.readInt32()); - break; - } - case 42: - { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) { - cSlots_ = newIntList(); - mutable_bitField0_ |= 0x00000001; - } - while (input.getBytesUntilLimit() > 0) { - cSlots_.addInt(input.readInt32()); - } - input.popLimit(limit); - break; - } - case 48: - { - if (!((mutable_bitField0_ & 0x00000002) != 0)) { - lSlots_ = newIntList(); - mutable_bitField0_ |= 0x00000002; - } - lSlots_.addInt(input.readInt32()); - break; - } - case 50: - { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) { - lSlots_ = newIntList(); - mutable_bitField0_ |= 0x00000002; - } - while (input.getBytesUntilLimit() > 0) { - lSlots_.addInt(input.readInt32()); - } - input.popLimit(limit); - break; - } - case 56: - { - if (!((mutable_bitField0_ & 0x00000004) != 0)) { - sSlots_ = newIntList(); - mutable_bitField0_ |= 0x00000004; - } - sSlots_.addInt(input.readInt32()); - break; - } - case 58: - { - int length = input.readRawVarint32(); - int limit = input.pushLimit(length); - if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) { - sSlots_ = newIntList(); - mutable_bitField0_ |= 0x00000004; - } - while (input.getBytesUntilLimit() > 0) { - sSlots_.addInt(input.readInt32()); - } - input.popLimit(limit); - break; - } - case 69: - { - length_ = input.readFloat(); - break; - } - case 72: - { - used_ = input.readBool(); - break; - } - case 82: - { - java.lang.String s = input.readStringRequireUtf8(); - iD_ = s; - break; - } - case 90: - { - context.ContextOuterClass.FiberId.Builder subBuilder = null; - if (fiberUuid_ != null) { - subBuilder = fiberUuid_.toBuilder(); - } - fiberUuid_ = input.readMessage(context.ContextOuterClass.FiberId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(fiberUuid_); - fiberUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - // C - cSlots_.makeImmutable(); - } - if (((mutable_bitField0_ & 0x00000002) != 0)) { - // C - lSlots_.makeImmutable(); - } - if (((mutable_bitField0_ & 0x00000004) != 0)) { - // C - sSlots_.makeImmutable(); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); + @SuppressWarnings({ "rawtypes" }) + @java.lang.Override + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch(number) { + case 7: + return internalGetCSlots(); + case 8: + return internalGetLSlots(); + case 9: + return internalGetSSlots(); + default: + throw new RuntimeException("Invalid map field number: " + number); } } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_Fiber_descriptor; - } - @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Fiber_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Fiber.class, context.ContextOuterClass.Fiber.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkDetails.class, context.ContextOuterClass.OpticalLinkDetails.Builder.class); } - public static final int ID_FIELD_NUMBER = 10; - - private volatile java.lang.Object iD_; + public static final int LENGTH_FIELD_NUMBER = 1; - /** - * <code>string ID = 10;</code> - * @return The iD. - */ - @java.lang.Override - public java.lang.String getID() { - java.lang.Object ref = iD_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - iD_ = s; - return s; - } - } + private float length_ = 0F; /** - * <code>string ID = 10;</code> - * @return The bytes for iD. + * <code>float length = 1;</code> + * @return The length. */ @java.lang.Override - public com.google.protobuf.ByteString getIDBytes() { - java.lang.Object ref = iD_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - iD_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public float getLength() { + return length_; } - public static final int SRC_PORT_FIELD_NUMBER = 1; + public static final int SRC_PORT_FIELD_NUMBER = 2; - private volatile java.lang.Object srcPort_; + @SuppressWarnings("serial") + private volatile java.lang.Object srcPort_ = ""; /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The srcPort. */ @java.lang.Override @@ -75720,7 +77071,7 @@ public final class ContextOuterClass { } /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The bytes for srcPort. */ @java.lang.Override @@ -75735,12 +77086,13 @@ public final class ContextOuterClass { } } - public static final int DST_PORT_FIELD_NUMBER = 2; + public static final int DST_PORT_FIELD_NUMBER = 3; - private volatile java.lang.Object dstPort_; + @SuppressWarnings("serial") + private volatile java.lang.Object dstPort_ = ""; /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The dstPort. */ @java.lang.Override @@ -75757,7 +77109,7 @@ public final class ContextOuterClass { } /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The bytes for dstPort. */ @java.lang.Override @@ -75772,12 +77124,13 @@ public final class ContextOuterClass { } } - public static final int LOCAL_PEER_PORT_FIELD_NUMBER = 3; + public static final int LOCAL_PEER_PORT_FIELD_NUMBER = 4; - private volatile java.lang.Object localPeerPort_; + @SuppressWarnings("serial") + private volatile java.lang.Object localPeerPort_ = ""; /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The localPeerPort. */ @java.lang.Override @@ -75794,7 +77147,7 @@ public final class ContextOuterClass { } /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The bytes for localPeerPort. */ @java.lang.Override @@ -75809,12 +77162,13 @@ public final class ContextOuterClass { } } - public static final int REMOTE_PEER_PORT_FIELD_NUMBER = 4; + public static final int REMOTE_PEER_PORT_FIELD_NUMBER = 5; - private volatile java.lang.Object remotePeerPort_; + @SuppressWarnings("serial") + private volatile java.lang.Object remotePeerPort_ = ""; /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The remotePeerPort. */ @java.lang.Override @@ -75831,7 +77185,7 @@ public final class ContextOuterClass { } /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The bytes for remotePeerPort. */ @java.lang.Override @@ -75846,156 +77200,245 @@ public final class ContextOuterClass { } } - public static final int C_SLOTS_FIELD_NUMBER = 5; + public static final int USED_FIELD_NUMBER = 6; - private com.google.protobuf.Internal.IntList cSlots_; + private boolean used_ = false; /** - * <code>repeated int32 c_slots = 5;</code> - * @return A list containing the cSlots. + * <code>bool used = 6;</code> + * @return The used. */ @java.lang.Override - public java.util.List<java.lang.Integer> getCSlotsList() { + public boolean getUsed() { + return used_; + } + + public static final int C_SLOTS_FIELD_NUMBER = 7; + + private static final class CSlotsDefaultEntryHolder { + + static final com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> defaultEntry = com.google.protobuf.MapEntry.<java.lang.String, java.lang.Integer>newDefaultInstance(context.ContextOuterClass.internal_static_context_OpticalLinkDetails_CSlotsEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.INT32, 0); + } + + @SuppressWarnings("serial") + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> cSlots_; + + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetCSlots() { + if (cSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(CSlotsDefaultEntryHolder.defaultEntry); + } return cSlots_; } - /** - * <code>repeated int32 c_slots = 5;</code> - * @return The count of cSlots. - */ public int getCSlotsCount() { - return cSlots_.size(); + return internalGetCSlots().getMap().size(); } /** - * <code>repeated int32 c_slots = 5;</code> - * @param index The index of the element to return. - * @return The cSlots at the given index. + * <code>map<string, int32> c_slots = 7;</code> */ - public int getCSlots(int index) { - return cSlots_.getInt(index); + @java.lang.Override + public boolean containsCSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetCSlots().getMap().containsKey(key); } - private int cSlotsMemoizedSerializedSize = -1; - - public static final int L_SLOTS_FIELD_NUMBER = 6; - - private com.google.protobuf.Internal.IntList lSlots_; + /** + * Use {@link #getCSlotsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getCSlots() { + return getCSlotsMap(); + } /** - * <code>repeated int32 l_slots = 6;</code> - * @return A list containing the lSlots. + * <code>map<string, int32> c_slots = 7;</code> */ @java.lang.Override - public java.util.List<java.lang.Integer> getLSlotsList() { - return lSlots_; + public java.util.Map<java.lang.String, java.lang.Integer> getCSlotsMap() { + return internalGetCSlots().getMap(); } /** - * <code>repeated int32 l_slots = 6;</code> - * @return The count of lSlots. + * <code>map<string, int32> c_slots = 7;</code> */ - public int getLSlotsCount() { - return lSlots_.size(); + @java.lang.Override + public int getCSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetCSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** - * <code>repeated int32 l_slots = 6;</code> - * @param index The index of the element to return. - * @return The lSlots at the given index. + * <code>map<string, int32> c_slots = 7;</code> */ - public int getLSlots(int index) { - return lSlots_.getInt(index); + @java.lang.Override + public int getCSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetCSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int L_SLOTS_FIELD_NUMBER = 8; + + private static final class LSlotsDefaultEntryHolder { + + static final com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> defaultEntry = com.google.protobuf.MapEntry.<java.lang.String, java.lang.Integer>newDefaultInstance(context.ContextOuterClass.internal_static_context_OpticalLinkDetails_LSlotsEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.INT32, 0); } - private int lSlotsMemoizedSerializedSize = -1; + @SuppressWarnings("serial") + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> lSlots_; - public static final int S_SLOTS_FIELD_NUMBER = 7; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetLSlots() { + if (lSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(LSlotsDefaultEntryHolder.defaultEntry); + } + return lSlots_; + } - private com.google.protobuf.Internal.IntList sSlots_; + public int getLSlotsCount() { + return internalGetLSlots().getMap().size(); + } /** - * <code>repeated int32 s_slots = 7;</code> - * @return A list containing the sSlots. + * <code>map<string, int32> l_slots = 8;</code> */ @java.lang.Override - public java.util.List<java.lang.Integer> getSSlotsList() { - return sSlots_; + public boolean containsLSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetLSlots().getMap().containsKey(key); } /** - * <code>repeated int32 s_slots = 7;</code> - * @return The count of sSlots. + * Use {@link #getLSlotsMap()} instead. */ - public int getSSlotsCount() { - return sSlots_.size(); + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getLSlots() { + return getLSlotsMap(); } /** - * <code>repeated int32 s_slots = 7;</code> - * @param index The index of the element to return. - * @return The sSlots at the given index. + * <code>map<string, int32> l_slots = 8;</code> */ - public int getSSlots(int index) { - return sSlots_.getInt(index); + @java.lang.Override + public java.util.Map<java.lang.String, java.lang.Integer> getLSlotsMap() { + return internalGetLSlots().getMap(); } - private int sSlotsMemoizedSerializedSize = -1; - - public static final int LENGTH_FIELD_NUMBER = 8; - - private float length_; + /** + * <code>map<string, int32> l_slots = 8;</code> + */ + @java.lang.Override + public int getLSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetLSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } /** - * <code>float length = 8;</code> - * @return The length. + * <code>map<string, int32> l_slots = 8;</code> */ @java.lang.Override - public float getLength() { - return length_; + public int getLSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetLSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int S_SLOTS_FIELD_NUMBER = 9; + + private static final class SSlotsDefaultEntryHolder { + + static final com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> defaultEntry = com.google.protobuf.MapEntry.<java.lang.String, java.lang.Integer>newDefaultInstance(context.ContextOuterClass.internal_static_context_OpticalLinkDetails_SSlotsEntry_descriptor, com.google.protobuf.WireFormat.FieldType.STRING, "", com.google.protobuf.WireFormat.FieldType.INT32, 0); } - public static final int USED_FIELD_NUMBER = 9; + @SuppressWarnings("serial") + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> sSlots_; + + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetSSlots() { + if (sSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(SSlotsDefaultEntryHolder.defaultEntry); + } + return sSlots_; + } - private boolean used_; + public int getSSlotsCount() { + return internalGetSSlots().getMap().size(); + } /** - * <code>bool used = 9;</code> - * @return The used. + * <code>map<string, int32> s_slots = 9;</code> */ @java.lang.Override - public boolean getUsed() { - return used_; + public boolean containsSSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetSSlots().getMap().containsKey(key); } - public static final int FIBER_UUID_FIELD_NUMBER = 11; - - private context.ContextOuterClass.FiberId fiberUuid_; + /** + * Use {@link #getSSlotsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getSSlots() { + return getSSlotsMap(); + } /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return Whether the fiberUuid field is set. + * <code>map<string, int32> s_slots = 9;</code> */ @java.lang.Override - public boolean hasFiberUuid() { - return fiberUuid_ != null; + public java.util.Map<java.lang.String, java.lang.Integer> getSSlotsMap() { + return internalGetSSlots().getMap(); } /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return The fiberUuid. + * <code>map<string, int32> s_slots = 9;</code> */ @java.lang.Override - public context.ContextOuterClass.FiberId getFiberUuid() { - return fiberUuid_ == null ? context.ContextOuterClass.FiberId.getDefaultInstance() : fiberUuid_; + public int getSSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetSSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ @java.lang.Override - public context.ContextOuterClass.FiberIdOrBuilder getFiberUuidOrBuilder() { - return getFiberUuid(); + public int getSSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetSSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); } private byte memoizedIsInitialized = -1; @@ -76013,53 +77456,28 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - getSerializedSize(); - if (!getSrcPortBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, srcPort_); - } - if (!getDstPortBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, dstPort_); - } - if (!getLocalPeerPortBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, localPeerPort_); - } - if (!getRemotePeerPortBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 4, remotePeerPort_); - } - if (getCSlotsList().size() > 0) { - output.writeUInt32NoTag(42); - output.writeUInt32NoTag(cSlotsMemoizedSerializedSize); - } - for (int i = 0; i < cSlots_.size(); i++) { - output.writeInt32NoTag(cSlots_.getInt(i)); - } - if (getLSlotsList().size() > 0) { - output.writeUInt32NoTag(50); - output.writeUInt32NoTag(lSlotsMemoizedSerializedSize); + if (java.lang.Float.floatToRawIntBits(length_) != 0) { + output.writeFloat(1, length_); } - for (int i = 0; i < lSlots_.size(); i++) { - output.writeInt32NoTag(lSlots_.getInt(i)); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcPort_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, srcPort_); } - if (getSSlotsList().size() > 0) { - output.writeUInt32NoTag(58); - output.writeUInt32NoTag(sSlotsMemoizedSerializedSize); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstPort_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, dstPort_); } - for (int i = 0; i < sSlots_.size(); i++) { - output.writeInt32NoTag(sSlots_.getInt(i)); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(localPeerPort_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, localPeerPort_); } - if (length_ != 0F) { - output.writeFloat(8, length_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remotePeerPort_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, remotePeerPort_); } if (used_ != false) { - output.writeBool(9, used_); - } - if (!getIDBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 10, iD_); + output.writeBool(6, used_); } - if (fiberUuid_ != null) { - output.writeMessage(11, getFiberUuid()); - } - unknownFields.writeTo(output); + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(output, internalGetCSlots(), CSlotsDefaultEntryHolder.defaultEntry, 7); + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(output, internalGetLSlots(), LSlotsDefaultEntryHolder.defaultEntry, 8); + com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(output, internalGetSSlots(), SSlotsDefaultEntryHolder.defaultEntry, 9); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -76068,67 +77486,37 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!getSrcPortBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, srcPort_); - } - if (!getDstPortBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, dstPort_); - } - if (!getLocalPeerPortBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, localPeerPort_); - } - if (!getRemotePeerPortBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, remotePeerPort_); + if (java.lang.Float.floatToRawIntBits(length_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, length_); } - { - int dataSize = 0; - for (int i = 0; i < cSlots_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(cSlots_.getInt(i)); - } - size += dataSize; - if (!getCSlotsList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(dataSize); - } - cSlotsMemoizedSerializedSize = dataSize; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(srcPort_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, srcPort_); } - { - int dataSize = 0; - for (int i = 0; i < lSlots_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(lSlots_.getInt(i)); - } - size += dataSize; - if (!getLSlotsList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(dataSize); - } - lSlotsMemoizedSerializedSize = dataSize; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(dstPort_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, dstPort_); } - { - int dataSize = 0; - for (int i = 0; i < sSlots_.size(); i++) { - dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(sSlots_.getInt(i)); - } - size += dataSize; - if (!getSSlotsList().isEmpty()) { - size += 1; - size += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(dataSize); - } - sSlotsMemoizedSerializedSize = dataSize; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(localPeerPort_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, localPeerPort_); } - if (length_ != 0F) { - size += com.google.protobuf.CodedOutputStream.computeFloatSize(8, length_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(remotePeerPort_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, remotePeerPort_); } if (used_ != false) { - size += com.google.protobuf.CodedOutputStream.computeBoolSize(9, used_); + size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, used_); + } + for (java.util.Map.Entry<java.lang.String, java.lang.Integer> entry : internalGetCSlots().getMap().entrySet()) { + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> cSlots__ = CSlotsDefaultEntryHolder.defaultEntry.newBuilderForType().setKey(entry.getKey()).setValue(entry.getValue()).build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, cSlots__); } - if (!getIDBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, iD_); + for (java.util.Map.Entry<java.lang.String, java.lang.Integer> entry : internalGetLSlots().getMap().entrySet()) { + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> lSlots__ = LSlotsDefaultEntryHolder.defaultEntry.newBuilderForType().setKey(entry.getKey()).setValue(entry.getValue()).build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, lSlots__); } - if (fiberUuid_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getFiberUuid()); + for (java.util.Map.Entry<java.lang.String, java.lang.Integer> entry : internalGetSSlots().getMap().entrySet()) { + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> sSlots__ = SSlotsDefaultEntryHolder.defaultEntry.newBuilderForType().setKey(entry.getKey()).setValue(entry.getValue()).build(); + size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, sSlots__); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -76138,11 +77526,11 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.Fiber)) { + if (!(obj instanceof context.ContextOuterClass.OpticalLinkDetails)) { return super.equals(obj); } - context.ContextOuterClass.Fiber other = (context.ContextOuterClass.Fiber) obj; - if (!getID().equals(other.getID())) + context.ContextOuterClass.OpticalLinkDetails other = (context.ContextOuterClass.OpticalLinkDetails) obj; + if (java.lang.Float.floatToIntBits(getLength()) != java.lang.Float.floatToIntBits(other.getLength())) return false; if (!getSrcPort().equals(other.getSrcPort())) return false; @@ -76152,23 +77540,15 @@ public final class ContextOuterClass { return false; if (!getRemotePeerPort().equals(other.getRemotePeerPort())) return false; - if (!getCSlotsList().equals(other.getCSlotsList())) - return false; - if (!getLSlotsList().equals(other.getLSlotsList())) - return false; - if (!getSSlotsList().equals(other.getSSlotsList())) + if (getUsed() != other.getUsed()) return false; - if (java.lang.Float.floatToIntBits(getLength()) != java.lang.Float.floatToIntBits(other.getLength())) + if (!internalGetCSlots().equals(other.internalGetCSlots())) return false; - if (getUsed() != other.getUsed()) + if (!internalGetLSlots().equals(other.internalGetLSlots())) return false; - if (hasFiberUuid() != other.hasFiberUuid()) + if (!internalGetSSlots().equals(other.internalGetSSlots())) return false; - if (hasFiberUuid()) { - if (!getFiberUuid().equals(other.getFiberUuid())) - return false; - } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -76180,8 +77560,8 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + ID_FIELD_NUMBER; - hash = (53 * hash) + getID().hashCode(); + hash = (37 * hash) + LENGTH_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits(getLength()); hash = (37 * hash) + SRC_PORT_FIELD_NUMBER; hash = (53 * hash) + getSrcPort().hashCode(); hash = (37 * hash) + DST_PORT_FIELD_NUMBER; @@ -76190,76 +77570,70 @@ public final class ContextOuterClass { hash = (53 * hash) + getLocalPeerPort().hashCode(); hash = (37 * hash) + REMOTE_PEER_PORT_FIELD_NUMBER; hash = (53 * hash) + getRemotePeerPort().hashCode(); - if (getCSlotsCount() > 0) { + hash = (37 * hash) + USED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getUsed()); + if (!internalGetCSlots().getMap().isEmpty()) { hash = (37 * hash) + C_SLOTS_FIELD_NUMBER; - hash = (53 * hash) + getCSlotsList().hashCode(); + hash = (53 * hash) + internalGetCSlots().hashCode(); } - if (getLSlotsCount() > 0) { + if (!internalGetLSlots().getMap().isEmpty()) { hash = (37 * hash) + L_SLOTS_FIELD_NUMBER; - hash = (53 * hash) + getLSlotsList().hashCode(); + hash = (53 * hash) + internalGetLSlots().hashCode(); } - if (getSSlotsCount() > 0) { + if (!internalGetSSlots().getMap().isEmpty()) { hash = (37 * hash) + S_SLOTS_FIELD_NUMBER; - hash = (53 * hash) + getSSlotsList().hashCode(); + hash = (53 * hash) + internalGetSSlots().hashCode(); } - hash = (37 * hash) + LENGTH_FIELD_NUMBER; - hash = (53 * hash) + java.lang.Float.floatToIntBits(getLength()); - hash = (37 * hash) + USED_FIELD_NUMBER; - hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getUsed()); - if (hasFiberUuid()) { - hash = (37 * hash) + FIBER_UUID_FIELD_NUMBER; - hash = (53 * hash) + getFiberUuid().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.Fiber parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Fiber parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Fiber parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Fiber parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Fiber parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.Fiber parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.Fiber parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.Fiber parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.Fiber parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.Fiber parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.Fiber parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.Fiber parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -76272,7 +77646,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.Fiber prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalLinkDetails prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -76288,73 +77662,85 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.Fiber} + * Protobuf type {@code context.OpticalLinkDetails} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.Fiber) - context.ContextOuterClass.FiberOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLinkDetails) + context.ContextOuterClass.OpticalLinkDetailsOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_Fiber_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapField internalGetMapField(int number) { + switch(number) { + case 7: + return internalGetCSlots(); + case 8: + return internalGetLSlots(); + case 9: + return internalGetSSlots(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } + } + + @SuppressWarnings({ "rawtypes" }) + protected com.google.protobuf.MapField internalGetMutableMapField(int number) { + switch(number) { + case 7: + return internalGetMutableCSlots(); + case 8: + return internalGetMutableLSlots(); + case 9: + return internalGetMutableSSlots(); + default: + throw new RuntimeException("Invalid map field number: " + number); + } } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_Fiber_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.Fiber.class, context.ContextOuterClass.Fiber.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkDetails.class, context.ContextOuterClass.OpticalLinkDetails.Builder.class); } - // Construct using context.ContextOuterClass.Fiber.newBuilder() + // Construct using context.ContextOuterClass.OpticalLinkDetails.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - iD_ = ""; + bitField0_ = 0; + length_ = 0F; srcPort_ = ""; dstPort_ = ""; localPeerPort_ = ""; remotePeerPort_ = ""; - cSlots_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); - lSlots_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000002); - sSlots_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000004); - length_ = 0F; used_ = false; - if (fiberUuidBuilder_ == null) { - fiberUuid_ = null; - } else { - fiberUuid_ = null; - fiberUuidBuilder_ = null; - } + internalGetMutableCSlots().clear(); + internalGetMutableLSlots().clear(); + internalGetMutableSSlots().clear(); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_Fiber_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; } @java.lang.Override - public context.ContextOuterClass.Fiber getDefaultInstanceForType() { - return context.ContextOuterClass.Fiber.getDefaultInstance(); + public context.ContextOuterClass.OpticalLinkDetails getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.Fiber build() { - context.ContextOuterClass.Fiber result = buildPartial(); + public context.ContextOuterClass.OpticalLinkDetails build() { + context.ContextOuterClass.OpticalLinkDetails result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -76362,143 +77748,95 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.Fiber buildPartial() { - context.ContextOuterClass.Fiber result = new context.ContextOuterClass.Fiber(this); - int from_bitField0_ = bitField0_; - result.iD_ = iD_; - result.srcPort_ = srcPort_; - result.dstPort_ = dstPort_; - result.localPeerPort_ = localPeerPort_; - result.remotePeerPort_ = remotePeerPort_; - if (((bitField0_ & 0x00000001) != 0)) { - cSlots_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.cSlots_ = cSlots_; - if (((bitField0_ & 0x00000002) != 0)) { - lSlots_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000002); - } - result.lSlots_ = lSlots_; - if (((bitField0_ & 0x00000004) != 0)) { - sSlots_.makeImmutable(); - bitField0_ = (bitField0_ & ~0x00000004); - } - result.sSlots_ = sSlots_; - result.length_ = length_; - result.used_ = used_; - if (fiberUuidBuilder_ == null) { - result.fiberUuid_ = fiberUuid_; - } else { - result.fiberUuid_ = fiberUuidBuilder_.build(); + public context.ContextOuterClass.OpticalLinkDetails buildPartial() { + context.ContextOuterClass.OpticalLinkDetails result = new context.ContextOuterClass.OpticalLinkDetails(this); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.OpticalLinkDetails result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.length_ = length_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.srcPort_ = srcPort_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.dstPort_ = dstPort_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.localPeerPort_ = localPeerPort_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.remotePeerPort_ = remotePeerPort_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.used_ = used_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.cSlots_ = internalGetCSlots(); + result.cSlots_.makeImmutable(); + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.lSlots_ = internalGetLSlots(); + result.lSlots_.makeImmutable(); + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.sSlots_ = internalGetSSlots(); + result.sSlots_.makeImmutable(); + } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.Fiber) { - return mergeFrom((context.ContextOuterClass.Fiber) other); + if (other instanceof context.ContextOuterClass.OpticalLinkDetails) { + return mergeFrom((context.ContextOuterClass.OpticalLinkDetails) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.Fiber other) { - if (other == context.ContextOuterClass.Fiber.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalLinkDetails other) { + if (other == context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance()) return this; - if (!other.getID().isEmpty()) { - iD_ = other.iD_; - onChanged(); + if (other.getLength() != 0F) { + setLength(other.getLength()); } if (!other.getSrcPort().isEmpty()) { srcPort_ = other.srcPort_; + bitField0_ |= 0x00000002; onChanged(); } if (!other.getDstPort().isEmpty()) { dstPort_ = other.dstPort_; + bitField0_ |= 0x00000004; onChanged(); } if (!other.getLocalPeerPort().isEmpty()) { localPeerPort_ = other.localPeerPort_; + bitField0_ |= 0x00000008; onChanged(); } if (!other.getRemotePeerPort().isEmpty()) { remotePeerPort_ = other.remotePeerPort_; + bitField0_ |= 0x00000010; onChanged(); } - if (!other.cSlots_.isEmpty()) { - if (cSlots_.isEmpty()) { - cSlots_ = other.cSlots_; - bitField0_ = (bitField0_ & ~0x00000001); - } else { - ensureCSlotsIsMutable(); - cSlots_.addAll(other.cSlots_); - } - onChanged(); - } - if (!other.lSlots_.isEmpty()) { - if (lSlots_.isEmpty()) { - lSlots_ = other.lSlots_; - bitField0_ = (bitField0_ & ~0x00000002); - } else { - ensureLSlotsIsMutable(); - lSlots_.addAll(other.lSlots_); - } - onChanged(); - } - if (!other.sSlots_.isEmpty()) { - if (sSlots_.isEmpty()) { - sSlots_ = other.sSlots_; - bitField0_ = (bitField0_ & ~0x00000004); - } else { - ensureSSlotsIsMutable(); - sSlots_.addAll(other.sSlots_); - } - onChanged(); - } - if (other.getLength() != 0F) { - setLength(other.getLength()); - } if (other.getUsed() != false) { setUsed(other.getUsed()); } - if (other.hasFiberUuid()) { - mergeFiberUuid(other.getFiberUuid()); - } - this.mergeUnknownFields(other.unknownFields); + internalGetMutableCSlots().mergeFrom(other.internalGetCSlots()); + bitField0_ |= 0x00000040; + internalGetMutableLSlots().mergeFrom(other.internalGetLSlots()); + bitField0_ |= 0x00000080; + internalGetMutableSSlots().mergeFrom(other.internalGetSSlots()); + bitField0_ |= 0x00000100; + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -76510,90 +77848,136 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.Fiber parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 13: + { + length_ = input.readFloat(); + bitField0_ |= 0x00000001; + break; + } + // case 13 + case 18: + { + srcPort_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + dstPort_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + localPeerPort_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } + // case 34 + case 42: + { + remotePeerPort_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } + // case 42 + case 48: + { + used_ = input.readBool(); + bitField0_ |= 0x00000020; + break; + } + // case 48 + case 58: + { + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> cSlots__ = input.readMessage(CSlotsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableCSlots().getMutableMap().put(cSlots__.getKey(), cSlots__.getValue()); + bitField0_ |= 0x00000040; + break; + } + // case 58 + case 66: + { + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> lSlots__ = input.readMessage(LSlotsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableLSlots().getMutableMap().put(lSlots__.getKey(), lSlots__.getValue()); + bitField0_ |= 0x00000080; + break; + } + // case 66 + case 74: + { + com.google.protobuf.MapEntry<java.lang.String, java.lang.Integer> sSlots__ = input.readMessage(SSlotsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableSSlots().getMutableMap().put(sSlots__.getKey(), sSlots__.getValue()); + bitField0_ |= 0x00000100; + break; + } + // case 74 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.Fiber) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } private int bitField0_; - private java.lang.Object iD_ = ""; - - /** - * <code>string ID = 10;</code> - * @return The iD. - */ - public java.lang.String getID() { - java.lang.Object ref = iD_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - iD_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - - /** - * <code>string ID = 10;</code> - * @return The bytes for iD. - */ - public com.google.protobuf.ByteString getIDBytes() { - java.lang.Object ref = iD_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - iD_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } + private float length_; /** - * <code>string ID = 10;</code> - * @param value The iD to set. - * @return This builder for chaining. + * <code>float length = 1;</code> + * @return The length. */ - public Builder setID(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); - } - iD_ = value; - onChanged(); - return this; + @java.lang.Override + public float getLength() { + return length_; } /** - * <code>string ID = 10;</code> + * <code>float length = 1;</code> + * @param value The length to set. * @return This builder for chaining. */ - public Builder clearID() { - iD_ = getDefaultInstance().getID(); + public Builder setLength(float value) { + length_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } /** - * <code>string ID = 10;</code> - * @param value The bytes for iD to set. + * <code>float length = 1;</code> * @return This builder for chaining. */ - public Builder setIDBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - iD_ = value; + public Builder clearLength() { + bitField0_ = (bitField0_ & ~0x00000001); + length_ = 0F; onChanged(); return this; } @@ -76601,7 +77985,7 @@ public final class ContextOuterClass { private java.lang.Object srcPort_ = ""; /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The srcPort. */ public java.lang.String getSrcPort() { @@ -76617,7 +78001,7 @@ public final class ContextOuterClass { } /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return The bytes for srcPort. */ public com.google.protobuf.ByteString getSrcPortBytes() { @@ -76632,7 +78016,7 @@ public final class ContextOuterClass { } /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @param value The srcPort to set. * @return This builder for chaining. */ @@ -76641,22 +78025,24 @@ public final class ContextOuterClass { throw new NullPointerException(); } srcPort_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @return This builder for chaining. */ public Builder clearSrcPort() { srcPort_ = getDefaultInstance().getSrcPort(); + bitField0_ = (bitField0_ & ~0x00000002); onChanged(); return this; } /** - * <code>string src_port = 1;</code> + * <code>string src_port = 2;</code> * @param value The bytes for srcPort to set. * @return This builder for chaining. */ @@ -76666,6 +78052,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); srcPort_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } @@ -76673,7 +78060,7 @@ public final class ContextOuterClass { private java.lang.Object dstPort_ = ""; /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The dstPort. */ public java.lang.String getDstPort() { @@ -76689,7 +78076,7 @@ public final class ContextOuterClass { } /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return The bytes for dstPort. */ public com.google.protobuf.ByteString getDstPortBytes() { @@ -76704,7 +78091,7 @@ public final class ContextOuterClass { } /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @param value The dstPort to set. * @return This builder for chaining. */ @@ -76713,22 +78100,24 @@ public final class ContextOuterClass { throw new NullPointerException(); } dstPort_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @return This builder for chaining. */ public Builder clearDstPort() { dstPort_ = getDefaultInstance().getDstPort(); + bitField0_ = (bitField0_ & ~0x00000004); onChanged(); return this; } /** - * <code>string dst_port = 2;</code> + * <code>string dst_port = 3;</code> * @param value The bytes for dstPort to set. * @return This builder for chaining. */ @@ -76738,6 +78127,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); dstPort_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -76745,7 +78135,7 @@ public final class ContextOuterClass { private java.lang.Object localPeerPort_ = ""; /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The localPeerPort. */ public java.lang.String getLocalPeerPort() { @@ -76761,7 +78151,7 @@ public final class ContextOuterClass { } /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return The bytes for localPeerPort. */ public com.google.protobuf.ByteString getLocalPeerPortBytes() { @@ -76776,7 +78166,7 @@ public final class ContextOuterClass { } /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @param value The localPeerPort to set. * @return This builder for chaining. */ @@ -76785,22 +78175,24 @@ public final class ContextOuterClass { throw new NullPointerException(); } localPeerPort_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @return This builder for chaining. */ public Builder clearLocalPeerPort() { localPeerPort_ = getDefaultInstance().getLocalPeerPort(); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); return this; } /** - * <code>string local_peer_port = 3;</code> + * <code>string local_peer_port = 4;</code> * @param value The bytes for localPeerPort to set. * @return This builder for chaining. */ @@ -76810,6 +78202,7 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); localPeerPort_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -76817,7 +78210,7 @@ public final class ContextOuterClass { private java.lang.Object remotePeerPort_ = ""; /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The remotePeerPort. */ public java.lang.String getRemotePeerPort() { @@ -76833,7 +78226,7 @@ public final class ContextOuterClass { } /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return The bytes for remotePeerPort. */ public com.google.protobuf.ByteString getRemotePeerPortBytes() { @@ -76848,7 +78241,7 @@ public final class ContextOuterClass { } /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @param value The remotePeerPort to set. * @return This builder for chaining. */ @@ -76857,22 +78250,24 @@ public final class ContextOuterClass { throw new NullPointerException(); } remotePeerPort_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @return This builder for chaining. */ public Builder clearRemotePeerPort() { remotePeerPort_ = getDefaultInstance().getRemotePeerPort(); + bitField0_ = (bitField0_ & ~0x00000010); onChanged(); return this; } /** - * <code>string remote_peer_port = 4;</code> + * <code>string remote_peer_port = 5;</code> * @param value The bytes for remotePeerPort to set. * @return This builder for chaining. */ @@ -76882,432 +78277,424 @@ public final class ContextOuterClass { } checkByteStringIsUtf8(value); remotePeerPort_ = value; + bitField0_ |= 0x00000010; onChanged(); return this; } - private com.google.protobuf.Internal.IntList cSlots_ = emptyIntList(); - - private void ensureCSlotsIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - cSlots_ = mutableCopy(cSlots_); - bitField0_ |= 0x00000001; - } - } - - /** - * <code>repeated int32 c_slots = 5;</code> - * @return A list containing the cSlots. - */ - public java.util.List<java.lang.Integer> getCSlotsList() { - return ((bitField0_ & 0x00000001) != 0) ? java.util.Collections.unmodifiableList(cSlots_) : cSlots_; - } - - /** - * <code>repeated int32 c_slots = 5;</code> - * @return The count of cSlots. - */ - public int getCSlotsCount() { - return cSlots_.size(); - } + private boolean used_; /** - * <code>repeated int32 c_slots = 5;</code> - * @param index The index of the element to return. - * @return The cSlots at the given index. + * <code>bool used = 6;</code> + * @return The used. */ - public int getCSlots(int index) { - return cSlots_.getInt(index); + @java.lang.Override + public boolean getUsed() { + return used_; } /** - * <code>repeated int32 c_slots = 5;</code> - * @param index The index to set the value at. - * @param value The cSlots to set. + * <code>bool used = 6;</code> + * @param value The used to set. * @return This builder for chaining. */ - public Builder setCSlots(int index, int value) { - ensureCSlotsIsMutable(); - cSlots_.setInt(index, value); + public Builder setUsed(boolean value) { + used_ = value; + bitField0_ |= 0x00000020; onChanged(); return this; } /** - * <code>repeated int32 c_slots = 5;</code> - * @param value The cSlots to add. + * <code>bool used = 6;</code> * @return This builder for chaining. */ - public Builder addCSlots(int value) { - ensureCSlotsIsMutable(); - cSlots_.addInt(value); + public Builder clearUsed() { + bitField0_ = (bitField0_ & ~0x00000020); + used_ = false; onChanged(); return this; } - /** - * <code>repeated int32 c_slots = 5;</code> - * @param values The cSlots to add. - * @return This builder for chaining. - */ - public Builder addAllCSlots(java.lang.Iterable<? extends java.lang.Integer> values) { - ensureCSlotsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, cSlots_); - onChanged(); - return this; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> cSlots_; + + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetCSlots() { + if (cSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(CSlotsDefaultEntryHolder.defaultEntry); + } + return cSlots_; } - /** - * <code>repeated int32 c_slots = 5;</code> - * @return This builder for chaining. - */ - public Builder clearCSlots() { - cSlots_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000001); + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetMutableCSlots() { + if (cSlots_ == null) { + cSlots_ = com.google.protobuf.MapField.newMapField(CSlotsDefaultEntryHolder.defaultEntry); + } + if (!cSlots_.isMutable()) { + cSlots_ = cSlots_.copy(); + } + bitField0_ |= 0x00000040; onChanged(); - return this; + return cSlots_; } - private com.google.protobuf.Internal.IntList lSlots_ = emptyIntList(); + public int getCSlotsCount() { + return internalGetCSlots().getMap().size(); + } - private void ensureLSlotsIsMutable() { - if (!((bitField0_ & 0x00000002) != 0)) { - lSlots_ = mutableCopy(lSlots_); - bitField0_ |= 0x00000002; + /** + * <code>map<string, int32> c_slots = 7;</code> + */ + @java.lang.Override + public boolean containsCSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } + return internalGetCSlots().getMap().containsKey(key); } /** - * <code>repeated int32 l_slots = 6;</code> - * @return A list containing the lSlots. + * Use {@link #getCSlotsMap()} instead. */ - public java.util.List<java.lang.Integer> getLSlotsList() { - return ((bitField0_ & 0x00000002) != 0) ? java.util.Collections.unmodifiableList(lSlots_) : lSlots_; + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getCSlots() { + return getCSlotsMap(); } /** - * <code>repeated int32 l_slots = 6;</code> - * @return The count of lSlots. + * <code>map<string, int32> c_slots = 7;</code> */ - public int getLSlotsCount() { - return lSlots_.size(); + @java.lang.Override + public java.util.Map<java.lang.String, java.lang.Integer> getCSlotsMap() { + return internalGetCSlots().getMap(); } /** - * <code>repeated int32 l_slots = 6;</code> - * @param index The index of the element to return. - * @return The lSlots at the given index. + * <code>map<string, int32> c_slots = 7;</code> */ - public int getLSlots(int index) { - return lSlots_.getInt(index); + @java.lang.Override + public int getCSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetCSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** - * <code>repeated int32 l_slots = 6;</code> - * @param index The index to set the value at. - * @param value The lSlots to set. - * @return This builder for chaining. + * <code>map<string, int32> c_slots = 7;</code> */ - public Builder setLSlots(int index, int value) { - ensureLSlotsIsMutable(); - lSlots_.setInt(index, value); - onChanged(); + @java.lang.Override + public int getCSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetCSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearCSlots() { + bitField0_ = (bitField0_ & ~0x00000040); + internalGetMutableCSlots().getMutableMap().clear(); return this; } /** - * <code>repeated int32 l_slots = 6;</code> - * @param value The lSlots to add. - * @return This builder for chaining. + * <code>map<string, int32> c_slots = 7;</code> */ - public Builder addLSlots(int value) { - ensureLSlotsIsMutable(); - lSlots_.addInt(value); - onChanged(); + public Builder removeCSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableCSlots().getMutableMap().remove(key); return this; } /** - * <code>repeated int32 l_slots = 6;</code> - * @param values The lSlots to add. - * @return This builder for chaining. + * Use alternate mutation accessors instead. */ - public Builder addAllLSlots(java.lang.Iterable<? extends java.lang.Integer> values) { - ensureLSlotsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, lSlots_); - onChanged(); + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getMutableCSlots() { + bitField0_ |= 0x00000040; + return internalGetMutableCSlots().getMutableMap(); + } + + /** + * <code>map<string, int32> c_slots = 7;</code> + */ + public Builder putCSlots(java.lang.String key, int value) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableCSlots().getMutableMap().put(key, value); + bitField0_ |= 0x00000040; return this; } /** - * <code>repeated int32 l_slots = 6;</code> - * @return This builder for chaining. + * <code>map<string, int32> c_slots = 7;</code> */ - public Builder clearLSlots() { - lSlots_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000002); - onChanged(); + public Builder putAllCSlots(java.util.Map<java.lang.String, java.lang.Integer> values) { + internalGetMutableCSlots().getMutableMap().putAll(values); + bitField0_ |= 0x00000040; return this; } - private com.google.protobuf.Internal.IntList sSlots_ = emptyIntList(); + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> lSlots_; - private void ensureSSlotsIsMutable() { - if (!((bitField0_ & 0x00000004) != 0)) { - sSlots_ = mutableCopy(sSlots_); - bitField0_ |= 0x00000004; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetLSlots() { + if (lSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(LSlotsDefaultEntryHolder.defaultEntry); } + return lSlots_; } - /** - * <code>repeated int32 s_slots = 7;</code> - * @return A list containing the sSlots. - */ - public java.util.List<java.lang.Integer> getSSlotsList() { - return ((bitField0_ & 0x00000004) != 0) ? java.util.Collections.unmodifiableList(sSlots_) : sSlots_; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetMutableLSlots() { + if (lSlots_ == null) { + lSlots_ = com.google.protobuf.MapField.newMapField(LSlotsDefaultEntryHolder.defaultEntry); + } + if (!lSlots_.isMutable()) { + lSlots_ = lSlots_.copy(); + } + bitField0_ |= 0x00000080; + onChanged(); + return lSlots_; + } + + public int getLSlotsCount() { + return internalGetLSlots().getMap().size(); } /** - * <code>repeated int32 s_slots = 7;</code> - * @return The count of sSlots. + * <code>map<string, int32> l_slots = 8;</code> */ - public int getSSlotsCount() { - return sSlots_.size(); + @java.lang.Override + public boolean containsLSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetLSlots().getMap().containsKey(key); } /** - * <code>repeated int32 s_slots = 7;</code> - * @param index The index of the element to return. - * @return The sSlots at the given index. + * Use {@link #getLSlotsMap()} instead. */ - public int getSSlots(int index) { - return sSlots_.getInt(index); + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getLSlots() { + return getLSlotsMap(); } /** - * <code>repeated int32 s_slots = 7;</code> - * @param index The index to set the value at. - * @param value The sSlots to set. - * @return This builder for chaining. + * <code>map<string, int32> l_slots = 8;</code> */ - public Builder setSSlots(int index, int value) { - ensureSSlotsIsMutable(); - sSlots_.setInt(index, value); - onChanged(); - return this; + @java.lang.Override + public java.util.Map<java.lang.String, java.lang.Integer> getLSlotsMap() { + return internalGetLSlots().getMap(); } /** - * <code>repeated int32 s_slots = 7;</code> - * @param value The sSlots to add. - * @return This builder for chaining. + * <code>map<string, int32> l_slots = 8;</code> */ - public Builder addSSlots(int value) { - ensureSSlotsIsMutable(); - sSlots_.addInt(value); - onChanged(); - return this; + @java.lang.Override + public int getLSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetLSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** - * <code>repeated int32 s_slots = 7;</code> - * @param values The sSlots to add. - * @return This builder for chaining. + * <code>map<string, int32> l_slots = 8;</code> */ - public Builder addAllSSlots(java.lang.Iterable<? extends java.lang.Integer> values) { - ensureSSlotsIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sSlots_); - onChanged(); + @java.lang.Override + public int getLSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetLSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public Builder clearLSlots() { + bitField0_ = (bitField0_ & ~0x00000080); + internalGetMutableLSlots().getMutableMap().clear(); return this; } /** - * <code>repeated int32 s_slots = 7;</code> - * @return This builder for chaining. + * <code>map<string, int32> l_slots = 8;</code> */ - public Builder clearSSlots() { - sSlots_ = emptyIntList(); - bitField0_ = (bitField0_ & ~0x00000004); - onChanged(); + public Builder removeLSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableLSlots().getMutableMap().remove(key); return this; } - private float length_; - /** - * <code>float length = 8;</code> - * @return The length. + * Use alternate mutation accessors instead. */ - @java.lang.Override - public float getLength() { - return length_; + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getMutableLSlots() { + bitField0_ |= 0x00000080; + return internalGetMutableLSlots().getMutableMap(); } /** - * <code>float length = 8;</code> - * @param value The length to set. - * @return This builder for chaining. + * <code>map<string, int32> l_slots = 8;</code> */ - public Builder setLength(float value) { - length_ = value; - onChanged(); + public Builder putLSlots(java.lang.String key, int value) { + if (key == null) { + throw new NullPointerException("map key"); + } + internalGetMutableLSlots().getMutableMap().put(key, value); + bitField0_ |= 0x00000080; return this; } /** - * <code>float length = 8;</code> - * @return This builder for chaining. + * <code>map<string, int32> l_slots = 8;</code> */ - public Builder clearLength() { - length_ = 0F; - onChanged(); + public Builder putAllLSlots(java.util.Map<java.lang.String, java.lang.Integer> values) { + internalGetMutableLSlots().getMutableMap().putAll(values); + bitField0_ |= 0x00000080; return this; } - private boolean used_; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> sSlots_; - /** - * <code>bool used = 9;</code> - * @return The used. - */ - @java.lang.Override - public boolean getUsed() { - return used_; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetSSlots() { + if (sSlots_ == null) { + return com.google.protobuf.MapField.emptyMapField(SSlotsDefaultEntryHolder.defaultEntry); + } + return sSlots_; } - /** - * <code>bool used = 9;</code> - * @param value The used to set. - * @return This builder for chaining. - */ - public Builder setUsed(boolean value) { - used_ = value; + private com.google.protobuf.MapField<java.lang.String, java.lang.Integer> internalGetMutableSSlots() { + if (sSlots_ == null) { + sSlots_ = com.google.protobuf.MapField.newMapField(SSlotsDefaultEntryHolder.defaultEntry); + } + if (!sSlots_.isMutable()) { + sSlots_ = sSlots_.copy(); + } + bitField0_ |= 0x00000100; onChanged(); - return this; + return sSlots_; } - /** - * <code>bool used = 9;</code> - * @return This builder for chaining. - */ - public Builder clearUsed() { - used_ = false; - onChanged(); - return this; + public int getSSlotsCount() { + return internalGetSSlots().getMap().size(); } - private context.ContextOuterClass.FiberId fiberUuid_; - - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.FiberId, context.ContextOuterClass.FiberId.Builder, context.ContextOuterClass.FiberIdOrBuilder> fiberUuidBuilder_; - /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return Whether the fiberUuid field is set. + * <code>map<string, int32> s_slots = 9;</code> */ - public boolean hasFiberUuid() { - return fiberUuidBuilder_ != null || fiberUuid_ != null; + @java.lang.Override + public boolean containsSSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + return internalGetSSlots().getMap().containsKey(key); } /** - * <code>.context.FiberId fiber_uuid = 11;</code> - * @return The fiberUuid. + * Use {@link #getSSlotsMap()} instead. */ - public context.ContextOuterClass.FiberId getFiberUuid() { - if (fiberUuidBuilder_ == null) { - return fiberUuid_ == null ? context.ContextOuterClass.FiberId.getDefaultInstance() : fiberUuid_; - } else { - return fiberUuidBuilder_.getMessage(); - } + @java.lang.Override + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getSSlots() { + return getSSlotsMap(); } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - public Builder setFiberUuid(context.ContextOuterClass.FiberId value) { - if (fiberUuidBuilder_ == null) { - if (value == null) { - throw new NullPointerException(); - } - fiberUuid_ = value; - onChanged(); - } else { - fiberUuidBuilder_.setMessage(value); - } - return this; + @java.lang.Override + public java.util.Map<java.lang.String, java.lang.Integer> getSSlotsMap() { + return internalGetSSlots().getMap(); } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - public Builder setFiberUuid(context.ContextOuterClass.FiberId.Builder builderForValue) { - if (fiberUuidBuilder_ == null) { - fiberUuid_ = builderForValue.build(); - onChanged(); - } else { - fiberUuidBuilder_.setMessage(builderForValue.build()); + @java.lang.Override + public int getSSlotsOrDefault(java.lang.String key, int defaultValue) { + if (key == null) { + throw new NullPointerException("map key"); } - return this; + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetSSlots().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - public Builder mergeFiberUuid(context.ContextOuterClass.FiberId value) { - if (fiberUuidBuilder_ == null) { - if (fiberUuid_ != null) { - fiberUuid_ = context.ContextOuterClass.FiberId.newBuilder(fiberUuid_).mergeFrom(value).buildPartial(); - } else { - fiberUuid_ = value; - } - onChanged(); - } else { - fiberUuidBuilder_.mergeFrom(value); + @java.lang.Override + public int getSSlotsOrThrow(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); + } + java.util.Map<java.lang.String, java.lang.Integer> map = internalGetSSlots().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); } + return map.get(key); + } + + public Builder clearSSlots() { + bitField0_ = (bitField0_ & ~0x00000100); + internalGetMutableSSlots().getMutableMap().clear(); return this; } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - public Builder clearFiberUuid() { - if (fiberUuidBuilder_ == null) { - fiberUuid_ = null; - onChanged(); - } else { - fiberUuid_ = null; - fiberUuidBuilder_ = null; + public Builder removeSSlots(java.lang.String key) { + if (key == null) { + throw new NullPointerException("map key"); } + internalGetMutableSSlots().getMutableMap().remove(key); return this; } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * Use alternate mutation accessors instead. */ - public context.ContextOuterClass.FiberId.Builder getFiberUuidBuilder() { - onChanged(); - return getFiberUuidFieldBuilder().getBuilder(); + @java.lang.Deprecated + public java.util.Map<java.lang.String, java.lang.Integer> getMutableSSlots() { + bitField0_ |= 0x00000100; + return internalGetMutableSSlots().getMutableMap(); } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - public context.ContextOuterClass.FiberIdOrBuilder getFiberUuidOrBuilder() { - if (fiberUuidBuilder_ != null) { - return fiberUuidBuilder_.getMessageOrBuilder(); - } else { - return fiberUuid_ == null ? context.ContextOuterClass.FiberId.getDefaultInstance() : fiberUuid_; + public Builder putSSlots(java.lang.String key, int value) { + if (key == null) { + throw new NullPointerException("map key"); } + internalGetMutableSSlots().getMutableMap().put(key, value); + bitField0_ |= 0x00000100; + return this; } /** - * <code>.context.FiberId fiber_uuid = 11;</code> + * <code>map<string, int32> s_slots = 9;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.FiberId, context.ContextOuterClass.FiberId.Builder, context.ContextOuterClass.FiberIdOrBuilder> getFiberUuidFieldBuilder() { - if (fiberUuidBuilder_ == null) { - fiberUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.FiberId, context.ContextOuterClass.FiberId.Builder, context.ContextOuterClass.FiberIdOrBuilder>(getFiberUuid(), getParentForChildren(), isClean()); - fiberUuid_ = null; - } - return fiberUuidBuilder_; + public Builder putAllSSlots(java.util.Map<java.lang.String, java.lang.Integer> values) { + internalGetMutableSSlots().getMutableMap().putAll(values); + bitField0_ |= 0x00000100; + return this; } @java.lang.Override @@ -77319,333 +78706,302 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.Fiber) + // @@protoc_insertion_point(builder_scope:context.OpticalLinkDetails) } - // @@protoc_insertion_point(class_scope:context.Fiber) - private static final context.ContextOuterClass.Fiber DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalLinkDetails) + private static final context.ContextOuterClass.OpticalLinkDetails DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.Fiber(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLinkDetails(); } - public static context.ContextOuterClass.Fiber getDefaultInstance() { + public static context.ContextOuterClass.OpticalLinkDetails getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<Fiber> PARSER = new com.google.protobuf.AbstractParser<Fiber>() { + private static final com.google.protobuf.Parser<OpticalLinkDetails> PARSER = new com.google.protobuf.AbstractParser<OpticalLinkDetails>() { @java.lang.Override - public Fiber parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new Fiber(input, extensionRegistry); + public OpticalLinkDetails parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<Fiber> parser() { + public static com.google.protobuf.Parser<OpticalLinkDetails> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<Fiber> getParserForType() { + public com.google.protobuf.Parser<OpticalLinkDetails> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.Fiber getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalLinkDetails getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalLinkDetailsOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLinkDetails) + public interface OpticalLinkOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLink) com.google.protobuf.MessageOrBuilder { /** - * <code>float length = 1;</code> - * @return The length. + * <code>string name = 1;</code> + * @return The name. */ - float getLength(); + java.lang.String getName(); + + /** + * <code>string name = 1;</code> + * @return The bytes for name. + */ + com.google.protobuf.ByteString getNameBytes(); + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return Whether the opticalDetails field is set. + */ + boolean hasOpticalDetails(); + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return The opticalDetails. + */ + context.ContextOuterClass.OpticalLinkDetails getOpticalDetails(); /** - * <code>string source = 2;</code> - * @return The source. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> */ - java.lang.String getSource(); + context.ContextOuterClass.OpticalLinkDetailsOrBuilder getOpticalDetailsOrBuilder(); /** - * <code>string source = 2;</code> - * @return The bytes for source. + * <code>.context.LinkId link_id = 3;</code> + * @return Whether the linkId field is set. */ - com.google.protobuf.ByteString getSourceBytes(); + boolean hasLinkId(); /** - * <code>string target = 3;</code> - * @return The target. + * <code>.context.LinkId link_id = 3;</code> + * @return The linkId. */ - java.lang.String getTarget(); + context.ContextOuterClass.LinkId getLinkId(); /** - * <code>string target = 3;</code> - * @return The bytes for target. + * <code>.context.LinkId link_id = 3;</code> */ - com.google.protobuf.ByteString getTargetBytes(); + context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder(); /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - java.util.List<context.ContextOuterClass.Fiber> getFibersList(); + java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList(); /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - context.ContextOuterClass.Fiber getFibers(int index); + context.ContextOuterClass.EndPointId getLinkEndpointIds(int index); /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - int getFibersCount(); + int getLinkEndpointIdsCount(); /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - java.util.List<? extends context.ContextOuterClass.FiberOrBuilder> getFibersOrBuilderList(); + java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList(); /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - context.ContextOuterClass.FiberOrBuilder getFibersOrBuilder(int index); + context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index); } /** - * Protobuf type {@code context.OpticalLinkDetails} + * Protobuf type {@code context.OpticalLink} */ - public static final class OpticalLinkDetails extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLinkDetails) - OpticalLinkDetailsOrBuilder { + public static final class OpticalLink extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLink) + OpticalLinkOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalLinkDetails.newBuilder() to construct. - private OpticalLinkDetails(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use OpticalLink.newBuilder() to construct. + private OpticalLink(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalLinkDetails() { - source_ = ""; - target_ = ""; - fibers_ = java.util.Collections.emptyList(); + private OpticalLink() { + name_ = ""; + linkEndpointIds_ = java.util.Collections.emptyList(); } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalLinkDetails(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private OpticalLinkDetails(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 13: - { - length_ = input.readFloat(); - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - source_ = s; - break; - } - case 26: - { - java.lang.String s = input.readStringRequireUtf8(); - target_ = s; - break; - } - case 34: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - fibers_ = new java.util.ArrayList<context.ContextOuterClass.Fiber>(); - mutable_bitField0_ |= 0x00000001; - } - fibers_.add(input.readMessage(context.ContextOuterClass.Fiber.parser(), extensionRegistry)); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - if (((mutable_bitField0_ & 0x00000001) != 0)) { - fibers_ = java.util.Collections.unmodifiableList(fibers_); - } - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } + return new OpticalLink(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkDetails.class, context.ContextOuterClass.OpticalLinkDetails.Builder.class); - } - - public static final int LENGTH_FIELD_NUMBER = 1; - - private float length_; - - /** - * <code>float length = 1;</code> - * @return The length. - */ - @java.lang.Override - public float getLength() { - return length_; + return context.ContextOuterClass.internal_static_context_OpticalLink_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLink.class, context.ContextOuterClass.OpticalLink.Builder.class); } - public static final int SOURCE_FIELD_NUMBER = 2; + public static final int NAME_FIELD_NUMBER = 1; - private volatile java.lang.Object source_; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; /** - * <code>string source = 2;</code> - * @return The source. + * <code>string name = 1;</code> + * @return The name. */ @java.lang.Override - public java.lang.String getSource() { - java.lang.Object ref = source_; + public java.lang.String getName() { + java.lang.Object ref = name_; if (ref instanceof java.lang.String) { return (java.lang.String) ref; } else { com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; java.lang.String s = bs.toStringUtf8(); - source_ = s; + name_ = s; return s; } } /** - * <code>string source = 2;</code> - * @return The bytes for source. + * <code>string name = 1;</code> + * @return The bytes for name. */ @java.lang.Override - public com.google.protobuf.ByteString getSourceBytes() { - java.lang.Object ref = source_; + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; if (ref instanceof java.lang.String) { com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - source_ = b; + name_ = b; return b; } else { return (com.google.protobuf.ByteString) ref; } } - public static final int TARGET_FIELD_NUMBER = 3; + public static final int OPTICAL_DETAILS_FIELD_NUMBER = 2; - private volatile java.lang.Object target_; + private context.ContextOuterClass.OpticalLinkDetails opticalDetails_; /** - * <code>string target = 3;</code> - * @return The target. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return Whether the opticalDetails field is set. */ @java.lang.Override - public java.lang.String getTarget() { - java.lang.Object ref = target_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - target_ = s; - return s; - } + public boolean hasOpticalDetails() { + return opticalDetails_ != null; } /** - * <code>string target = 3;</code> - * @return The bytes for target. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return The opticalDetails. */ @java.lang.Override - public com.google.protobuf.ByteString getTargetBytes() { - java.lang.Object ref = target_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - target_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + public context.ContextOuterClass.OpticalLinkDetails getOpticalDetails() { + return opticalDetails_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : opticalDetails_; + } + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + */ + @java.lang.Override + public context.ContextOuterClass.OpticalLinkDetailsOrBuilder getOpticalDetailsOrBuilder() { + return opticalDetails_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : opticalDetails_; + } + + public static final int LINK_ID_FIELD_NUMBER = 3; + + private context.ContextOuterClass.LinkId linkId_; + + /** + * <code>.context.LinkId link_id = 3;</code> + * @return Whether the linkId field is set. + */ + @java.lang.Override + public boolean hasLinkId() { + return linkId_ != null; + } + + /** + * <code>.context.LinkId link_id = 3;</code> + * @return The linkId. + */ + @java.lang.Override + public context.ContextOuterClass.LinkId getLinkId() { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; } - public static final int FIBERS_FIELD_NUMBER = 4; + /** + * <code>.context.LinkId link_id = 3;</code> + */ + @java.lang.Override + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } - private java.util.List<context.ContextOuterClass.Fiber> fibers_; + public static final int LINK_ENDPOINT_IDS_FIELD_NUMBER = 4; + + @SuppressWarnings("serial") + private java.util.List<context.ContextOuterClass.EndPointId> linkEndpointIds_; /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override - public java.util.List<context.ContextOuterClass.Fiber> getFibersList() { - return fibers_; + public java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList() { + return linkEndpointIds_; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override - public java.util.List<? extends context.ContextOuterClass.FiberOrBuilder> getFibersOrBuilderList() { - return fibers_; + public java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList() { + return linkEndpointIds_; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override - public int getFibersCount() { - return fibers_.size(); + public int getLinkEndpointIdsCount() { + return linkEndpointIds_.size(); } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override - public context.ContextOuterClass.Fiber getFibers(int index) { - return fibers_.get(index); + public context.ContextOuterClass.EndPointId getLinkEndpointIds(int index) { + return linkEndpointIds_.get(index); } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ @java.lang.Override - public context.ContextOuterClass.FiberOrBuilder getFibersOrBuilder(int index) { - return fibers_.get(index); + public context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index) { + return linkEndpointIds_.get(index); } private byte memoizedIsInitialized = -1; @@ -77663,19 +79019,19 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (length_ != 0F) { - output.writeFloat(1, length_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); } - if (!getSourceBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 2, source_); + if (opticalDetails_ != null) { + output.writeMessage(2, getOpticalDetails()); } - if (!getTargetBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 3, target_); + if (linkId_ != null) { + output.writeMessage(3, getLinkId()); } - for (int i = 0; i < fibers_.size(); i++) { - output.writeMessage(4, fibers_.get(i)); + for (int i = 0; i < linkEndpointIds_.size(); i++) { + output.writeMessage(4, linkEndpointIds_.get(i)); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -77684,19 +79040,19 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (length_ != 0F) { - size += com.google.protobuf.CodedOutputStream.computeFloatSize(1, length_); + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); } - if (!getSourceBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, source_); + if (opticalDetails_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getOpticalDetails()); } - if (!getTargetBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, target_); + if (linkId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getLinkId()); } - for (int i = 0; i < fibers_.size(); i++) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, fibers_.get(i)); + for (int i = 0; i < linkEndpointIds_.size(); i++) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, linkEndpointIds_.get(i)); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -77706,19 +79062,27 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalLinkDetails)) { + if (!(obj instanceof context.ContextOuterClass.OpticalLink)) { return super.equals(obj); } - context.ContextOuterClass.OpticalLinkDetails other = (context.ContextOuterClass.OpticalLinkDetails) obj; - if (java.lang.Float.floatToIntBits(getLength()) != java.lang.Float.floatToIntBits(other.getLength())) + context.ContextOuterClass.OpticalLink other = (context.ContextOuterClass.OpticalLink) obj; + if (!getName().equals(other.getName())) return false; - if (!getSource().equals(other.getSource())) + if (hasOpticalDetails() != other.hasOpticalDetails()) return false; - if (!getTarget().equals(other.getTarget())) + if (hasOpticalDetails()) { + if (!getOpticalDetails().equals(other.getOpticalDetails())) + return false; + } + if (hasLinkId() != other.hasLinkId()) return false; - if (!getFibersList().equals(other.getFibersList())) + if (hasLinkId()) { + if (!getLinkId().equals(other.getLinkId())) + return false; + } + if (!getLinkEndpointIdsList().equals(other.getLinkEndpointIdsList())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -77730,66 +79094,70 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + LENGTH_FIELD_NUMBER; - hash = (53 * hash) + java.lang.Float.floatToIntBits(getLength()); - hash = (37 * hash) + SOURCE_FIELD_NUMBER; - hash = (53 * hash) + getSource().hashCode(); - hash = (37 * hash) + TARGET_FIELD_NUMBER; - hash = (53 * hash) + getTarget().hashCode(); - if (getFibersCount() > 0) { - hash = (37 * hash) + FIBERS_FIELD_NUMBER; - hash = (53 * hash) + getFibersList().hashCode(); - } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + if (hasOpticalDetails()) { + hash = (37 * hash) + OPTICAL_DETAILS_FIELD_NUMBER; + hash = (53 * hash) + getOpticalDetails().hashCode(); + } + if (hasLinkId()) { + hash = (37 * hash) + LINK_ID_FIELD_NUMBER; + hash = (53 * hash) + getLinkId().hashCode(); + } + if (getLinkEndpointIdsCount() > 0) { + hash = (37 * hash) + LINK_ENDPOINT_IDS_FIELD_NUMBER; + hash = (53 * hash) + getLinkEndpointIdsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.OpticalLink parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkDetails parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkDetails parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLinkDetails parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -77802,7 +79170,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalLinkDetails prototype) { + public static Builder newBuilder(context.ContextOuterClass.OpticalLink prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -77818,64 +79186,66 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.OpticalLinkDetails} + * Protobuf type {@code context.OpticalLink} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLinkDetails) - context.ContextOuterClass.OpticalLinkDetailsOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLink) + context.ContextOuterClass.OpticalLinkOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLinkDetails.class, context.ContextOuterClass.OpticalLinkDetails.Builder.class); + return context.ContextOuterClass.internal_static_context_OpticalLink_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLink.class, context.ContextOuterClass.OpticalLink.Builder.class); } - // Construct using context.ContextOuterClass.OpticalLinkDetails.newBuilder() + // Construct using context.ContextOuterClass.OpticalLink.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - getFibersFieldBuilder(); - } } @java.lang.Override public Builder clear() { super.clear(); - length_ = 0F; - source_ = ""; - target_ = ""; - if (fibersBuilder_ == null) { - fibers_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + bitField0_ = 0; + name_ = ""; + opticalDetails_ = null; + if (opticalDetailsBuilder_ != null) { + opticalDetailsBuilder_.dispose(); + opticalDetailsBuilder_ = null; + } + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); + linkIdBuilder_ = null; + } + if (linkEndpointIdsBuilder_ == null) { + linkEndpointIds_ = java.util.Collections.emptyList(); } else { - fibersBuilder_.clear(); + linkEndpointIds_ = null; + linkEndpointIdsBuilder_.clear(); } + bitField0_ = (bitField0_ & ~0x00000008); return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalLinkDetails_descriptor; + return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetails getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance(); + public context.ContextOuterClass.OpticalLink getDefaultInstanceForType() { + return context.ContextOuterClass.OpticalLink.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetails build() { - context.ContextOuterClass.OpticalLinkDetails result = buildPartial(); + public context.ContextOuterClass.OpticalLink build() { + context.ContextOuterClass.OpticalLink result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -77883,104 +79253,90 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetails buildPartial() { - context.ContextOuterClass.OpticalLinkDetails result = new context.ContextOuterClass.OpticalLinkDetails(this); - int from_bitField0_ = bitField0_; - result.length_ = length_; - result.source_ = source_; - result.target_ = target_; - if (fibersBuilder_ == null) { - if (((bitField0_ & 0x00000001) != 0)) { - fibers_ = java.util.Collections.unmodifiableList(fibers_); - bitField0_ = (bitField0_ & ~0x00000001); - } - result.fibers_ = fibers_; - } else { - result.fibers_ = fibersBuilder_.build(); + public context.ContextOuterClass.OpticalLink buildPartial() { + context.ContextOuterClass.OpticalLink result = new context.ContextOuterClass.OpticalLink(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); + private void buildPartialRepeatedFields(context.ContextOuterClass.OpticalLink result) { + if (linkEndpointIdsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + linkEndpointIds_ = java.util.Collections.unmodifiableList(linkEndpointIds_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.linkEndpointIds_ = linkEndpointIds_; + } else { + result.linkEndpointIds_ = linkEndpointIdsBuilder_.build(); + } } - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.OpticalLink result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.opticalDetails_ = opticalDetailsBuilder_ == null ? opticalDetails_ : opticalDetailsBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.linkId_ = linkIdBuilder_ == null ? linkId_ : linkIdBuilder_.build(); + } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalLinkDetails) { - return mergeFrom((context.ContextOuterClass.OpticalLinkDetails) other); + if (other instanceof context.ContextOuterClass.OpticalLink) { + return mergeFrom((context.ContextOuterClass.OpticalLink) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalLinkDetails other) { - if (other == context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.OpticalLink other) { + if (other == context.ContextOuterClass.OpticalLink.getDefaultInstance()) return this; - if (other.getLength() != 0F) { - setLength(other.getLength()); - } - if (!other.getSource().isEmpty()) { - source_ = other.source_; + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000001; onChanged(); } - if (!other.getTarget().isEmpty()) { - target_ = other.target_; - onChanged(); + if (other.hasOpticalDetails()) { + mergeOpticalDetails(other.getOpticalDetails()); } - if (fibersBuilder_ == null) { - if (!other.fibers_.isEmpty()) { - if (fibers_.isEmpty()) { - fibers_ = other.fibers_; - bitField0_ = (bitField0_ & ~0x00000001); + if (other.hasLinkId()) { + mergeLinkId(other.getLinkId()); + } + if (linkEndpointIdsBuilder_ == null) { + if (!other.linkEndpointIds_.isEmpty()) { + if (linkEndpointIds_.isEmpty()) { + linkEndpointIds_ = other.linkEndpointIds_; + bitField0_ = (bitField0_ & ~0x00000008); } else { - ensureFibersIsMutable(); - fibers_.addAll(other.fibers_); + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.addAll(other.linkEndpointIds_); } onChanged(); } } else { - if (!other.fibers_.isEmpty()) { - if (fibersBuilder_.isEmpty()) { - fibersBuilder_.dispose(); - fibersBuilder_ = null; - fibers_ = other.fibers_; - bitField0_ = (bitField0_ & ~0x00000001); - fibersBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getFibersFieldBuilder() : null; + if (!other.linkEndpointIds_.isEmpty()) { + if (linkEndpointIdsBuilder_.isEmpty()) { + linkEndpointIdsBuilder_.dispose(); + linkEndpointIdsBuilder_ = null; + linkEndpointIds_ = other.linkEndpointIds_; + bitField0_ = (bitField0_ & ~0x00000008); + linkEndpointIdsBuilder_ = com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? getLinkEndpointIdsFieldBuilder() : null; } else { - fibersBuilder_.addAllMessages(other.fibers_); + linkEndpointIdsBuilder_.addAllMessages(other.linkEndpointIds_); } } } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -77992,433 +79348,619 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.OpticalLinkDetails parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getOpticalDetailsFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 26: + { + input.readMessage(getLinkIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000004; + break; + } + // case 26 + case 34: + { + context.ContextOuterClass.EndPointId m = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(m); + } else { + linkEndpointIdsBuilder_.addMessage(m); + } + break; + } + // case 34 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.OpticalLinkDetails) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } private int bitField0_; - private float length_; + private java.lang.Object name_ = ""; /** - * <code>float length = 1;</code> - * @return The length. + * <code>string name = 1;</code> + * @return The name. */ - @java.lang.Override - public float getLength() { - return length_; + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } } /** - * <code>float length = 1;</code> - * @param value The length to set. + * <code>string name = 1;</code> + * @return The bytes for name. + */ + public com.google.protobuf.ByteString getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + /** + * <code>string name = 1;</code> + * @param value The name to set. * @return This builder for chaining. */ - public Builder setLength(float value) { - length_ = value; + public Builder setName(java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + name_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } /** - * <code>float length = 1;</code> + * <code>string name = 1;</code> * @return This builder for chaining. */ - public Builder clearLength() { - length_ = 0F; + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + + /** + * <code>string name = 1;</code> + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes(com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000001; onChanged(); return this; } - private java.lang.Object source_ = ""; + private context.ContextOuterClass.OpticalLinkDetails opticalDetails_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder> opticalDetailsBuilder_; /** - * <code>string source = 2;</code> - * @return The source. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return Whether the opticalDetails field is set. */ - public java.lang.String getSource() { - java.lang.Object ref = source_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - source_ = s; - return s; + public boolean hasOpticalDetails() { + return ((bitField0_ & 0x00000002) != 0); + } + + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + * @return The opticalDetails. + */ + public context.ContextOuterClass.OpticalLinkDetails getOpticalDetails() { + if (opticalDetailsBuilder_ == null) { + return opticalDetails_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : opticalDetails_; } else { - return (java.lang.String) ref; + return opticalDetailsBuilder_.getMessage(); } } /** - * <code>string source = 2;</code> - * @return The bytes for source. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> */ - public com.google.protobuf.ByteString getSourceBytes() { - java.lang.Object ref = source_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - source_ = b; - return b; + public Builder setOpticalDetails(context.ContextOuterClass.OpticalLinkDetails value) { + if (opticalDetailsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + opticalDetails_ = value; } else { - return (com.google.protobuf.ByteString) ref; + opticalDetailsBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); + return this; } /** - * <code>string source = 2;</code> - * @param value The source to set. - * @return This builder for chaining. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> */ - public Builder setSource(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setOpticalDetails(context.ContextOuterClass.OpticalLinkDetails.Builder builderForValue) { + if (opticalDetailsBuilder_ == null) { + opticalDetails_ = builderForValue.build(); + } else { + opticalDetailsBuilder_.setMessage(builderForValue.build()); } - source_ = value; + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>string source = 2;</code> - * @return This builder for chaining. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> */ - public Builder clearSource() { - source_ = getDefaultInstance().getSource(); + public Builder mergeOpticalDetails(context.ContextOuterClass.OpticalLinkDetails value) { + if (opticalDetailsBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && opticalDetails_ != null && opticalDetails_ != context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance()) { + getOpticalDetailsBuilder().mergeFrom(value); + } else { + opticalDetails_ = value; + } + } else { + opticalDetailsBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; onChanged(); return this; } /** - * <code>string source = 2;</code> - * @param value The bytes for source to set. - * @return This builder for chaining. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> */ - public Builder setSourceBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder clearOpticalDetails() { + bitField0_ = (bitField0_ & ~0x00000002); + opticalDetails_ = null; + if (opticalDetailsBuilder_ != null) { + opticalDetailsBuilder_.dispose(); + opticalDetailsBuilder_ = null; } - checkByteStringIsUtf8(value); - source_ = value; onChanged(); return this; } - private java.lang.Object target_ = ""; + /** + * <code>.context.OpticalLinkDetails optical_details = 2;</code> + */ + public context.ContextOuterClass.OpticalLinkDetails.Builder getOpticalDetailsBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getOpticalDetailsFieldBuilder().getBuilder(); + } /** - * <code>string target = 3;</code> - * @return The target. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> */ - public java.lang.String getTarget() { - java.lang.Object ref = target_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - target_ = s; - return s; + public context.ContextOuterClass.OpticalLinkDetailsOrBuilder getOpticalDetailsOrBuilder() { + if (opticalDetailsBuilder_ != null) { + return opticalDetailsBuilder_.getMessageOrBuilder(); } else { - return (java.lang.String) ref; + return opticalDetails_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : opticalDetails_; } } /** - * <code>string target = 3;</code> - * @return The bytes for target. + * <code>.context.OpticalLinkDetails optical_details = 2;</code> */ - public com.google.protobuf.ByteString getTargetBytes() { - java.lang.Object ref = target_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - target_ = b; - return b; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder> getOpticalDetailsFieldBuilder() { + if (opticalDetailsBuilder_ == null) { + opticalDetailsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder>(getOpticalDetails(), getParentForChildren(), isClean()); + opticalDetails_ = null; + } + return opticalDetailsBuilder_; + } + + private context.ContextOuterClass.LinkId linkId_; + + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> linkIdBuilder_; + + /** + * <code>.context.LinkId link_id = 3;</code> + * @return Whether the linkId field is set. + */ + public boolean hasLinkId() { + return ((bitField0_ & 0x00000004) != 0); + } + + /** + * <code>.context.LinkId link_id = 3;</code> + * @return The linkId. + */ + public context.ContextOuterClass.LinkId getLinkId() { + if (linkIdBuilder_ == null) { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; } else { - return (com.google.protobuf.ByteString) ref; + return linkIdBuilder_.getMessage(); } } /** - * <code>string target = 3;</code> - * @param value The target to set. - * @return This builder for chaining. + * <code>.context.LinkId link_id = 3;</code> */ - public Builder setTarget(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + public Builder setLinkId(context.ContextOuterClass.LinkId value) { + if (linkIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + linkId_ = value; + } else { + linkIdBuilder_.setMessage(value); } - target_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } /** - * <code>string target = 3;</code> - * @return This builder for chaining. + * <code>.context.LinkId link_id = 3;</code> */ - public Builder clearTarget() { - target_ = getDefaultInstance().getTarget(); + public Builder setLinkId(context.ContextOuterClass.LinkId.Builder builderForValue) { + if (linkIdBuilder_ == null) { + linkId_ = builderForValue.build(); + } else { + linkIdBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; onChanged(); return this; } /** - * <code>string target = 3;</code> - * @param value The bytes for target to set. - * @return This builder for chaining. + * <code>.context.LinkId link_id = 3;</code> */ - public Builder setTargetBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); + public Builder mergeLinkId(context.ContextOuterClass.LinkId value) { + if (linkIdBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && linkId_ != null && linkId_ != context.ContextOuterClass.LinkId.getDefaultInstance()) { + getLinkIdBuilder().mergeFrom(value); + } else { + linkId_ = value; + } + } else { + linkIdBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + /** + * <code>.context.LinkId link_id = 3;</code> + */ + public Builder clearLinkId() { + bitField0_ = (bitField0_ & ~0x00000004); + linkId_ = null; + if (linkIdBuilder_ != null) { + linkIdBuilder_.dispose(); + linkIdBuilder_ = null; } - checkByteStringIsUtf8(value); - target_ = value; onChanged(); return this; } - private java.util.List<context.ContextOuterClass.Fiber> fibers_ = java.util.Collections.emptyList(); + /** + * <code>.context.LinkId link_id = 3;</code> + */ + public context.ContextOuterClass.LinkId.Builder getLinkIdBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getLinkIdFieldBuilder().getBuilder(); + } - private void ensureFibersIsMutable() { - if (!((bitField0_ & 0x00000001) != 0)) { - fibers_ = new java.util.ArrayList<context.ContextOuterClass.Fiber>(fibers_); - bitField0_ |= 0x00000001; + /** + * <code>.context.LinkId link_id = 3;</code> + */ + public context.ContextOuterClass.LinkIdOrBuilder getLinkIdOrBuilder() { + if (linkIdBuilder_ != null) { + return linkIdBuilder_.getMessageOrBuilder(); + } else { + return linkId_ == null ? context.ContextOuterClass.LinkId.getDefaultInstance() : linkId_; + } + } + + /** + * <code>.context.LinkId link_id = 3;</code> + */ + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder> getLinkIdFieldBuilder() { + if (linkIdBuilder_ == null) { + linkIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.LinkId, context.ContextOuterClass.LinkId.Builder, context.ContextOuterClass.LinkIdOrBuilder>(getLinkId(), getParentForChildren(), isClean()); + linkId_ = null; + } + return linkIdBuilder_; + } + + private java.util.List<context.ContextOuterClass.EndPointId> linkEndpointIds_ = java.util.Collections.emptyList(); + + private void ensureLinkEndpointIdsIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + linkEndpointIds_ = new java.util.ArrayList<context.ContextOuterClass.EndPointId>(linkEndpointIds_); + bitField0_ |= 0x00000008; } } - private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Fiber, context.ContextOuterClass.Fiber.Builder, context.ContextOuterClass.FiberOrBuilder> fibersBuilder_; + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> linkEndpointIdsBuilder_; /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public java.util.List<context.ContextOuterClass.Fiber> getFibersList() { - if (fibersBuilder_ == null) { - return java.util.Collections.unmodifiableList(fibers_); + public java.util.List<context.ContextOuterClass.EndPointId> getLinkEndpointIdsList() { + if (linkEndpointIdsBuilder_ == null) { + return java.util.Collections.unmodifiableList(linkEndpointIds_); } else { - return fibersBuilder_.getMessageList(); + return linkEndpointIdsBuilder_.getMessageList(); } } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public int getFibersCount() { - if (fibersBuilder_ == null) { - return fibers_.size(); + public int getLinkEndpointIdsCount() { + if (linkEndpointIdsBuilder_ == null) { + return linkEndpointIds_.size(); } else { - return fibersBuilder_.getCount(); + return linkEndpointIdsBuilder_.getCount(); } } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public context.ContextOuterClass.Fiber getFibers(int index) { - if (fibersBuilder_ == null) { - return fibers_.get(index); + public context.ContextOuterClass.EndPointId getLinkEndpointIds(int index) { + if (linkEndpointIdsBuilder_ == null) { + return linkEndpointIds_.get(index); } else { - return fibersBuilder_.getMessage(index); + return linkEndpointIdsBuilder_.getMessage(index); } } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder setFibers(int index, context.ContextOuterClass.Fiber value) { - if (fibersBuilder_ == null) { + public Builder setLinkEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (linkEndpointIdsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureFibersIsMutable(); - fibers_.set(index, value); + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.set(index, value); onChanged(); } else { - fibersBuilder_.setMessage(index, value); + linkEndpointIdsBuilder_.setMessage(index, value); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder setFibers(int index, context.ContextOuterClass.Fiber.Builder builderForValue) { - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - fibers_.set(index, builderForValue.build()); + public Builder setLinkEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.set(index, builderForValue.build()); onChanged(); } else { - fibersBuilder_.setMessage(index, builderForValue.build()); + linkEndpointIdsBuilder_.setMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder addFibers(context.ContextOuterClass.Fiber value) { - if (fibersBuilder_ == null) { + public Builder addLinkEndpointIds(context.ContextOuterClass.EndPointId value) { + if (linkEndpointIdsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureFibersIsMutable(); - fibers_.add(value); + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(value); onChanged(); } else { - fibersBuilder_.addMessage(value); + linkEndpointIdsBuilder_.addMessage(value); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder addFibers(int index, context.ContextOuterClass.Fiber value) { - if (fibersBuilder_ == null) { + public Builder addLinkEndpointIds(int index, context.ContextOuterClass.EndPointId value) { + if (linkEndpointIdsBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - ensureFibersIsMutable(); - fibers_.add(index, value); + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(index, value); onChanged(); } else { - fibersBuilder_.addMessage(index, value); + linkEndpointIdsBuilder_.addMessage(index, value); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder addFibers(context.ContextOuterClass.Fiber.Builder builderForValue) { - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - fibers_.add(builderForValue.build()); + public Builder addLinkEndpointIds(context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(builderForValue.build()); onChanged(); } else { - fibersBuilder_.addMessage(builderForValue.build()); + linkEndpointIdsBuilder_.addMessage(builderForValue.build()); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder addFibers(int index, context.ContextOuterClass.Fiber.Builder builderForValue) { - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - fibers_.add(index, builderForValue.build()); + public Builder addLinkEndpointIds(int index, context.ContextOuterClass.EndPointId.Builder builderForValue) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.add(index, builderForValue.build()); onChanged(); } else { - fibersBuilder_.addMessage(index, builderForValue.build()); + linkEndpointIdsBuilder_.addMessage(index, builderForValue.build()); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder addAllFibers(java.lang.Iterable<? extends context.ContextOuterClass.Fiber> values) { - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - com.google.protobuf.AbstractMessageLite.Builder.addAll(values, fibers_); + public Builder addAllLinkEndpointIds(java.lang.Iterable<? extends context.ContextOuterClass.EndPointId> values) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll(values, linkEndpointIds_); onChanged(); } else { - fibersBuilder_.addAllMessages(values); + linkEndpointIdsBuilder_.addAllMessages(values); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder clearFibers() { - if (fibersBuilder_ == null) { - fibers_ = java.util.Collections.emptyList(); - bitField0_ = (bitField0_ & ~0x00000001); + public Builder clearLinkEndpointIds() { + if (linkEndpointIdsBuilder_ == null) { + linkEndpointIds_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); onChanged(); } else { - fibersBuilder_.clear(); + linkEndpointIdsBuilder_.clear(); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public Builder removeFibers(int index) { - if (fibersBuilder_ == null) { - ensureFibersIsMutable(); - fibers_.remove(index); + public Builder removeLinkEndpointIds(int index) { + if (linkEndpointIdsBuilder_ == null) { + ensureLinkEndpointIdsIsMutable(); + linkEndpointIds_.remove(index); onChanged(); } else { - fibersBuilder_.remove(index); + linkEndpointIdsBuilder_.remove(index); } return this; } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public context.ContextOuterClass.Fiber.Builder getFibersBuilder(int index) { - return getFibersFieldBuilder().getBuilder(index); + public context.ContextOuterClass.EndPointId.Builder getLinkEndpointIdsBuilder(int index) { + return getLinkEndpointIdsFieldBuilder().getBuilder(index); } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public context.ContextOuterClass.FiberOrBuilder getFibersOrBuilder(int index) { - if (fibersBuilder_ == null) { - return fibers_.get(index); + public context.ContextOuterClass.EndPointIdOrBuilder getLinkEndpointIdsOrBuilder(int index) { + if (linkEndpointIdsBuilder_ == null) { + return linkEndpointIds_.get(index); } else { - return fibersBuilder_.getMessageOrBuilder(index); + return linkEndpointIdsBuilder_.getMessageOrBuilder(index); } } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public java.util.List<? extends context.ContextOuterClass.FiberOrBuilder> getFibersOrBuilderList() { - if (fibersBuilder_ != null) { - return fibersBuilder_.getMessageOrBuilderList(); + public java.util.List<? extends context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsOrBuilderList() { + if (linkEndpointIdsBuilder_ != null) { + return linkEndpointIdsBuilder_.getMessageOrBuilderList(); } else { - return java.util.Collections.unmodifiableList(fibers_); + return java.util.Collections.unmodifiableList(linkEndpointIds_); } } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public context.ContextOuterClass.Fiber.Builder addFibersBuilder() { - return getFibersFieldBuilder().addBuilder(context.ContextOuterClass.Fiber.getDefaultInstance()); + public context.ContextOuterClass.EndPointId.Builder addLinkEndpointIdsBuilder() { + return getLinkEndpointIdsFieldBuilder().addBuilder(context.ContextOuterClass.EndPointId.getDefaultInstance()); } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public context.ContextOuterClass.Fiber.Builder addFibersBuilder(int index) { - return getFibersFieldBuilder().addBuilder(index, context.ContextOuterClass.Fiber.getDefaultInstance()); + public context.ContextOuterClass.EndPointId.Builder addLinkEndpointIdsBuilder(int index) { + return getLinkEndpointIdsFieldBuilder().addBuilder(index, context.ContextOuterClass.EndPointId.getDefaultInstance()); } /** - * <code>repeated .context.Fiber fibers = 4;</code> + * <code>repeated .context.EndPointId link_endpoint_ids = 4;</code> */ - public java.util.List<context.ContextOuterClass.Fiber.Builder> getFibersBuilderList() { - return getFibersFieldBuilder().getBuilderList(); + public java.util.List<context.ContextOuterClass.EndPointId.Builder> getLinkEndpointIdsBuilderList() { + return getLinkEndpointIdsFieldBuilder().getBuilderList(); } - private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Fiber, context.ContextOuterClass.Fiber.Builder, context.ContextOuterClass.FiberOrBuilder> getFibersFieldBuilder() { - if (fibersBuilder_ == null) { - fibersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.Fiber, context.ContextOuterClass.Fiber.Builder, context.ContextOuterClass.FiberOrBuilder>(fibers_, ((bitField0_ & 0x00000001) != 0), getParentForChildren(), isClean()); - fibers_ = null; + private com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder> getLinkEndpointIdsFieldBuilder() { + if (linkEndpointIdsBuilder_ == null) { + linkEndpointIdsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<context.ContextOuterClass.EndPointId, context.ContextOuterClass.EndPointId.Builder, context.ContextOuterClass.EndPointIdOrBuilder>(linkEndpointIds_, ((bitField0_ & 0x00000008) != 0), getParentForChildren(), isClean()); + linkEndpointIds_ = null; } - return fibersBuilder_; + return linkEndpointIdsBuilder_; } @java.lang.Override @@ -78430,290 +79972,180 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalLinkDetails) + // @@protoc_insertion_point(builder_scope:context.OpticalLink) } - // @@protoc_insertion_point(class_scope:context.OpticalLinkDetails) - private static final context.ContextOuterClass.OpticalLinkDetails DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.OpticalLink) + private static final context.ContextOuterClass.OpticalLink DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLinkDetails(); + DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLink(); } - public static context.ContextOuterClass.OpticalLinkDetails getDefaultInstance() { + public static context.ContextOuterClass.OpticalLink getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalLinkDetails> PARSER = new com.google.protobuf.AbstractParser<OpticalLinkDetails>() { + private static final com.google.protobuf.Parser<OpticalLink> PARSER = new com.google.protobuf.AbstractParser<OpticalLink>() { @java.lang.Override - public OpticalLinkDetails parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new OpticalLinkDetails(input, extensionRegistry); + public OpticalLink parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<OpticalLinkDetails> parser() { + public static com.google.protobuf.Parser<OpticalLink> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalLinkDetails> getParserForType() { + public com.google.protobuf.Parser<OpticalLink> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetails getDefaultInstanceForType() { + public context.ContextOuterClass.OpticalLink getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } - public interface OpticalLinkOrBuilder extends // @@protoc_insertion_point(interface_extends:context.OpticalLink) + public interface ServiceConfigRuleOrBuilder extends // @@protoc_insertion_point(interface_extends:context.ServiceConfigRule) com.google.protobuf.MessageOrBuilder { /** - * <code>string name = 1;</code> - * @return The name. - */ - java.lang.String getName(); - - /** - * <code>string name = 1;</code> - * @return The bytes for name. - */ - com.google.protobuf.ByteString getNameBytes(); - - /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return Whether the details field is set. + * <code>.context.ServiceId service_id = 1;</code> + * @return Whether the serviceId field is set. */ - boolean hasDetails(); + boolean hasServiceId(); /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return The details. + * <code>.context.ServiceId service_id = 1;</code> + * @return The serviceId. */ - context.ContextOuterClass.OpticalLinkDetails getDetails(); + context.ContextOuterClass.ServiceId getServiceId(); /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - context.ContextOuterClass.OpticalLinkDetailsOrBuilder getDetailsOrBuilder(); + context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder(); /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return Whether the configruleCustom field is set. */ - boolean hasOpticalLinkUuid(); + boolean hasConfigruleCustom(); /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return The opticalLinkUuid. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return The configruleCustom. */ - context.ContextOuterClass.OpticalLinkId getOpticalLinkUuid(); + context.ContextOuterClass.ConfigRule_Custom getConfigruleCustom(); /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - context.ContextOuterClass.OpticalLinkIdOrBuilder getOpticalLinkUuidOrBuilder(); + context.ContextOuterClass.ConfigRule_CustomOrBuilder getConfigruleCustomOrBuilder(); } /** - * Protobuf type {@code context.OpticalLink} + * Protobuf type {@code context.ServiceConfigRule} */ - public static final class OpticalLink extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.OpticalLink) - OpticalLinkOrBuilder { + public static final class ServiceConfigRule extends com.google.protobuf.GeneratedMessageV3 implements // @@protoc_insertion_point(message_implements:context.ServiceConfigRule) + ServiceConfigRuleOrBuilder { private static final long serialVersionUID = 0L; - // Use OpticalLink.newBuilder() to construct. - private OpticalLink(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { + // Use ServiceConfigRule.newBuilder() to construct. + private ServiceConfigRule(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) { super(builder); } - private OpticalLink() { - name_ = ""; + private ServiceConfigRule() { } @java.lang.Override @SuppressWarnings({ "unused" }) protected java.lang.Object newInstance(UnusedPrivateParameter unused) { - return new OpticalLink(); - } - - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private OpticalLink(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - java.lang.String s = input.readStringRequireUtf8(); - name_ = s; - break; - } - case 18: - { - context.ContextOuterClass.OpticalLinkDetails.Builder subBuilder = null; - if (details_ != null) { - subBuilder = details_.toBuilder(); - } - details_ = input.readMessage(context.ContextOuterClass.OpticalLinkDetails.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(details_); - details_ = subBuilder.buildPartial(); - } - break; - } - case 26: - { - context.ContextOuterClass.OpticalLinkId.Builder subBuilder = null; - if (opticalLinkUuid_ != null) { - subBuilder = opticalLinkUuid_.toBuilder(); - } - opticalLinkUuid_ = input.readMessage(context.ContextOuterClass.OpticalLinkId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(opticalLinkUuid_); - opticalLinkUuid_ = subBuilder.buildPartial(); - } - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } + return new ServiceConfigRule(); } public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; + return context.ContextOuterClass.internal_static_context_ServiceConfigRule_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLink_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLink.class, context.ContextOuterClass.OpticalLink.Builder.class); - } - - public static final int NAME_FIELD_NUMBER = 1; - - private volatile java.lang.Object name_; - - /** - * <code>string name = 1;</code> - * @return The name. - */ - @java.lang.Override - public java.lang.String getName() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - return (java.lang.String) ref; - } else { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } - } - - /** - * <code>string name = 1;</code> - * @return The bytes for name. - */ - @java.lang.Override - public com.google.protobuf.ByteString getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof java.lang.String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } + return context.ContextOuterClass.internal_static_context_ServiceConfigRule_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceConfigRule.class, context.ContextOuterClass.ServiceConfigRule.Builder.class); } - public static final int DETAILS_FIELD_NUMBER = 2; + public static final int SERVICE_ID_FIELD_NUMBER = 1; - private context.ContextOuterClass.OpticalLinkDetails details_; + private context.ContextOuterClass.ServiceId serviceId_; /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return Whether the details field is set. + * <code>.context.ServiceId service_id = 1;</code> + * @return Whether the serviceId field is set. */ @java.lang.Override - public boolean hasDetails() { - return details_ != null; + public boolean hasServiceId() { + return serviceId_ != null; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return The details. + * <code>.context.ServiceId service_id = 1;</code> + * @return The serviceId. */ @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetails getDetails() { - return details_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : details_; + public context.ContextOuterClass.ServiceId getServiceId() { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ @java.lang.Override - public context.ContextOuterClass.OpticalLinkDetailsOrBuilder getDetailsOrBuilder() { - return getDetails(); + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } - public static final int OPTICAL_LINK_UUID_FIELD_NUMBER = 3; + public static final int CONFIGRULE_CUSTOM_FIELD_NUMBER = 2; - private context.ContextOuterClass.OpticalLinkId opticalLinkUuid_; + private context.ContextOuterClass.ConfigRule_Custom configruleCustom_; /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return Whether the configruleCustom field is set. */ @java.lang.Override - public boolean hasOpticalLinkUuid() { - return opticalLinkUuid_ != null; + public boolean hasConfigruleCustom() { + return configruleCustom_ != null; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return The opticalLinkUuid. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return The configruleCustom. */ @java.lang.Override - public context.ContextOuterClass.OpticalLinkId getOpticalLinkUuid() { - return opticalLinkUuid_ == null ? context.ContextOuterClass.OpticalLinkId.getDefaultInstance() : opticalLinkUuid_; + public context.ContextOuterClass.ConfigRule_Custom getConfigruleCustom() { + return configruleCustom_ == null ? context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance() : configruleCustom_; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ @java.lang.Override - public context.ContextOuterClass.OpticalLinkIdOrBuilder getOpticalLinkUuidOrBuilder() { - return getOpticalLinkUuid(); + public context.ContextOuterClass.ConfigRule_CustomOrBuilder getConfigruleCustomOrBuilder() { + return configruleCustom_ == null ? context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance() : configruleCustom_; } private byte memoizedIsInitialized = -1; @@ -78731,16 +80163,13 @@ public final class ContextOuterClass { @java.lang.Override public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { - if (!getNameBytes().isEmpty()) { - com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); - } - if (details_ != null) { - output.writeMessage(2, getDetails()); + if (serviceId_ != null) { + output.writeMessage(1, getServiceId()); } - if (opticalLinkUuid_ != null) { - output.writeMessage(3, getOpticalLinkUuid()); + if (configruleCustom_ != null) { + output.writeMessage(2, getConfigruleCustom()); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -78749,16 +80178,13 @@ public final class ContextOuterClass { if (size != -1) return size; size = 0; - if (!getNameBytes().isEmpty()) { - size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); - } - if (details_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getDetails()); + if (serviceId_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getServiceId()); } - if (opticalLinkUuid_ != null) { - size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getOpticalLinkUuid()); + if (configruleCustom_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getConfigruleCustom()); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -78768,25 +80194,23 @@ public final class ContextOuterClass { if (obj == this) { return true; } - if (!(obj instanceof context.ContextOuterClass.OpticalLink)) { + if (!(obj instanceof context.ContextOuterClass.ServiceConfigRule)) { return super.equals(obj); } - context.ContextOuterClass.OpticalLink other = (context.ContextOuterClass.OpticalLink) obj; - if (!getName().equals(other.getName())) - return false; - if (hasDetails() != other.hasDetails()) + context.ContextOuterClass.ServiceConfigRule other = (context.ContextOuterClass.ServiceConfigRule) obj; + if (hasServiceId() != other.hasServiceId()) return false; - if (hasDetails()) { - if (!getDetails().equals(other.getDetails())) + if (hasServiceId()) { + if (!getServiceId().equals(other.getServiceId())) return false; } - if (hasOpticalLinkUuid() != other.hasOpticalLinkUuid()) + if (hasConfigruleCustom() != other.hasConfigruleCustom()) return false; - if (hasOpticalLinkUuid()) { - if (!getOpticalLinkUuid().equals(other.getOpticalLinkUuid())) + if (hasConfigruleCustom()) { + if (!getConfigruleCustom().equals(other.getConfigruleCustom())) return false; } - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -78798,66 +80222,64 @@ public final class ContextOuterClass { } int hash = 41; hash = (19 * hash) + getDescriptor().hashCode(); - hash = (37 * hash) + NAME_FIELD_NUMBER; - hash = (53 * hash) + getName().hashCode(); - if (hasDetails()) { - hash = (37 * hash) + DETAILS_FIELD_NUMBER; - hash = (53 * hash) + getDetails().hashCode(); + if (hasServiceId()) { + hash = (37 * hash) + SERVICE_ID_FIELD_NUMBER; + hash = (53 * hash) + getServiceId().hashCode(); } - if (hasOpticalLinkUuid()) { - hash = (37 * hash) + OPTICAL_LINK_UUID_FIELD_NUMBER; - hash = (53 * hash) + getOpticalLinkUuid().hashCode(); + if (hasConfigruleCustom()) { + hash = (37 * hash) + CONFIGRULE_CUSTOM_FIELD_NUMBER; + hash = (53 * hash) + getConfigruleCustom().hashCode(); } - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } - public static context.ContextOuterClass.OpticalLink parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLink parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLink parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static context.ContextOuterClass.OpticalLink parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static context.ContextOuterClass.OpticalLink parseFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLink parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLink parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLink parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); } - public static context.ContextOuterClass.OpticalLink parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { + public static context.ContextOuterClass.ServiceConfigRule parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input, extensionRegistry); } @@ -78870,7 +80292,7 @@ public final class ContextOuterClass { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(context.ContextOuterClass.OpticalLink prototype) { + public static Builder newBuilder(context.ContextOuterClass.ServiceConfigRule prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @@ -78886,67 +80308,58 @@ public final class ContextOuterClass { } /** - * Protobuf type {@code context.OpticalLink} + * Protobuf type {@code context.ServiceConfigRule} */ - public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.OpticalLink) - context.ContextOuterClass.OpticalLinkOrBuilder { + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements // @@protoc_insertion_point(builder_implements:context.ServiceConfigRule) + context.ContextOuterClass.ServiceConfigRuleOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; + return context.ContextOuterClass.internal_static_context_ServiceConfigRule_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { - return context.ContextOuterClass.internal_static_context_OpticalLink_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.OpticalLink.class, context.ContextOuterClass.OpticalLink.Builder.class); + return context.ContextOuterClass.internal_static_context_ServiceConfigRule_fieldAccessorTable.ensureFieldAccessorsInitialized(context.ContextOuterClass.ServiceConfigRule.class, context.ContextOuterClass.ServiceConfigRule.Builder.class); } - // Construct using context.ContextOuterClass.OpticalLink.newBuilder() + // Construct using context.ContextOuterClass.ServiceConfigRule.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - name_ = ""; - if (detailsBuilder_ == null) { - details_ = null; - } else { - details_ = null; - detailsBuilder_ = null; + bitField0_ = 0; + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); + serviceIdBuilder_ = null; } - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuid_ = null; - } else { - opticalLinkUuid_ = null; - opticalLinkUuidBuilder_ = null; + configruleCustom_ = null; + if (configruleCustomBuilder_ != null) { + configruleCustomBuilder_.dispose(); + configruleCustomBuilder_ = null; } return this; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return context.ContextOuterClass.internal_static_context_OpticalLink_descriptor; + return context.ContextOuterClass.internal_static_context_ServiceConfigRule_descriptor; } @java.lang.Override - public context.ContextOuterClass.OpticalLink getDefaultInstanceForType() { - return context.ContextOuterClass.OpticalLink.getDefaultInstance(); + public context.ContextOuterClass.ServiceConfigRule getDefaultInstanceForType() { + return context.ContextOuterClass.ServiceConfigRule.getDefaultInstance(); } @java.lang.Override - public context.ContextOuterClass.OpticalLink build() { - context.ContextOuterClass.OpticalLink result = buildPartial(); + public context.ContextOuterClass.ServiceConfigRule build() { + context.ContextOuterClass.ServiceConfigRule result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -78954,77 +80367,45 @@ public final class ContextOuterClass { } @java.lang.Override - public context.ContextOuterClass.OpticalLink buildPartial() { - context.ContextOuterClass.OpticalLink result = new context.ContextOuterClass.OpticalLink(this); - result.name_ = name_; - if (detailsBuilder_ == null) { - result.details_ = details_; - } else { - result.details_ = detailsBuilder_.build(); - } - if (opticalLinkUuidBuilder_ == null) { - result.opticalLinkUuid_ = opticalLinkUuid_; - } else { - result.opticalLinkUuid_ = opticalLinkUuidBuilder_.build(); + public context.ContextOuterClass.ServiceConfigRule buildPartial() { + context.ContextOuterClass.ServiceConfigRule result = new context.ContextOuterClass.ServiceConfigRule(this); + if (bitField0_ != 0) { + buildPartial0(result); } onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(context.ContextOuterClass.ServiceConfigRule result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.serviceId_ = serviceIdBuilder_ == null ? serviceId_ : serviceIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.configruleCustom_ = configruleCustomBuilder_ == null ? configruleCustom_ : configruleCustomBuilder_.build(); + } } @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof context.ContextOuterClass.OpticalLink) { - return mergeFrom((context.ContextOuterClass.OpticalLink) other); + if (other instanceof context.ContextOuterClass.ServiceConfigRule) { + return mergeFrom((context.ContextOuterClass.ServiceConfigRule) other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(context.ContextOuterClass.OpticalLink other) { - if (other == context.ContextOuterClass.OpticalLink.getDefaultInstance()) + public Builder mergeFrom(context.ContextOuterClass.ServiceConfigRule other) { + if (other == context.ContextOuterClass.ServiceConfigRule.getDefaultInstance()) return this; - if (!other.getName().isEmpty()) { - name_ = other.name_; - onChanged(); - } - if (other.hasDetails()) { - mergeDetails(other.getDetails()); + if (other.hasServiceId()) { + mergeServiceId(other.getServiceId()); } - if (other.hasOpticalLinkUuid()) { - mergeOpticalLinkUuid(other.getOpticalLinkUuid()); + if (other.hasConfigruleCustom()) { + mergeConfigruleCustom(other.getConfigruleCustom()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -79036,318 +80417,288 @@ public final class ContextOuterClass { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - context.ContextOuterClass.OpticalLink parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getServiceIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getConfigruleCustomFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (context.ContextOuterClass.OpticalLink) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } - } - return this; - } - - private java.lang.Object name_ = ""; - - /** - * <code>string name = 1;</code> - * @return The name. - */ - public java.lang.String getName() { - java.lang.Object ref = name_; - if (!(ref instanceof java.lang.String)) { - com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref; - java.lang.String s = bs.toStringUtf8(); - name_ = s; - return s; - } else { - return (java.lang.String) ref; - } - } - - /** - * <code>string name = 1;</code> - * @return The bytes for name. - */ - public com.google.protobuf.ByteString getNameBytes() { - java.lang.Object ref = name_; - if (ref instanceof String) { - com.google.protobuf.ByteString b = com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref); - name_ = b; - return b; - } else { - return (com.google.protobuf.ByteString) ref; - } - } - - /** - * <code>string name = 1;</code> - * @param value The name to set. - * @return This builder for chaining. - */ - public Builder setName(java.lang.String value) { - if (value == null) { - throw new NullPointerException(); + onChanged(); } - name_ = value; - onChanged(); + // finally return this; } - /** - * <code>string name = 1;</code> - * @return This builder for chaining. - */ - public Builder clearName() { - name_ = getDefaultInstance().getName(); - onChanged(); - return this; - } - - /** - * <code>string name = 1;</code> - * @param value The bytes for name to set. - * @return This builder for chaining. - */ - public Builder setNameBytes(com.google.protobuf.ByteString value) { - if (value == null) { - throw new NullPointerException(); - } - checkByteStringIsUtf8(value); - name_ = value; - onChanged(); - return this; - } + private int bitField0_; - private context.ContextOuterClass.OpticalLinkDetails details_; + private context.ContextOuterClass.ServiceId serviceId_; - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder> detailsBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> serviceIdBuilder_; /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return Whether the details field is set. + * <code>.context.ServiceId service_id = 1;</code> + * @return Whether the serviceId field is set. */ - public boolean hasDetails() { - return detailsBuilder_ != null || details_ != null; + public boolean hasServiceId() { + return ((bitField0_ & 0x00000001) != 0); } /** - * <code>.context.OpticalLinkDetails details = 2;</code> - * @return The details. + * <code>.context.ServiceId service_id = 1;</code> + * @return The serviceId. */ - public context.ContextOuterClass.OpticalLinkDetails getDetails() { - if (detailsBuilder_ == null) { - return details_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : details_; + public context.ContextOuterClass.ServiceId getServiceId() { + if (serviceIdBuilder_ == null) { + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } else { - return detailsBuilder_.getMessage(); + return serviceIdBuilder_.getMessage(); } } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public Builder setDetails(context.ContextOuterClass.OpticalLinkDetails value) { - if (detailsBuilder_ == null) { + public Builder setServiceId(context.ContextOuterClass.ServiceId value) { + if (serviceIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - details_ = value; - onChanged(); + serviceId_ = value; } else { - detailsBuilder_.setMessage(value); + serviceIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public Builder setDetails(context.ContextOuterClass.OpticalLinkDetails.Builder builderForValue) { - if (detailsBuilder_ == null) { - details_ = builderForValue.build(); - onChanged(); + public Builder setServiceId(context.ContextOuterClass.ServiceId.Builder builderForValue) { + if (serviceIdBuilder_ == null) { + serviceId_ = builderForValue.build(); } else { - detailsBuilder_.setMessage(builderForValue.build()); + serviceIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public Builder mergeDetails(context.ContextOuterClass.OpticalLinkDetails value) { - if (detailsBuilder_ == null) { - if (details_ != null) { - details_ = context.ContextOuterClass.OpticalLinkDetails.newBuilder(details_).mergeFrom(value).buildPartial(); + public Builder mergeServiceId(context.ContextOuterClass.ServiceId value) { + if (serviceIdBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && serviceId_ != null && serviceId_ != context.ContextOuterClass.ServiceId.getDefaultInstance()) { + getServiceIdBuilder().mergeFrom(value); } else { - details_ = value; + serviceId_ = value; } - onChanged(); } else { - detailsBuilder_.mergeFrom(value); + serviceIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public Builder clearDetails() { - if (detailsBuilder_ == null) { - details_ = null; - onChanged(); - } else { - details_ = null; - detailsBuilder_ = null; + public Builder clearServiceId() { + bitField0_ = (bitField0_ & ~0x00000001); + serviceId_ = null; + if (serviceIdBuilder_ != null) { + serviceIdBuilder_.dispose(); + serviceIdBuilder_ = null; } + onChanged(); return this; } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public context.ContextOuterClass.OpticalLinkDetails.Builder getDetailsBuilder() { + public context.ContextOuterClass.ServiceId.Builder getServiceIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); - return getDetailsFieldBuilder().getBuilder(); + return getServiceIdFieldBuilder().getBuilder(); } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - public context.ContextOuterClass.OpticalLinkDetailsOrBuilder getDetailsOrBuilder() { - if (detailsBuilder_ != null) { - return detailsBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.ServiceIdOrBuilder getServiceIdOrBuilder() { + if (serviceIdBuilder_ != null) { + return serviceIdBuilder_.getMessageOrBuilder(); } else { - return details_ == null ? context.ContextOuterClass.OpticalLinkDetails.getDefaultInstance() : details_; + return serviceId_ == null ? context.ContextOuterClass.ServiceId.getDefaultInstance() : serviceId_; } } /** - * <code>.context.OpticalLinkDetails details = 2;</code> + * <code>.context.ServiceId service_id = 1;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder> getDetailsFieldBuilder() { - if (detailsBuilder_ == null) { - detailsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkDetails, context.ContextOuterClass.OpticalLinkDetails.Builder, context.ContextOuterClass.OpticalLinkDetailsOrBuilder>(getDetails(), getParentForChildren(), isClean()); - details_ = null; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder> getServiceIdFieldBuilder() { + if (serviceIdBuilder_ == null) { + serviceIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ServiceId.Builder, context.ContextOuterClass.ServiceIdOrBuilder>(getServiceId(), getParentForChildren(), isClean()); + serviceId_ = null; } - return detailsBuilder_; + return serviceIdBuilder_; } - private context.ContextOuterClass.OpticalLinkId opticalLinkUuid_; + private context.ContextOuterClass.ConfigRule_Custom configruleCustom_; - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLinkId.Builder, context.ContextOuterClass.OpticalLinkIdOrBuilder> opticalLinkUuidBuilder_; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ConfigRule_Custom, context.ContextOuterClass.ConfigRule_Custom.Builder, context.ContextOuterClass.ConfigRule_CustomOrBuilder> configruleCustomBuilder_; /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return Whether the opticalLinkUuid field is set. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return Whether the configruleCustom field is set. */ - public boolean hasOpticalLinkUuid() { - return opticalLinkUuidBuilder_ != null || opticalLinkUuid_ != null; + public boolean hasConfigruleCustom() { + return ((bitField0_ & 0x00000002) != 0); } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> - * @return The opticalLinkUuid. + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> + * @return The configruleCustom. */ - public context.ContextOuterClass.OpticalLinkId getOpticalLinkUuid() { - if (opticalLinkUuidBuilder_ == null) { - return opticalLinkUuid_ == null ? context.ContextOuterClass.OpticalLinkId.getDefaultInstance() : opticalLinkUuid_; + public context.ContextOuterClass.ConfigRule_Custom getConfigruleCustom() { + if (configruleCustomBuilder_ == null) { + return configruleCustom_ == null ? context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance() : configruleCustom_; } else { - return opticalLinkUuidBuilder_.getMessage(); + return configruleCustomBuilder_.getMessage(); } } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public Builder setOpticalLinkUuid(context.ContextOuterClass.OpticalLinkId value) { - if (opticalLinkUuidBuilder_ == null) { + public Builder setConfigruleCustom(context.ContextOuterClass.ConfigRule_Custom value) { + if (configruleCustomBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - opticalLinkUuid_ = value; - onChanged(); + configruleCustom_ = value; } else { - opticalLinkUuidBuilder_.setMessage(value); + configruleCustomBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public Builder setOpticalLinkUuid(context.ContextOuterClass.OpticalLinkId.Builder builderForValue) { - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuid_ = builderForValue.build(); - onChanged(); + public Builder setConfigruleCustom(context.ContextOuterClass.ConfigRule_Custom.Builder builderForValue) { + if (configruleCustomBuilder_ == null) { + configruleCustom_ = builderForValue.build(); } else { - opticalLinkUuidBuilder_.setMessage(builderForValue.build()); + configruleCustomBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public Builder mergeOpticalLinkUuid(context.ContextOuterClass.OpticalLinkId value) { - if (opticalLinkUuidBuilder_ == null) { - if (opticalLinkUuid_ != null) { - opticalLinkUuid_ = context.ContextOuterClass.OpticalLinkId.newBuilder(opticalLinkUuid_).mergeFrom(value).buildPartial(); + public Builder mergeConfigruleCustom(context.ContextOuterClass.ConfigRule_Custom value) { + if (configruleCustomBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && configruleCustom_ != null && configruleCustom_ != context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance()) { + getConfigruleCustomBuilder().mergeFrom(value); } else { - opticalLinkUuid_ = value; + configruleCustom_ = value; } - onChanged(); } else { - opticalLinkUuidBuilder_.mergeFrom(value); + configruleCustomBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public Builder clearOpticalLinkUuid() { - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuid_ = null; - onChanged(); - } else { - opticalLinkUuid_ = null; - opticalLinkUuidBuilder_ = null; + public Builder clearConfigruleCustom() { + bitField0_ = (bitField0_ & ~0x00000002); + configruleCustom_ = null; + if (configruleCustomBuilder_ != null) { + configruleCustomBuilder_.dispose(); + configruleCustomBuilder_ = null; } + onChanged(); return this; } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public context.ContextOuterClass.OpticalLinkId.Builder getOpticalLinkUuidBuilder() { + public context.ContextOuterClass.ConfigRule_Custom.Builder getConfigruleCustomBuilder() { + bitField0_ |= 0x00000002; onChanged(); - return getOpticalLinkUuidFieldBuilder().getBuilder(); + return getConfigruleCustomFieldBuilder().getBuilder(); } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - public context.ContextOuterClass.OpticalLinkIdOrBuilder getOpticalLinkUuidOrBuilder() { - if (opticalLinkUuidBuilder_ != null) { - return opticalLinkUuidBuilder_.getMessageOrBuilder(); + public context.ContextOuterClass.ConfigRule_CustomOrBuilder getConfigruleCustomOrBuilder() { + if (configruleCustomBuilder_ != null) { + return configruleCustomBuilder_.getMessageOrBuilder(); } else { - return opticalLinkUuid_ == null ? context.ContextOuterClass.OpticalLinkId.getDefaultInstance() : opticalLinkUuid_; + return configruleCustom_ == null ? context.ContextOuterClass.ConfigRule_Custom.getDefaultInstance() : configruleCustom_; } } /** - * <code>.context.OpticalLinkId optical_link_uuid = 3;</code> + * <code>.context.ConfigRule_Custom configrule_custom = 2;</code> */ - private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLinkId.Builder, context.ContextOuterClass.OpticalLinkIdOrBuilder> getOpticalLinkUuidFieldBuilder() { - if (opticalLinkUuidBuilder_ == null) { - opticalLinkUuidBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLinkId.Builder, context.ContextOuterClass.OpticalLinkIdOrBuilder>(getOpticalLinkUuid(), getParentForChildren(), isClean()); - opticalLinkUuid_ = null; + private com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ConfigRule_Custom, context.ContextOuterClass.ConfigRule_Custom.Builder, context.ContextOuterClass.ConfigRule_CustomOrBuilder> getConfigruleCustomFieldBuilder() { + if (configruleCustomBuilder_ == null) { + configruleCustomBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<context.ContextOuterClass.ConfigRule_Custom, context.ContextOuterClass.ConfigRule_Custom.Builder, context.ContextOuterClass.ConfigRule_CustomOrBuilder>(getConfigruleCustom(), getParentForChildren(), isClean()); + configruleCustom_ = null; } - return opticalLinkUuidBuilder_; + return configruleCustomBuilder_; } @java.lang.Override @@ -79359,39 +80710,49 @@ public final class ContextOuterClass { public final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.mergeUnknownFields(unknownFields); } - // @@protoc_insertion_point(builder_scope:context.OpticalLink) + // @@protoc_insertion_point(builder_scope:context.ServiceConfigRule) } - // @@protoc_insertion_point(class_scope:context.OpticalLink) - private static final context.ContextOuterClass.OpticalLink DEFAULT_INSTANCE; + // @@protoc_insertion_point(class_scope:context.ServiceConfigRule) + private static final context.ContextOuterClass.ServiceConfigRule DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new context.ContextOuterClass.OpticalLink(); + DEFAULT_INSTANCE = new context.ContextOuterClass.ServiceConfigRule(); } - public static context.ContextOuterClass.OpticalLink getDefaultInstance() { + public static context.ContextOuterClass.ServiceConfigRule getDefaultInstance() { return DEFAULT_INSTANCE; } - private static final com.google.protobuf.Parser<OpticalLink> PARSER = new com.google.protobuf.AbstractParser<OpticalLink>() { + private static final com.google.protobuf.Parser<ServiceConfigRule> PARSER = new com.google.protobuf.AbstractParser<ServiceConfigRule>() { @java.lang.Override - public OpticalLink parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new OpticalLink(input, extensionRegistry); + public ServiceConfigRule parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; - public static com.google.protobuf.Parser<OpticalLink> parser() { + public static com.google.protobuf.Parser<ServiceConfigRule> parser() { return PARSER; } @java.lang.Override - public com.google.protobuf.Parser<OpticalLink> getParserForType() { + public com.google.protobuf.Parser<ServiceConfigRule> getParserForType() { return PARSER; } @java.lang.Override - public context.ContextOuterClass.OpticalLink getDefaultInstanceForType() { + public context.ContextOuterClass.ServiceConfigRule getDefaultInstanceForType() { return DEFAULT_INSTANCE; } } @@ -79632,6 +80993,10 @@ public final class ContextOuterClass { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_EndPoint_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_EndPoint_CapabilitiesEntry_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_EndPoint_CapabilitiesEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_EndPointName_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_EndPointName_fieldAccessorTable; @@ -79700,6 +81065,14 @@ public final class ContextOuterClass { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_Constraint_Exclusions_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_QoSProfileId_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_QoSProfileId_fieldAccessorTable; + + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_Constraint_QoSProfile_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_Constraint_QoSProfile_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_Constraint_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_Constraint_fieldAccessorTable; @@ -79724,26 +81097,42 @@ public final class ContextOuterClass { private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalConfigList_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkId_descriptor; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalConfigEvent_descriptor; - private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkId_fieldAccessorTable; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalConfigEvent_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_FiberId_descriptor; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalEndPointId_descriptor; - private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_FiberId_fieldAccessorTable; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalEndPointId_fieldAccessorTable; - private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_Fiber_descriptor; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkList_descriptor; - private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_Fiber_fieldAccessorTable; + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkList_fieldAccessorTable; private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkDetails_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkDetails_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkDetails_CSlotsEntry_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkDetails_CSlotsEntry_fieldAccessorTable; + + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkDetails_LSlotsEntry_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkDetails_LSlotsEntry_fieldAccessorTable; + + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLinkDetails_SSlotsEntry_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLinkDetails_SSlotsEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_OpticalLink_descriptor; private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_OpticalLink_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor internal_static_context_ServiceConfigRule_descriptor; + + private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_context_ServiceConfigRule_fieldAccessorTable; + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { return descriptor; } @@ -79751,8 +81140,8 @@ public final class ContextOuterClass { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - java.lang.String[] descriptorData = { "\n\rcontext.proto\022\007context\032\tacl.proto\032\026kpi" + "_sample_types.proto\"\007\n\005Empty\"\024\n\004Uuid\022\014\n\004" + "uuid\030\001 \001(\t\"\036\n\tTimestamp\022\021\n\ttimestamp\030\001 \001" + "(\001\"Z\n\005Event\022%\n\ttimestamp\030\001 \001(\0132\022.context" + ".Timestamp\022*\n\nevent_type\030\002 \001(\0162\026.context" + ".EventTypeEnum\"0\n\tContextId\022#\n\014context_u" + "uid\030\001 \001(\0132\r.context.Uuid\"\351\001\n\007Context\022&\n\n" + "context_id\030\001 \001(\0132\022.context.ContextId\022\014\n\004" + "name\030\002 \001(\t\022)\n\014topology_ids\030\003 \003(\0132\023.conte" + "xt.TopologyId\022\'\n\013service_ids\030\004 \003(\0132\022.con" + "text.ServiceId\022#\n\tslice_ids\030\005 \003(\0132\020.cont" + "ext.SliceId\022/\n\ncontroller\030\006 \001(\0132\033.contex" + "t.TeraFlowController\"8\n\rContextIdList\022\'\n" + "\013context_ids\030\001 \003(\0132\022.context.ContextId\"1" + "\n\013ContextList\022\"\n\010contexts\030\001 \003(\0132\020.contex" + "t.Context\"U\n\014ContextEvent\022\035\n\005event\030\001 \001(\013" + "2\016.context.Event\022&\n\ncontext_id\030\002 \001(\0132\022.c" + "ontext.ContextId\"Z\n\nTopologyId\022&\n\ncontex" + "t_id\030\001 \001(\0132\022.context.ContextId\022$\n\rtopolo" + "gy_uuid\030\002 \001(\0132\r.context.Uuid\"\214\001\n\010Topolog" + "y\022(\n\013topology_id\030\001 \001(\0132\023.context.Topolog" + "yId\022\014\n\004name\030\002 \001(\t\022%\n\ndevice_ids\030\003 \003(\0132\021." + "context.DeviceId\022!\n\010link_ids\030\004 \003(\0132\017.con" + "text.LinkId\"\211\001\n\017TopologyDetails\022(\n\013topol" + "ogy_id\030\001 \001(\0132\023.context.TopologyId\022\014\n\004nam" + "e\030\002 \001(\t\022 \n\007devices\030\003 \003(\0132\017.context.Devic" + "e\022\034\n\005links\030\004 \003(\0132\r.context.Link\";\n\016Topol" + "ogyIdList\022)\n\014topology_ids\030\001 \003(\0132\023.contex" + "t.TopologyId\"5\n\014TopologyList\022%\n\ntopologi" + "es\030\001 \003(\0132\021.context.Topology\"X\n\rTopologyE" + "vent\022\035\n\005event\030\001 \001(\0132\016.context.Event\022(\n\013t" + "opology_id\030\002 \001(\0132\023.context.TopologyId\".\n" + "\010DeviceId\022\"\n\013device_uuid\030\001 \001(\0132\r.context" + ".Uuid\"\372\002\n\006Device\022$\n\tdevice_id\030\001 \001(\0132\021.co" + "ntext.DeviceId\022\014\n\004name\030\002 \001(\t\022\023\n\013device_t" + "ype\030\003 \001(\t\022,\n\rdevice_config\030\004 \001(\0132\025.conte" + "xt.DeviceConfig\022G\n\031device_operational_st" + "atus\030\005 \001(\0162$.context.DeviceOperationalSt" + "atusEnum\0221\n\016device_drivers\030\006 \003(\0162\031.conte" + "xt.DeviceDriverEnum\022+\n\020device_endpoints\030" + "\007 \003(\0132\021.context.EndPoint\022&\n\ncomponents\030\010" + " \003(\0132\022.context.Component\022(\n\rcontroller_i" + "d\030\t \001(\0132\021.context.DeviceId\"\311\001\n\tComponent" + "\022%\n\016component_uuid\030\001 \001(\0132\r.context.Uuid\022" + "\014\n\004name\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\0226\n\nattribute" + "s\030\004 \003(\0132\".context.Component.AttributesEn" + "try\022\016\n\006parent\030\005 \001(\t\0321\n\017AttributesEntry\022\013" + "\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"9\n\014Device" + "Config\022)\n\014config_rules\030\001 \003(\0132\023.context.C" + "onfigRule\"5\n\014DeviceIdList\022%\n\ndevice_ids\030" + "\001 \003(\0132\021.context.DeviceId\".\n\nDeviceList\022 " + "\n\007devices\030\001 \003(\0132\017.context.Device\"\216\001\n\014Dev" + "iceFilter\022)\n\ndevice_ids\030\001 \001(\0132\025.context." + "DeviceIdList\022\031\n\021include_endpoints\030\002 \001(\010\022" + "\034\n\024include_config_rules\030\003 \001(\010\022\032\n\022include" + "_components\030\004 \001(\010\"\200\001\n\013DeviceEvent\022\035\n\005eve" + "nt\030\001 \001(\0132\016.context.Event\022$\n\tdevice_id\030\002 " + "\001(\0132\021.context.DeviceId\022,\n\rdevice_config\030" + "\003 \001(\0132\025.context.DeviceConfig\"*\n\006LinkId\022 " + "\n\tlink_uuid\030\001 \001(\0132\r.context.Uuid\"I\n\016Link" + "Attributes\022\033\n\023total_capacity_gbps\030\001 \001(\002\022" + "\032\n\022used_capacity_gbps\030\002 \001(\002\"\223\001\n\004Link\022 \n\007" + "link_id\030\001 \001(\0132\017.context.LinkId\022\014\n\004name\030\002" + " \001(\t\022.\n\021link_endpoint_ids\030\003 \003(\0132\023.contex" + "t.EndPointId\022+\n\nattributes\030\004 \001(\0132\027.conte" + "xt.LinkAttributes\"/\n\nLinkIdList\022!\n\010link_" + "ids\030\001 \003(\0132\017.context.LinkId\"(\n\010LinkList\022\034" + "\n\005links\030\001 \003(\0132\r.context.Link\"L\n\tLinkEven" + "t\022\035\n\005event\030\001 \001(\0132\016.context.Event\022 \n\007link" + "_id\030\002 \001(\0132\017.context.LinkId\"X\n\tServiceId\022" + "&\n\ncontext_id\030\001 \001(\0132\022.context.ContextId\022" + "#\n\014service_uuid\030\002 \001(\0132\r.context.Uuid\"\333\002\n" + "\007Service\022&\n\nservice_id\030\001 \001(\0132\022.context.S" + "erviceId\022\014\n\004name\030\002 \001(\t\022.\n\014service_type\030\003" + " \001(\0162\030.context.ServiceTypeEnum\0221\n\024servic" + "e_endpoint_ids\030\004 \003(\0132\023.context.EndPointI" + "d\0220\n\023service_constraints\030\005 \003(\0132\023.context" + ".Constraint\022.\n\016service_status\030\006 \001(\0132\026.co" + "ntext.ServiceStatus\022.\n\016service_config\030\007 " + "\001(\0132\026.context.ServiceConfig\022%\n\ttimestamp" + "\030\010 \001(\0132\022.context.Timestamp\"C\n\rServiceSta" + "tus\0222\n\016service_status\030\001 \001(\0162\032.context.Se" + "rviceStatusEnum\":\n\rServiceConfig\022)\n\014conf" + "ig_rules\030\001 \003(\0132\023.context.ConfigRule\"8\n\rS" + "erviceIdList\022\'\n\013service_ids\030\001 \003(\0132\022.cont" + "ext.ServiceId\"1\n\013ServiceList\022\"\n\010services" + "\030\001 \003(\0132\020.context.Service\"\225\001\n\rServiceFilt" + "er\022+\n\013service_ids\030\001 \001(\0132\026.context.Servic" + "eIdList\022\034\n\024include_endpoint_ids\030\002 \001(\010\022\033\n" + "\023include_constraints\030\003 \001(\010\022\034\n\024include_co" + "nfig_rules\030\004 \001(\010\"U\n\014ServiceEvent\022\035\n\005even" + "t\030\001 \001(\0132\016.context.Event\022&\n\nservice_id\030\002 " + "\001(\0132\022.context.ServiceId\"T\n\007SliceId\022&\n\nco" + "ntext_id\030\001 \001(\0132\022.context.ContextId\022!\n\nsl" + "ice_uuid\030\002 \001(\0132\r.context.Uuid\"\240\003\n\005Slice\022" + "\"\n\010slice_id\030\001 \001(\0132\020.context.SliceId\022\014\n\004n" + "ame\030\002 \001(\t\022/\n\022slice_endpoint_ids\030\003 \003(\0132\023." + "context.EndPointId\022.\n\021slice_constraints\030" + "\004 \003(\0132\023.context.Constraint\022-\n\021slice_serv" + "ice_ids\030\005 \003(\0132\022.context.ServiceId\022,\n\022sli" + "ce_subslice_ids\030\006 \003(\0132\020.context.SliceId\022" + "*\n\014slice_status\030\007 \001(\0132\024.context.SliceSta" + "tus\022*\n\014slice_config\030\010 \001(\0132\024.context.Slic" + "eConfig\022(\n\013slice_owner\030\t \001(\0132\023.context.S" + "liceOwner\022%\n\ttimestamp\030\n \001(\0132\022.context.T" + "imestamp\"E\n\nSliceOwner\022!\n\nowner_uuid\030\001 \001" + "(\0132\r.context.Uuid\022\024\n\014owner_string\030\002 \001(\t\"" + "=\n\013SliceStatus\022.\n\014slice_status\030\001 \001(\0162\030.c" + "ontext.SliceStatusEnum\"8\n\013SliceConfig\022)\n" + "\014config_rules\030\001 \003(\0132\023.context.ConfigRule" + "\"2\n\013SliceIdList\022#\n\tslice_ids\030\001 \003(\0132\020.con" + "text.SliceId\"+\n\tSliceList\022\036\n\006slices\030\001 \003(" + "\0132\016.context.Slice\"\312\001\n\013SliceFilter\022\'\n\tsli" + "ce_ids\030\001 \001(\0132\024.context.SliceIdList\022\034\n\024in" + "clude_endpoint_ids\030\002 \001(\010\022\033\n\023include_cons" + "traints\030\003 \001(\010\022\033\n\023include_service_ids\030\004 \001" + "(\010\022\034\n\024include_subslice_ids\030\005 \001(\010\022\034\n\024incl" + "ude_config_rules\030\006 \001(\010\"O\n\nSliceEvent\022\035\n\005" + "event\030\001 \001(\0132\016.context.Event\022\"\n\010slice_id\030" + "\002 \001(\0132\020.context.SliceId\"6\n\014ConnectionId\022" + "&\n\017connection_uuid\030\001 \001(\0132\r.context.Uuid\"" + "2\n\025ConnectionSettings_L0\022\031\n\021lsp_symbolic" + "_name\030\001 \001(\t\"\236\001\n\025ConnectionSettings_L2\022\027\n" + "\017src_mac_address\030\001 \001(\t\022\027\n\017dst_mac_addres" + "s\030\002 \001(\t\022\022\n\nether_type\030\003 \001(\r\022\017\n\007vlan_id\030\004" + " \001(\r\022\022\n\nmpls_label\030\005 \001(\r\022\032\n\022mpls_traffic" + "_class\030\006 \001(\r\"t\n\025ConnectionSettings_L3\022\026\n" + "\016src_ip_address\030\001 \001(\t\022\026\n\016dst_ip_address\030" + "\002 \001(\t\022\014\n\004dscp\030\003 \001(\r\022\020\n\010protocol\030\004 \001(\r\022\013\n" + "\003ttl\030\005 \001(\r\"[\n\025ConnectionSettings_L4\022\020\n\010s" + "rc_port\030\001 \001(\r\022\020\n\010dst_port\030\002 \001(\r\022\021\n\ttcp_f" + "lags\030\003 \001(\r\022\013\n\003ttl\030\004 \001(\r\"\304\001\n\022ConnectionSe" + "ttings\022*\n\002l0\030\001 \001(\0132\036.context.ConnectionS" + "ettings_L0\022*\n\002l2\030\002 \001(\0132\036.context.Connect" + "ionSettings_L2\022*\n\002l3\030\003 \001(\0132\036.context.Con" + "nectionSettings_L3\022*\n\002l4\030\004 \001(\0132\036.context" + ".ConnectionSettings_L4\"\363\001\n\nConnection\022,\n" + "\rconnection_id\030\001 \001(\0132\025.context.Connectio" + "nId\022&\n\nservice_id\030\002 \001(\0132\022.context.Servic" + "eId\0223\n\026path_hops_endpoint_ids\030\003 \003(\0132\023.co" + "ntext.EndPointId\022+\n\017sub_service_ids\030\004 \003(" + "\0132\022.context.ServiceId\022-\n\010settings\030\005 \001(\0132" + "\033.context.ConnectionSettings\"A\n\020Connecti" + "onIdList\022-\n\016connection_ids\030\001 \003(\0132\025.conte" + "xt.ConnectionId\":\n\016ConnectionList\022(\n\013con" + "nections\030\001 \003(\0132\023.context.Connection\"^\n\017C" + "onnectionEvent\022\035\n\005event\030\001 \001(\0132\016.context." + "Event\022,\n\rconnection_id\030\002 \001(\0132\025.context.C" + "onnectionId\"\202\001\n\nEndPointId\022(\n\013topology_i" + "d\030\001 \001(\0132\023.context.TopologyId\022$\n\tdevice_i" + "d\030\002 \001(\0132\021.context.DeviceId\022$\n\rendpoint_u" + "uid\030\003 \001(\0132\r.context.Uuid\"\302\001\n\010EndPoint\022(\n" + "\013endpoint_id\030\001 \001(\0132\023.context.EndPointId\022" + "\014\n\004name\030\002 \001(\t\022\025\n\rendpoint_type\030\003 \001(\t\0229\n\020" + "kpi_sample_types\030\004 \003(\0162\037.kpi_sample_type" + "s.KpiSampleType\022,\n\021endpoint_location\030\005 \001" + "(\0132\021.context.Location\"{\n\014EndPointName\022(\n" + "\013endpoint_id\030\001 \001(\0132\023.context.EndPointId\022" + "\023\n\013device_name\030\002 \001(\t\022\025\n\rendpoint_name\030\003 " + "\001(\t\022\025\n\rendpoint_type\030\004 \001(\t\";\n\016EndPointId" + "List\022)\n\014endpoint_ids\030\001 \003(\0132\023.context.End" + "PointId\"A\n\020EndPointNameList\022-\n\016endpoint_" + "names\030\001 \003(\0132\025.context.EndPointName\"A\n\021Co" + "nfigRule_Custom\022\024\n\014resource_key\030\001 \001(\t\022\026\n" + "\016resource_value\030\002 \001(\t\"]\n\016ConfigRule_ACL\022" + "(\n\013endpoint_id\030\001 \001(\0132\023.context.EndPointI" + "d\022!\n\010rule_set\030\002 \001(\0132\017.acl.AclRuleSet\"\234\001\n" + "\nConfigRule\022)\n\006action\030\001 \001(\0162\031.context.Co" + "nfigActionEnum\022,\n\006custom\030\002 \001(\0132\032.context" + ".ConfigRule_CustomH\000\022&\n\003acl\030\003 \001(\0132\027.cont" + "ext.ConfigRule_ACLH\000B\r\n\013config_rule\"F\n\021C" + "onstraint_Custom\022\027\n\017constraint_type\030\001 \001(" + "\t\022\030\n\020constraint_value\030\002 \001(\t\"E\n\023Constrain" + "t_Schedule\022\027\n\017start_timestamp\030\001 \001(\002\022\025\n\rd" + "uration_days\030\002 \001(\002\"3\n\014GPS_Position\022\020\n\010la" + "titude\030\001 \001(\002\022\021\n\tlongitude\030\002 \001(\002\"W\n\010Locat" + "ion\022\020\n\006region\030\001 \001(\tH\000\022-\n\014gps_position\030\002 " + "\001(\0132\025.context.GPS_PositionH\000B\n\n\010location" + "\"l\n\033Constraint_EndPointLocation\022(\n\013endpo" + "int_id\030\001 \001(\0132\023.context.EndPointId\022#\n\010loc" + "ation\030\002 \001(\0132\021.context.Location\"Y\n\033Constr" + "aint_EndPointPriority\022(\n\013endpoint_id\030\001 \001" + "(\0132\023.context.EndPointId\022\020\n\010priority\030\002 \001(" + "\r\"0\n\026Constraint_SLA_Latency\022\026\n\016e2e_laten" + "cy_ms\030\001 \001(\002\"0\n\027Constraint_SLA_Capacity\022\025" + "\n\rcapacity_gbps\030\001 \001(\002\"c\n\033Constraint_SLA_" + "Availability\022\032\n\022num_disjoint_paths\030\001 \001(\r" + "\022\022\n\nall_active\030\002 \001(\010\022\024\n\014availability\030\003 \001" + "(\002\"V\n\036Constraint_SLA_Isolation_level\0224\n\017" + "isolation_level\030\001 \003(\0162\033.context.Isolatio" + "nLevelEnum\"\242\001\n\025Constraint_Exclusions\022\024\n\014" + "is_permanent\030\001 \001(\010\022%\n\ndevice_ids\030\002 \003(\0132\021" + ".context.DeviceId\022)\n\014endpoint_ids\030\003 \003(\0132" + "\023.context.EndPointId\022!\n\010link_ids\030\004 \003(\0132\017" + ".context.LinkId\"\333\004\n\nConstraint\022-\n\006action" + "\030\001 \001(\0162\035.context.ConstraintActionEnum\022,\n" + "\006custom\030\002 \001(\0132\032.context.Constraint_Custo" + "mH\000\0220\n\010schedule\030\003 \001(\0132\034.context.Constrai" + "nt_ScheduleH\000\022A\n\021endpoint_location\030\004 \001(\013" + "2$.context.Constraint_EndPointLocationH\000" + "\022A\n\021endpoint_priority\030\005 \001(\0132$.context.Co" + "nstraint_EndPointPriorityH\000\0228\n\014sla_capac" + "ity\030\006 \001(\0132 .context.Constraint_SLA_Capac" + "ityH\000\0226\n\013sla_latency\030\007 \001(\0132\037.context.Con" + "straint_SLA_LatencyH\000\022@\n\020sla_availabilit" + "y\030\010 \001(\0132$.context.Constraint_SLA_Availab" + "ilityH\000\022@\n\rsla_isolation\030\t \001(\0132\'.context" + ".Constraint_SLA_Isolation_levelH\000\0224\n\nexc" + "lusions\030\n \001(\0132\036.context.Constraint_Exclu" + "sionsH\000B\014\n\nconstraint\"^\n\022TeraFlowControl" + "ler\022&\n\ncontext_id\030\001 \001(\0132\022.context.Contex" + "tId\022\022\n\nip_address\030\002 \001(\t\022\014\n\004port\030\003 \001(\r\"U\n" + "\024AuthenticationResult\022&\n\ncontext_id\030\001 \001(" + "\0132\022.context.ContextId\022\025\n\rauthenticated\030\002" + " \001(\010\"-\n\017OpticalConfigId\022\032\n\022opticalconfig" + "_uuid\030\001 \001(\t\"S\n\rOpticalConfig\0222\n\020opticalc" + "onfig_id\030\001 \001(\0132\030.context.OpticalConfigId" + "\022\016\n\006config\030\002 \001(\t\"C\n\021OpticalConfigList\022.\n" + "\016opticalconfigs\030\001 \003(\0132\026.context.OpticalC" + "onfig\"9\n\rOpticalLinkId\022(\n\021optical_link_u" + "uid\030\001 \001(\0132\r.context.Uuid\",\n\007FiberId\022!\n\nf" + "iber_uuid\030\001 \001(\0132\r.context.Uuid\"\341\001\n\005Fiber" + "\022\n\n\002ID\030\n \001(\t\022\020\n\010src_port\030\001 \001(\t\022\020\n\010dst_po" + "rt\030\002 \001(\t\022\027\n\017local_peer_port\030\003 \001(\t\022\030\n\020rem" + "ote_peer_port\030\004 \001(\t\022\017\n\007c_slots\030\005 \003(\005\022\017\n\007" + "l_slots\030\006 \003(\005\022\017\n\007s_slots\030\007 \003(\005\022\016\n\006length" + "\030\010 \001(\002\022\014\n\004used\030\t \001(\010\022$\n\nfiber_uuid\030\013 \001(\013" + "2\020.context.FiberId\"d\n\022OpticalLinkDetails" + "\022\016\n\006length\030\001 \001(\002\022\016\n\006source\030\002 \001(\t\022\016\n\006targ" + "et\030\003 \001(\t\022\036\n\006fibers\030\004 \003(\0132\016.context.Fiber" + "\"|\n\013OpticalLink\022\014\n\004name\030\001 \001(\t\022,\n\007details" + "\030\002 \001(\0132\033.context.OpticalLinkDetails\0221\n\021o" + "ptical_link_uuid\030\003 \001(\0132\026.context.Optical" + "LinkId*j\n\rEventTypeEnum\022\027\n\023EVENTTYPE_UND" + "EFINED\020\000\022\024\n\020EVENTTYPE_CREATE\020\001\022\024\n\020EVENTT" + "YPE_UPDATE\020\002\022\024\n\020EVENTTYPE_REMOVE\020\003*\350\002\n\020D" + "eviceDriverEnum\022\032\n\026DEVICEDRIVER_UNDEFINE" + "D\020\000\022\033\n\027DEVICEDRIVER_OPENCONFIG\020\001\022\036\n\032DEVI" + "CEDRIVER_TRANSPORT_API\020\002\022\023\n\017DEVICEDRIVER" + "_P4\020\003\022&\n\"DEVICEDRIVER_IETF_NETWORK_TOPOL" + "OGY\020\004\022\033\n\027DEVICEDRIVER_ONF_TR_532\020\005\022\023\n\017DE" + "VICEDRIVER_XR\020\006\022\033\n\027DEVICEDRIVER_IETF_L2V" + "PN\020\007\022 \n\034DEVICEDRIVER_GNMI_OPENCONFIG\020\010\022\034" + "\n\030DEVICEDRIVER_OPTICAL_TFS\020\t\022\032\n\026DEVICEDR" + "IVER_IETF_ACTN\020\n\022\023\n\017DEVICEDRIVER_OC\020\013*\217\001" + "\n\033DeviceOperationalStatusEnum\022%\n!DEVICEO" + "PERATIONALSTATUS_UNDEFINED\020\000\022$\n DEVICEOP" + "ERATIONALSTATUS_DISABLED\020\001\022#\n\037DEVICEOPER" + "ATIONALSTATUS_ENABLED\020\002*\320\001\n\017ServiceTypeE" + "num\022\027\n\023SERVICETYPE_UNKNOWN\020\000\022\024\n\020SERVICET" + "YPE_L3NM\020\001\022\024\n\020SERVICETYPE_L2NM\020\002\022)\n%SERV" + "ICETYPE_TAPI_CONNECTIVITY_SERVICE\020\003\022\022\n\016S" + "ERVICETYPE_TE\020\004\022\023\n\017SERVICETYPE_E2E\020\005\022$\n " + "SERVICETYPE_OPTICAL_CONNECTIVITY\020\006*\304\001\n\021S" + "erviceStatusEnum\022\033\n\027SERVICESTATUS_UNDEFI" + "NED\020\000\022\031\n\025SERVICESTATUS_PLANNED\020\001\022\030\n\024SERV" + "ICESTATUS_ACTIVE\020\002\022\032\n\026SERVICESTATUS_UPDA" + "TING\020\003\022!\n\035SERVICESTATUS_PENDING_REMOVAL\020" + "\004\022\036\n\032SERVICESTATUS_SLA_VIOLATED\020\005*\251\001\n\017Sl" + "iceStatusEnum\022\031\n\025SLICESTATUS_UNDEFINED\020\000" + "\022\027\n\023SLICESTATUS_PLANNED\020\001\022\024\n\020SLICESTATUS" + "_INIT\020\002\022\026\n\022SLICESTATUS_ACTIVE\020\003\022\026\n\022SLICE" + "STATUS_DEINIT\020\004\022\034\n\030SLICESTATUS_SLA_VIOLA" + "TED\020\005*]\n\020ConfigActionEnum\022\032\n\026CONFIGACTIO" + "N_UNDEFINED\020\000\022\024\n\020CONFIGACTION_SET\020\001\022\027\n\023C" + "ONFIGACTION_DELETE\020\002*m\n\024ConstraintAction" + "Enum\022\036\n\032CONSTRAINTACTION_UNDEFINED\020\000\022\030\n\024" + "CONSTRAINTACTION_SET\020\001\022\033\n\027CONSTRAINTACTI" + "ON_DELETE\020\002*\203\002\n\022IsolationLevelEnum\022\020\n\014NO" + "_ISOLATION\020\000\022\026\n\022PHYSICAL_ISOLATION\020\001\022\025\n\021" + "LOGICAL_ISOLATION\020\002\022\025\n\021PROCESS_ISOLATION" + "\020\003\022\035\n\031PHYSICAL_MEMORY_ISOLATION\020\004\022\036\n\032PHY" + "SICAL_NETWORK_ISOLATION\020\005\022\036\n\032VIRTUAL_RES" + "OURCE_ISOLATION\020\006\022\037\n\033NETWORK_FUNCTIONS_I" + "SOLATION\020\007\022\025\n\021SERVICE_ISOLATION\020\0102\246\031\n\016Co" + "ntextService\022:\n\016ListContextIds\022\016.context" + ".Empty\032\026.context.ContextIdList\"\000\0226\n\014List" + "Contexts\022\016.context.Empty\032\024.context.Conte" + "xtList\"\000\0224\n\nGetContext\022\022.context.Context" + "Id\032\020.context.Context\"\000\0224\n\nSetContext\022\020.c" + "ontext.Context\032\022.context.ContextId\"\000\0225\n\r" + "RemoveContext\022\022.context.ContextId\032\016.cont" + "ext.Empty\"\000\022=\n\020GetContextEvents\022\016.contex" + "t.Empty\032\025.context.ContextEvent\"\0000\001\022@\n\017Li" + "stTopologyIds\022\022.context.ContextId\032\027.cont" + "ext.TopologyIdList\"\000\022=\n\016ListTopologies\022\022" + ".context.ContextId\032\025.context.TopologyLis" + "t\"\000\0227\n\013GetTopology\022\023.context.TopologyId\032" + "\021.context.Topology\"\000\022E\n\022GetTopologyDetai" + "ls\022\023.context.TopologyId\032\030.context.Topolo" + "gyDetails\"\000\0227\n\013SetTopology\022\021.context.Top" + "ology\032\023.context.TopologyId\"\000\0227\n\016RemoveTo" + "pology\022\023.context.TopologyId\032\016.context.Em" + "pty\"\000\022?\n\021GetTopologyEvents\022\016.context.Emp" + "ty\032\026.context.TopologyEvent\"\0000\001\0228\n\rListDe" + "viceIds\022\016.context.Empty\032\025.context.Device" + "IdList\"\000\0224\n\013ListDevices\022\016.context.Empty\032" + "\023.context.DeviceList\"\000\0221\n\tGetDevice\022\021.co" + "ntext.DeviceId\032\017.context.Device\"\000\0221\n\tSet" + "Device\022\017.context.Device\032\021.context.Device" + "Id\"\000\0223\n\014RemoveDevice\022\021.context.DeviceId\032" + "\016.context.Empty\"\000\022;\n\017GetDeviceEvents\022\016.c" + "ontext.Empty\032\024.context.DeviceEvent\"\0000\001\022<" + "\n\014SelectDevice\022\025.context.DeviceFilter\032\023." + "context.DeviceList\"\000\022I\n\021ListEndPointName" + "s\022\027.context.EndPointIdList\032\031.context.End" + "PointNameList\"\000\0224\n\013ListLinkIds\022\016.context" + ".Empty\032\023.context.LinkIdList\"\000\0220\n\tListLin" + "ks\022\016.context.Empty\032\021.context.LinkList\"\000\022" + "+\n\007GetLink\022\017.context.LinkId\032\r.context.Li" + "nk\"\000\022+\n\007SetLink\022\r.context.Link\032\017.context" + ".LinkId\"\000\022/\n\nRemoveLink\022\017.context.LinkId" + "\032\016.context.Empty\"\000\0227\n\rGetLinkEvents\022\016.co" + "ntext.Empty\032\022.context.LinkEvent\"\0000\001\022>\n\016L" + "istServiceIds\022\022.context.ContextId\032\026.cont" + "ext.ServiceIdList\"\000\022:\n\014ListServices\022\022.co" + "ntext.ContextId\032\024.context.ServiceList\"\000\022" + "4\n\nGetService\022\022.context.ServiceId\032\020.cont" + "ext.Service\"\000\0224\n\nSetService\022\020.context.Se" + "rvice\032\022.context.ServiceId\"\000\0226\n\014UnsetServ" + "ice\022\020.context.Service\032\022.context.ServiceI" + "d\"\000\0225\n\rRemoveService\022\022.context.ServiceId" + "\032\016.context.Empty\"\000\022=\n\020GetServiceEvents\022\016" + ".context.Empty\032\025.context.ServiceEvent\"\0000" + "\001\022?\n\rSelectService\022\026.context.ServiceFilt" + "er\032\024.context.ServiceList\"\000\022:\n\014ListSliceI" + "ds\022\022.context.ContextId\032\024.context.SliceId" + "List\"\000\0226\n\nListSlices\022\022.context.ContextId" + "\032\022.context.SliceList\"\000\022.\n\010GetSlice\022\020.con" + "text.SliceId\032\016.context.Slice\"\000\022.\n\010SetSli" + "ce\022\016.context.Slice\032\020.context.SliceId\"\000\0220" + "\n\nUnsetSlice\022\016.context.Slice\032\020.context.S" + "liceId\"\000\0221\n\013RemoveSlice\022\020.context.SliceI" + "d\032\016.context.Empty\"\000\0229\n\016GetSliceEvents\022\016." + "context.Empty\032\023.context.SliceEvent\"\0000\001\0229" + "\n\013SelectSlice\022\024.context.SliceFilter\032\022.co" + "ntext.SliceList\"\000\022D\n\021ListConnectionIds\022\022" + ".context.ServiceId\032\031.context.ConnectionI" + "dList\"\000\022@\n\017ListConnections\022\022.context.Ser" + "viceId\032\027.context.ConnectionList\"\000\022=\n\rGet" + "Connection\022\025.context.ConnectionId\032\023.cont" + "ext.Connection\"\000\022=\n\rSetConnection\022\023.cont" + "ext.Connection\032\025.context.ConnectionId\"\000\022" + ";\n\020RemoveConnection\022\025.context.Connection" + "Id\032\016.context.Empty\"\000\022C\n\023GetConnectionEve" + "nts\022\016.context.Empty\032\030.context.Connection" + "Event\"\0000\001\022@\n\020GetOpticalConfig\022\016.context." + "Empty\032\032.context.OpticalConfigList\"\000\022F\n\020S" + "etOpticalConfig\022\026.context.OpticalConfig\032" + "\030.context.OpticalConfigId\"\000\022I\n\023SelectOpt" + "icalConfig\022\030.context.OpticalConfigId\032\026.c" + "ontext.OpticalConfig\"\000\0228\n\016SetOpticalLink" + "\022\024.context.OpticalLink\032\016.context.Empty\"\000" + "\022@\n\016GetOpticalLink\022\026.context.OpticalLink" + "Id\032\024.context.OpticalLink\"\000\022.\n\010GetFiber\022\020" + ".context.FiberId\032\016.context.Fiber\"\000b\006prot" + "o3" }; - descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { acl.Acl.getDescriptor(), kpi_sample_types.KpiSampleTypes.getDescriptor() }); + java.lang.String[] descriptorData = { "\n\rcontext.proto\022\007context\032\031google/protobu" + "f/any.proto\032\tacl.proto\032\026kpi_sample_types" + ".proto\"\007\n\005Empty\"\024\n\004Uuid\022\014\n\004uuid\030\001 \001(\t\"\036\n" + "\tTimestamp\022\021\n\ttimestamp\030\001 \001(\001\"Z\n\005Event\022%" + "\n\ttimestamp\030\001 \001(\0132\022.context.Timestamp\022*\n" + "\nevent_type\030\002 \001(\0162\026.context.EventTypeEnu" + "m\"0\n\tContextId\022#\n\014context_uuid\030\001 \001(\0132\r.c" + "ontext.Uuid\"\351\001\n\007Context\022&\n\ncontext_id\030\001 " + "\001(\0132\022.context.ContextId\022\014\n\004name\030\002 \001(\t\022)\n" + "\014topology_ids\030\003 \003(\0132\023.context.TopologyId" + "\022\'\n\013service_ids\030\004 \003(\0132\022.context.ServiceI" + "d\022#\n\tslice_ids\030\005 \003(\0132\020.context.SliceId\022/" + "\n\ncontroller\030\006 \001(\0132\033.context.TeraFlowCon" + "troller\"8\n\rContextIdList\022\'\n\013context_ids\030" + "\001 \003(\0132\022.context.ContextId\"1\n\013ContextList" + "\022\"\n\010contexts\030\001 \003(\0132\020.context.Context\"U\n\014" + "ContextEvent\022\035\n\005event\030\001 \001(\0132\016.context.Ev" + "ent\022&\n\ncontext_id\030\002 \001(\0132\022.context.Contex" + "tId\"Z\n\nTopologyId\022&\n\ncontext_id\030\001 \001(\0132\022." + "context.ContextId\022$\n\rtopology_uuid\030\002 \001(\013" + "2\r.context.Uuid\"\267\001\n\010Topology\022(\n\013topology" + "_id\030\001 \001(\0132\023.context.TopologyId\022\014\n\004name\030\002" + " \001(\t\022%\n\ndevice_ids\030\003 \003(\0132\021.context.Devic" + "eId\022!\n\010link_ids\030\004 \003(\0132\017.context.LinkId\022)" + "\n\020optical_link_ids\030\005 \003(\0132\017.context.LinkI" + "d\"\266\001\n\017TopologyDetails\022(\n\013topology_id\030\001 \001" + "(\0132\023.context.TopologyId\022\014\n\004name\030\002 \001(\t\022 \n" + "\007devices\030\003 \003(\0132\017.context.Device\022\034\n\005links" + "\030\004 \003(\0132\r.context.Link\022+\n\roptical_links\030\005" + " \003(\0132\024.context.OpticalLink\";\n\016TopologyId" + "List\022)\n\014topology_ids\030\001 \003(\0132\023.context.Top" + "ologyId\"5\n\014TopologyList\022%\n\ntopologies\030\001 " + "\003(\0132\021.context.Topology\"X\n\rTopologyEvent\022" + "\035\n\005event\030\001 \001(\0132\016.context.Event\022(\n\013topolo" + "gy_id\030\002 \001(\0132\023.context.TopologyId\".\n\010Devi" + "ceId\022\"\n\013device_uuid\030\001 \001(\0132\r.context.Uuid" + "\"\372\002\n\006Device\022$\n\tdevice_id\030\001 \001(\0132\021.context" + ".DeviceId\022\014\n\004name\030\002 \001(\t\022\023\n\013device_type\030\003" + " \001(\t\022,\n\rdevice_config\030\004 \001(\0132\025.context.De" + "viceConfig\022G\n\031device_operational_status\030" + "\005 \001(\0162$.context.DeviceOperationalStatusE" + "num\0221\n\016device_drivers\030\006 \003(\0162\031.context.De" + "viceDriverEnum\022+\n\020device_endpoints\030\007 \003(\013" + "2\021.context.EndPoint\022&\n\ncomponents\030\010 \003(\0132" + "\022.context.Component\022(\n\rcontroller_id\030\t \001" + "(\0132\021.context.DeviceId\"\311\001\n\tComponent\022%\n\016c" + "omponent_uuid\030\001 \001(\0132\r.context.Uuid\022\014\n\004na" + "me\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\0226\n\nattributes\030\004 \003" + "(\0132\".context.Component.AttributesEntry\022\016" + "\n\006parent\030\005 \001(\t\0321\n\017AttributesEntry\022\013\n\003key" + "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"9\n\014DeviceConfi" + "g\022)\n\014config_rules\030\001 \003(\0132\023.context.Config" + "Rule\"5\n\014DeviceIdList\022%\n\ndevice_ids\030\001 \003(\013" + "2\021.context.DeviceId\".\n\nDeviceList\022 \n\007dev" + "ices\030\001 \003(\0132\017.context.Device\"\216\001\n\014DeviceFi" + "lter\022)\n\ndevice_ids\030\001 \001(\0132\025.context.Devic" + "eIdList\022\031\n\021include_endpoints\030\002 \001(\010\022\034\n\024in" + "clude_config_rules\030\003 \001(\010\022\032\n\022include_comp" + "onents\030\004 \001(\010\"\200\001\n\013DeviceEvent\022\035\n\005event\030\001 " + "\001(\0132\016.context.Event\022$\n\tdevice_id\030\002 \001(\0132\021" + ".context.DeviceId\022,\n\rdevice_config\030\003 \001(\013" + "2\025.context.DeviceConfig\"*\n\006LinkId\022 \n\tlin" + "k_uuid\030\001 \001(\0132\r.context.Uuid\"I\n\016LinkAttri" + "butes\022\033\n\023total_capacity_gbps\030\001 \001(\002\022\032\n\022us" + "ed_capacity_gbps\030\002 \001(\002\"\275\001\n\004Link\022 \n\007link_" + "id\030\001 \001(\0132\017.context.LinkId\022\014\n\004name\030\002 \001(\t\022" + "(\n\tlink_type\030\003 \001(\0162\025.context.LinkTypeEnu" + "m\022.\n\021link_endpoint_ids\030\004 \003(\0132\023.context.E" + "ndPointId\022+\n\nattributes\030\005 \001(\0132\027.context." + "LinkAttributes\"/\n\nLinkIdList\022!\n\010link_ids" + "\030\001 \003(\0132\017.context.LinkId\"(\n\010LinkList\022\034\n\005l" + "inks\030\001 \003(\0132\r.context.Link\"L\n\tLinkEvent\022\035" + "\n\005event\030\001 \001(\0132\016.context.Event\022 \n\007link_id" + "\030\002 \001(\0132\017.context.LinkId\"X\n\tServiceId\022&\n\n" + "context_id\030\001 \001(\0132\022.context.ContextId\022#\n\014" + "service_uuid\030\002 \001(\0132\r.context.Uuid\"\333\002\n\007Se" + "rvice\022&\n\nservice_id\030\001 \001(\0132\022.context.Serv" + "iceId\022\014\n\004name\030\002 \001(\t\022.\n\014service_type\030\003 \001(" + "\0162\030.context.ServiceTypeEnum\0221\n\024service_e" + "ndpoint_ids\030\004 \003(\0132\023.context.EndPointId\0220" + "\n\023service_constraints\030\005 \003(\0132\023.context.Co" + "nstraint\022.\n\016service_status\030\006 \001(\0132\026.conte" + "xt.ServiceStatus\022.\n\016service_config\030\007 \001(\013" + "2\026.context.ServiceConfig\022%\n\ttimestamp\030\010 " + "\001(\0132\022.context.Timestamp\"C\n\rServiceStatus" + "\0222\n\016service_status\030\001 \001(\0162\032.context.Servi" + "ceStatusEnum\":\n\rServiceConfig\022)\n\014config_" + "rules\030\001 \003(\0132\023.context.ConfigRule\"8\n\rServ" + "iceIdList\022\'\n\013service_ids\030\001 \003(\0132\022.context" + ".ServiceId\"1\n\013ServiceList\022\"\n\010services\030\001 " + "\003(\0132\020.context.Service\"\225\001\n\rServiceFilter\022" + "+\n\013service_ids\030\001 \001(\0132\026.context.ServiceId" + "List\022\034\n\024include_endpoint_ids\030\002 \001(\010\022\033\n\023in" + "clude_constraints\030\003 \001(\010\022\034\n\024include_confi" + "g_rules\030\004 \001(\010\"U\n\014ServiceEvent\022\035\n\005event\030\001" + " \001(\0132\016.context.Event\022&\n\nservice_id\030\002 \001(\013" + "2\022.context.ServiceId\"T\n\007SliceId\022&\n\nconte" + "xt_id\030\001 \001(\0132\022.context.ContextId\022!\n\nslice" + "_uuid\030\002 \001(\0132\r.context.Uuid\"\240\003\n\005Slice\022\"\n\010" + "slice_id\030\001 \001(\0132\020.context.SliceId\022\014\n\004name" + "\030\002 \001(\t\022/\n\022slice_endpoint_ids\030\003 \003(\0132\023.con" + "text.EndPointId\022.\n\021slice_constraints\030\004 \003" + "(\0132\023.context.Constraint\022-\n\021slice_service" + "_ids\030\005 \003(\0132\022.context.ServiceId\022,\n\022slice_" + "subslice_ids\030\006 \003(\0132\020.context.SliceId\022*\n\014" + "slice_status\030\007 \001(\0132\024.context.SliceStatus" + "\022*\n\014slice_config\030\010 \001(\0132\024.context.SliceCo" + "nfig\022(\n\013slice_owner\030\t \001(\0132\023.context.Slic" + "eOwner\022%\n\ttimestamp\030\n \001(\0132\022.context.Time" + "stamp\"E\n\nSliceOwner\022!\n\nowner_uuid\030\001 \001(\0132" + "\r.context.Uuid\022\024\n\014owner_string\030\002 \001(\t\"=\n\013" + "SliceStatus\022.\n\014slice_status\030\001 \001(\0162\030.cont" + "ext.SliceStatusEnum\"8\n\013SliceConfig\022)\n\014co" + "nfig_rules\030\001 \003(\0132\023.context.ConfigRule\"2\n" + "\013SliceIdList\022#\n\tslice_ids\030\001 \003(\0132\020.contex" + "t.SliceId\"+\n\tSliceList\022\036\n\006slices\030\001 \003(\0132\016" + ".context.Slice\"\312\001\n\013SliceFilter\022\'\n\tslice_" + "ids\030\001 \001(\0132\024.context.SliceIdList\022\034\n\024inclu" + "de_endpoint_ids\030\002 \001(\010\022\033\n\023include_constra" + "ints\030\003 \001(\010\022\033\n\023include_service_ids\030\004 \001(\010\022" + "\034\n\024include_subslice_ids\030\005 \001(\010\022\034\n\024include" + "_config_rules\030\006 \001(\010\"O\n\nSliceEvent\022\035\n\005eve" + "nt\030\001 \001(\0132\016.context.Event\022\"\n\010slice_id\030\002 \001" + "(\0132\020.context.SliceId\"6\n\014ConnectionId\022&\n\017" + "connection_uuid\030\001 \001(\0132\r.context.Uuid\"2\n\025" + "ConnectionSettings_L0\022\031\n\021lsp_symbolic_na" + "me\030\001 \001(\t\"\236\001\n\025ConnectionSettings_L2\022\027\n\017sr" + "c_mac_address\030\001 \001(\t\022\027\n\017dst_mac_address\030\002" + " \001(\t\022\022\n\nether_type\030\003 \001(\r\022\017\n\007vlan_id\030\004 \001(" + "\r\022\022\n\nmpls_label\030\005 \001(\r\022\032\n\022mpls_traffic_cl" + "ass\030\006 \001(\r\"t\n\025ConnectionSettings_L3\022\026\n\016sr" + "c_ip_address\030\001 \001(\t\022\026\n\016dst_ip_address\030\002 \001" + "(\t\022\014\n\004dscp\030\003 \001(\r\022\020\n\010protocol\030\004 \001(\r\022\013\n\003tt" + "l\030\005 \001(\r\"[\n\025ConnectionSettings_L4\022\020\n\010src_" + "port\030\001 \001(\r\022\020\n\010dst_port\030\002 \001(\r\022\021\n\ttcp_flag" + "s\030\003 \001(\r\022\013\n\003ttl\030\004 \001(\r\"\304\001\n\022ConnectionSetti" + "ngs\022*\n\002l0\030\001 \001(\0132\036.context.ConnectionSett" + "ings_L0\022*\n\002l2\030\002 \001(\0132\036.context.Connection" + "Settings_L2\022*\n\002l3\030\003 \001(\0132\036.context.Connec" + "tionSettings_L3\022*\n\002l4\030\004 \001(\0132\036.context.Co" + "nnectionSettings_L4\"\363\001\n\nConnection\022,\n\rco" + "nnection_id\030\001 \001(\0132\025.context.ConnectionId" + "\022&\n\nservice_id\030\002 \001(\0132\022.context.ServiceId" + "\0223\n\026path_hops_endpoint_ids\030\003 \003(\0132\023.conte" + "xt.EndPointId\022+\n\017sub_service_ids\030\004 \003(\0132\022" + ".context.ServiceId\022-\n\010settings\030\005 \001(\0132\033.c" + "ontext.ConnectionSettings\"A\n\020ConnectionI" + "dList\022-\n\016connection_ids\030\001 \003(\0132\025.context." + "ConnectionId\":\n\016ConnectionList\022(\n\013connec" + "tions\030\001 \003(\0132\023.context.Connection\"^\n\017Conn" + "ectionEvent\022\035\n\005event\030\001 \001(\0132\016.context.Eve" + "nt\022,\n\rconnection_id\030\002 \001(\0132\025.context.Conn" + "ectionId\"\202\001\n\nEndPointId\022(\n\013topology_id\030\001" + " \001(\0132\023.context.TopologyId\022$\n\tdevice_id\030\002" + " \001(\0132\021.context.DeviceId\022$\n\rendpoint_uuid" + "\030\003 \001(\0132\r.context.Uuid\"\310\002\n\010EndPoint\022(\n\013en" + "dpoint_id\030\001 \001(\0132\023.context.EndPointId\022\014\n\004" + "name\030\002 \001(\t\022\025\n\rendpoint_type\030\003 \001(\t\0229\n\020kpi" + "_sample_types\030\004 \003(\0162\037.kpi_sample_types.K" + "piSampleType\022,\n\021endpoint_location\030\005 \001(\0132" + "\021.context.Location\0229\n\014capabilities\030\006 \003(\013" + "2#.context.EndPoint.CapabilitiesEntry\032I\n" + "\021CapabilitiesEntry\022\013\n\003key\030\001 \001(\t\022#\n\005value" + "\030\002 \001(\0132\024.google.protobuf.Any:\0028\001\"{\n\014EndP" + "ointName\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022\023\n\013device_name\030\002 \001(\t\022\025\n\rendpo" + "int_name\030\003 \001(\t\022\025\n\rendpoint_type\030\004 \001(\t\";\n" + "\016EndPointIdList\022)\n\014endpoint_ids\030\001 \003(\0132\023." + "context.EndPointId\"A\n\020EndPointNameList\022-" + "\n\016endpoint_names\030\001 \003(\0132\025.context.EndPoin" + "tName\"A\n\021ConfigRule_Custom\022\024\n\014resource_k" + "ey\030\001 \001(\t\022\026\n\016resource_value\030\002 \001(\t\"]\n\016Conf" + "igRule_ACL\022(\n\013endpoint_id\030\001 \001(\0132\023.contex" + "t.EndPointId\022!\n\010rule_set\030\002 \001(\0132\017.acl.Acl" + "RuleSet\"\234\001\n\nConfigRule\022)\n\006action\030\001 \001(\0162\031" + ".context.ConfigActionEnum\022,\n\006custom\030\002 \001(" + "\0132\032.context.ConfigRule_CustomH\000\022&\n\003acl\030\003" + " \001(\0132\027.context.ConfigRule_ACLH\000B\r\n\013confi" + "g_rule\"F\n\021Constraint_Custom\022\027\n\017constrain" + "t_type\030\001 \001(\t\022\030\n\020constraint_value\030\002 \001(\t\"E" + "\n\023Constraint_Schedule\022\027\n\017start_timestamp" + "\030\001 \001(\001\022\025\n\rduration_days\030\002 \001(\002\"3\n\014GPS_Pos" + "ition\022\020\n\010latitude\030\001 \001(\002\022\021\n\tlongitude\030\002 \001" + "(\002\"\204\001\n\010Location\022\020\n\006region\030\001 \001(\tH\000\022-\n\014gps" + "_position\030\002 \001(\0132\025.context.GPS_PositionH\000" + "\022\023\n\tinterface\030\003 \001(\tH\000\022\026\n\014circuit_pack\030\004 " + "\001(\tH\000B\n\n\010location\"l\n\033Constraint_EndPoint" + "Location\022(\n\013endpoint_id\030\001 \001(\0132\023.context." + "EndPointId\022#\n\010location\030\002 \001(\0132\021.context.L" + "ocation\"Y\n\033Constraint_EndPointPriority\022(" + "\n\013endpoint_id\030\001 \001(\0132\023.context.EndPointId" + "\022\020\n\010priority\030\002 \001(\r\"0\n\026Constraint_SLA_Lat" + "ency\022\026\n\016e2e_latency_ms\030\001 \001(\002\"0\n\027Constrai" + "nt_SLA_Capacity\022\025\n\rcapacity_gbps\030\001 \001(\002\"c" + "\n\033Constraint_SLA_Availability\022\032\n\022num_dis" + "joint_paths\030\001 \001(\r\022\022\n\nall_active\030\002 \001(\010\022\024\n" + "\014availability\030\003 \001(\002\"V\n\036Constraint_SLA_Is" + "olation_level\0224\n\017isolation_level\030\001 \003(\0162\033" + ".context.IsolationLevelEnum\"\242\001\n\025Constrai" + "nt_Exclusions\022\024\n\014is_permanent\030\001 \001(\010\022%\n\nd" + "evice_ids\030\002 \003(\0132\021.context.DeviceId\022)\n\014en" + "dpoint_ids\030\003 \003(\0132\023.context.EndPointId\022!\n" + "\010link_ids\030\004 \003(\0132\017.context.LinkId\"5\n\014QoSP" + "rofileId\022%\n\016qos_profile_id\030\001 \001(\0132\r.conte" + "xt.Uuid\"`\n\025Constraint_QoSProfile\022-\n\016qos_" + "profile_id\030\001 \001(\0132\025.context.QoSProfileId\022" + "\030\n\020qos_profile_name\030\002 \001(\t\"\222\005\n\nConstraint" + "\022-\n\006action\030\001 \001(\0162\035.context.ConstraintAct" + "ionEnum\022,\n\006custom\030\002 \001(\0132\032.context.Constr" + "aint_CustomH\000\0220\n\010schedule\030\003 \001(\0132\034.contex" + "t.Constraint_ScheduleH\000\022A\n\021endpoint_loca" + "tion\030\004 \001(\0132$.context.Constraint_EndPoint" + "LocationH\000\022A\n\021endpoint_priority\030\005 \001(\0132$." + "context.Constraint_EndPointPriorityH\000\0228\n" + "\014sla_capacity\030\006 \001(\0132 .context.Constraint" + "_SLA_CapacityH\000\0226\n\013sla_latency\030\007 \001(\0132\037.c" + "ontext.Constraint_SLA_LatencyH\000\022@\n\020sla_a" + "vailability\030\010 \001(\0132$.context.Constraint_S" + "LA_AvailabilityH\000\022@\n\rsla_isolation\030\t \001(\013" + "2\'.context.Constraint_SLA_Isolation_leve" + "lH\000\0224\n\nexclusions\030\n \001(\0132\036.context.Constr" + "aint_ExclusionsH\000\0225\n\013qos_profile\030\013 \001(\0132\036" + ".context.Constraint_QoSProfileH\000B\014\n\ncons" + "traint\"^\n\022TeraFlowController\022&\n\ncontext_" + "id\030\001 \001(\0132\022.context.ContextId\022\022\n\nip_addre" + "ss\030\002 \001(\t\022\014\n\004port\030\003 \001(\r\"U\n\024Authentication" + "Result\022&\n\ncontext_id\030\001 \001(\0132\022.context.Con" + "textId\022\025\n\rauthenticated\030\002 \001(\010\"-\n\017Optical" + "ConfigId\022\032\n\022opticalconfig_uuid\030\001 \001(\t\"y\n\r" + "OpticalConfig\0222\n\020opticalconfig_id\030\001 \001(\0132" + "\030.context.OpticalConfigId\022\016\n\006config\030\002 \001(" + "\t\022$\n\tdevice_id\030\003 \001(\0132\021.context.DeviceId\"" + "C\n\021OpticalConfigList\022.\n\016opticalconfigs\030\001" + " \003(\0132\026.context.OpticalConfig\"g\n\022OpticalC" + "onfigEvent\022\035\n\005event\030\001 \001(\0132\016.context.Even" + "t\0222\n\020opticalconfig_id\030\002 \001(\0132\030.context.Op" + "ticalConfigId\"_\n\021OpticalEndPointId\022$\n\tde" + "vice_id\030\002 \001(\0132\021.context.DeviceId\022$\n\rendp" + "oint_uuid\030\003 \001(\0132\r.context.Uuid\">\n\017Optica" + "lLinkList\022+\n\roptical_links\030\001 \003(\0132\024.conte" + "xt.OpticalLink\"\304\003\n\022OpticalLinkDetails\022\016\n" + "\006length\030\001 \001(\002\022\020\n\010src_port\030\002 \001(\t\022\020\n\010dst_p" + "ort\030\003 \001(\t\022\027\n\017local_peer_port\030\004 \001(\t\022\030\n\020re" + "mote_peer_port\030\005 \001(\t\022\014\n\004used\030\006 \001(\010\0228\n\007c_" + "slots\030\007 \003(\0132\'.context.OpticalLinkDetails" + ".CSlotsEntry\0228\n\007l_slots\030\010 \003(\0132\'.context." + "OpticalLinkDetails.LSlotsEntry\0228\n\007s_slot" + "s\030\t \003(\0132\'.context.OpticalLinkDetails.SSl" + "otsEntry\032-\n\013CSlotsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" + "value\030\002 \001(\005:\0028\001\032-\n\013LSlotsEntry\022\013\n\003key\030\001 " + "\001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\032-\n\013SSlotsEntry\022\013\n" + "\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:\0028\001\"\243\001\n\013Optica" + "lLink\022\014\n\004name\030\001 \001(\t\0224\n\017optical_details\030\002" + " \001(\0132\033.context.OpticalLinkDetails\022 \n\007lin" + "k_id\030\003 \001(\0132\017.context.LinkId\022.\n\021link_endp" + "oint_ids\030\004 \003(\0132\023.context.EndPointId\"r\n\021S" + "erviceConfigRule\022&\n\nservice_id\030\001 \001(\0132\022.c" + "ontext.ServiceId\0225\n\021configrule_custom\030\002 " + "\001(\0132\032.context.ConfigRule_Custom*j\n\rEvent" + "TypeEnum\022\027\n\023EVENTTYPE_UNDEFINED\020\000\022\024\n\020EVE" + "NTTYPE_CREATE\020\001\022\024\n\020EVENTTYPE_UPDATE\020\002\022\024\n" + "\020EVENTTYPE_REMOVE\020\003*\351\003\n\020DeviceDriverEnum" + "\022\032\n\026DEVICEDRIVER_UNDEFINED\020\000\022\033\n\027DEVICEDR" + "IVER_OPENCONFIG\020\001\022\036\n\032DEVICEDRIVER_TRANSP" + "ORT_API\020\002\022\023\n\017DEVICEDRIVER_P4\020\003\022&\n\"DEVICE" + "DRIVER_IETF_NETWORK_TOPOLOGY\020\004\022\033\n\027DEVICE" + "DRIVER_ONF_TR_532\020\005\022\023\n\017DEVICEDRIVER_XR\020\006" + "\022\033\n\027DEVICEDRIVER_IETF_L2VPN\020\007\022 \n\034DEVICED" + "RIVER_GNMI_OPENCONFIG\020\010\022\034\n\030DEVICEDRIVER_" + "OPTICAL_TFS\020\t\022\032\n\026DEVICEDRIVER_IETF_ACTN\020" + "\n\022\023\n\017DEVICEDRIVER_OC\020\013\022\024\n\020DEVICEDRIVER_Q" + "KD\020\014\022\033\n\027DEVICEDRIVER_IETF_L3VPN\020\r\022\033\n\027DEV" + "ICEDRIVER_IETF_SLICE\020\016\022\024\n\020DEVICEDRIVER_N" + "CE\020\017\022\031\n\025DEVICEDRIVER_SMARTNIC\020\020*\217\001\n\033Devi" + "ceOperationalStatusEnum\022%\n!DEVICEOPERATI" + "ONALSTATUS_UNDEFINED\020\000\022$\n DEVICEOPERATIO" + "NALSTATUS_DISABLED\020\001\022#\n\037DEVICEOPERATIONA" + "LSTATUS_ENABLED\020\002*w\n\014LinkTypeEnum\022\024\n\020LIN" + "KTYPE_UNKNOWN\020\000\022\023\n\017LINKTYPE_COPPER\020\001\022\022\n\016" + "LINKTYPE_FIBER\020\002\022\022\n\016LINKTYPE_RADIO\020\003\022\024\n\020" + "LINKTYPE_VIRTUAL\020\004*\345\001\n\017ServiceTypeEnum\022\027" + "\n\023SERVICETYPE_UNKNOWN\020\000\022\024\n\020SERVICETYPE_L" + "3NM\020\001\022\024\n\020SERVICETYPE_L2NM\020\002\022)\n%SERVICETY" + "PE_TAPI_CONNECTIVITY_SERVICE\020\003\022\022\n\016SERVIC" + "ETYPE_TE\020\004\022\023\n\017SERVICETYPE_E2E\020\005\022$\n SERVI" + "CETYPE_OPTICAL_CONNECTIVITY\020\006\022\023\n\017SERVICE" + "TYPE_QKD\020\007*\304\001\n\021ServiceStatusEnum\022\033\n\027SERV" + "ICESTATUS_UNDEFINED\020\000\022\031\n\025SERVICESTATUS_P" + "LANNED\020\001\022\030\n\024SERVICESTATUS_ACTIVE\020\002\022\032\n\026SE" + "RVICESTATUS_UPDATING\020\003\022!\n\035SERVICESTATUS_" + "PENDING_REMOVAL\020\004\022\036\n\032SERVICESTATUS_SLA_V" + "IOLATED\020\005*\251\001\n\017SliceStatusEnum\022\031\n\025SLICEST" + "ATUS_UNDEFINED\020\000\022\027\n\023SLICESTATUS_PLANNED\020" + "\001\022\024\n\020SLICESTATUS_INIT\020\002\022\026\n\022SLICESTATUS_A" + "CTIVE\020\003\022\026\n\022SLICESTATUS_DEINIT\020\004\022\034\n\030SLICE" + "STATUS_SLA_VIOLATED\020\005*]\n\020ConfigActionEnu" + "m\022\032\n\026CONFIGACTION_UNDEFINED\020\000\022\024\n\020CONFIGA" + "CTION_SET\020\001\022\027\n\023CONFIGACTION_DELETE\020\002*m\n\024" + "ConstraintActionEnum\022\036\n\032CONSTRAINTACTION" + "_UNDEFINED\020\000\022\030\n\024CONSTRAINTACTION_SET\020\001\022\033" + "\n\027CONSTRAINTACTION_DELETE\020\002*\203\002\n\022Isolatio" + "nLevelEnum\022\020\n\014NO_ISOLATION\020\000\022\026\n\022PHYSICAL" + "_ISOLATION\020\001\022\025\n\021LOGICAL_ISOLATION\020\002\022\025\n\021P" + "ROCESS_ISOLATION\020\003\022\035\n\031PHYSICAL_MEMORY_IS" + "OLATION\020\004\022\036\n\032PHYSICAL_NETWORK_ISOLATION\020" + "\005\022\036\n\032VIRTUAL_RESOURCE_ISOLATION\020\006\022\037\n\033NET" + "WORK_FUNCTIONS_ISOLATION\020\007\022\025\n\021SERVICE_IS" + "OLATION\020\0102\202\034\n\016ContextService\022:\n\016ListCont" + "extIds\022\016.context.Empty\032\026.context.Context" + "IdList\"\000\0226\n\014ListContexts\022\016.context.Empty" + "\032\024.context.ContextList\"\000\0224\n\nGetContext\022\022" + ".context.ContextId\032\020.context.Context\"\000\0224" + "\n\nSetContext\022\020.context.Context\032\022.context" + ".ContextId\"\000\0225\n\rRemoveContext\022\022.context." + "ContextId\032\016.context.Empty\"\000\022=\n\020GetContex" + "tEvents\022\016.context.Empty\032\025.context.Contex" + "tEvent\"\0000\001\022@\n\017ListTopologyIds\022\022.context." + "ContextId\032\027.context.TopologyIdList\"\000\022=\n\016" + "ListTopologies\022\022.context.ContextId\032\025.con" + "text.TopologyList\"\000\0227\n\013GetTopology\022\023.con" + "text.TopologyId\032\021.context.Topology\"\000\022E\n\022" + "GetTopologyDetails\022\023.context.TopologyId\032" + "\030.context.TopologyDetails\"\000\0227\n\013SetTopolo" + "gy\022\021.context.Topology\032\023.context.Topology" + "Id\"\000\0227\n\016RemoveTopology\022\023.context.Topolog" + "yId\032\016.context.Empty\"\000\022?\n\021GetTopologyEven" + "ts\022\016.context.Empty\032\026.context.TopologyEve" + "nt\"\0000\001\0228\n\rListDeviceIds\022\016.context.Empty\032" + "\025.context.DeviceIdList\"\000\0224\n\013ListDevices\022" + "\016.context.Empty\032\023.context.DeviceList\"\000\0221" + "\n\tGetDevice\022\021.context.DeviceId\032\017.context" + ".Device\"\000\0221\n\tSetDevice\022\017.context.Device\032" + "\021.context.DeviceId\"\000\0223\n\014RemoveDevice\022\021.c" + "ontext.DeviceId\032\016.context.Empty\"\000\022;\n\017Get" + "DeviceEvents\022\016.context.Empty\032\024.context.D" + "eviceEvent\"\0000\001\022<\n\014SelectDevice\022\025.context" + ".DeviceFilter\032\023.context.DeviceList\"\000\022I\n\021" + "ListEndPointNames\022\027.context.EndPointIdLi" + "st\032\031.context.EndPointNameList\"\000\0224\n\013ListL" + "inkIds\022\016.context.Empty\032\023.context.LinkIdL" + "ist\"\000\0220\n\tListLinks\022\016.context.Empty\032\021.con" + "text.LinkList\"\000\022+\n\007GetLink\022\017.context.Lin" + "kId\032\r.context.Link\"\000\022+\n\007SetLink\022\r.contex" + "t.Link\032\017.context.LinkId\"\000\022/\n\nRemoveLink\022" + "\017.context.LinkId\032\016.context.Empty\"\000\0227\n\rGe" + "tLinkEvents\022\016.context.Empty\032\022.context.Li" + "nkEvent\"\0000\001\022>\n\016ListServiceIds\022\022.context." + "ContextId\032\026.context.ServiceIdList\"\000\022:\n\014L" + "istServices\022\022.context.ContextId\032\024.contex" + "t.ServiceList\"\000\0224\n\nGetService\022\022.context." + "ServiceId\032\020.context.Service\"\000\0224\n\nSetServ" + "ice\022\020.context.Service\032\022.context.ServiceI" + "d\"\000\0226\n\014UnsetService\022\020.context.Service\032\022." + "context.ServiceId\"\000\0225\n\rRemoveService\022\022.c" + "ontext.ServiceId\032\016.context.Empty\"\000\022=\n\020Ge" + "tServiceEvents\022\016.context.Empty\032\025.context" + ".ServiceEvent\"\0000\001\022?\n\rSelectService\022\026.con" + "text.ServiceFilter\032\024.context.ServiceList" + "\"\000\022:\n\014ListSliceIds\022\022.context.ContextId\032\024" + ".context.SliceIdList\"\000\0226\n\nListSlices\022\022.c" + "ontext.ContextId\032\022.context.SliceList\"\000\022." + "\n\010GetSlice\022\020.context.SliceId\032\016.context.S" + "lice\"\000\022.\n\010SetSlice\022\016.context.Slice\032\020.con" + "text.SliceId\"\000\0220\n\nUnsetSlice\022\016.context.S" + "lice\032\020.context.SliceId\"\000\0221\n\013RemoveSlice\022" + "\020.context.SliceId\032\016.context.Empty\"\000\0229\n\016G" + "etSliceEvents\022\016.context.Empty\032\023.context." + "SliceEvent\"\0000\001\0229\n\013SelectSlice\022\024.context." + "SliceFilter\032\022.context.SliceList\"\000\022D\n\021Lis" + "tConnectionIds\022\022.context.ServiceId\032\031.con" + "text.ConnectionIdList\"\000\022@\n\017ListConnectio" + "ns\022\022.context.ServiceId\032\027.context.Connect" + "ionList\"\000\022=\n\rGetConnection\022\025.context.Con" + "nectionId\032\023.context.Connection\"\000\022=\n\rSetC" + "onnection\022\023.context.Connection\032\025.context" + ".ConnectionId\"\000\022;\n\020RemoveConnection\022\025.co" + "ntext.ConnectionId\032\016.context.Empty\"\000\022C\n\023" + "GetConnectionEvents\022\016.context.Empty\032\030.co" + "ntext.ConnectionEvent\"\0000\001\022@\n\020GetOpticalC" + "onfig\022\016.context.Empty\032\032.context.OpticalC" + "onfigList\"\000\022F\n\020SetOpticalConfig\022\026.contex" + "t.OpticalConfig\032\030.context.OpticalConfigI" + "d\"\000\022I\n\023UpdateOpticalConfig\022\026.context.Opt" + "icalConfig\032\030.context.OpticalConfigId\"\000\022I" + "\n\023SelectOpticalConfig\022\030.context.OpticalC" + "onfigId\032\026.context.OpticalConfig\"\000\022A\n\023Del" + "eteOpticalConfig\022\030.context.OpticalConfig" + "Id\032\016.context.Empty\"\000\022@\n\024DeleteOpticalCha" + "nnel\022\026.context.OpticalConfig\032\016.context.E" + "mpty\"\000\0228\n\016SetOpticalLink\022\024.context.Optic" + "alLink\032\016.context.Empty\"\000\0229\n\016GetOpticalLi" + "nk\022\017.context.LinkId\032\024.context.OpticalLin" + "k\"\000\0226\n\021DeleteOpticalLink\022\017.context.LinkI" + "d\032\016.context.Empty\"\000\022@\n\022GetOpticalLinkLis" + "t\022\016.context.Empty\032\030.context.OpticalLinkL" + "ist\"\000\022G\n\027DeleteServiceConfigRule\022\032.conte" + "xt.ServiceConfigRule\032\016.context.Empty\"\000b\006" + "proto3" }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] { com.google.protobuf.AnyProto.getDescriptor(), acl.Acl.getDescriptor(), kpi_sample_types.KpiSampleTypes.getDescriptor() }); internal_static_context_Empty_descriptor = getDescriptor().getMessageTypes().get(0); internal_static_context_Empty_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Empty_descriptor, new java.lang.String[] {}); internal_static_context_Uuid_descriptor = getDescriptor().getMessageTypes().get(1); @@ -79774,9 +81163,9 @@ public final class ContextOuterClass { internal_static_context_TopologyId_descriptor = getDescriptor().getMessageTypes().get(9); internal_static_context_TopologyId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_TopologyId_descriptor, new java.lang.String[] { "ContextId", "TopologyUuid" }); internal_static_context_Topology_descriptor = getDescriptor().getMessageTypes().get(10); - internal_static_context_Topology_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Topology_descriptor, new java.lang.String[] { "TopologyId", "Name", "DeviceIds", "LinkIds" }); + internal_static_context_Topology_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Topology_descriptor, new java.lang.String[] { "TopologyId", "Name", "DeviceIds", "LinkIds", "OpticalLinkIds" }); internal_static_context_TopologyDetails_descriptor = getDescriptor().getMessageTypes().get(11); - internal_static_context_TopologyDetails_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_TopologyDetails_descriptor, new java.lang.String[] { "TopologyId", "Name", "Devices", "Links" }); + internal_static_context_TopologyDetails_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_TopologyDetails_descriptor, new java.lang.String[] { "TopologyId", "Name", "Devices", "Links", "OpticalLinks" }); internal_static_context_TopologyIdList_descriptor = getDescriptor().getMessageTypes().get(12); internal_static_context_TopologyIdList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_TopologyIdList_descriptor, new java.lang.String[] { "TopologyIds" }); internal_static_context_TopologyList_descriptor = getDescriptor().getMessageTypes().get(13); @@ -79806,7 +81195,7 @@ public final class ContextOuterClass { internal_static_context_LinkAttributes_descriptor = getDescriptor().getMessageTypes().get(24); internal_static_context_LinkAttributes_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_LinkAttributes_descriptor, new java.lang.String[] { "TotalCapacityGbps", "UsedCapacityGbps" }); internal_static_context_Link_descriptor = getDescriptor().getMessageTypes().get(25); - internal_static_context_Link_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Link_descriptor, new java.lang.String[] { "LinkId", "Name", "LinkEndpointIds", "Attributes" }); + internal_static_context_Link_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Link_descriptor, new java.lang.String[] { "LinkId", "Name", "LinkType", "LinkEndpointIds", "Attributes" }); internal_static_context_LinkIdList_descriptor = getDescriptor().getMessageTypes().get(26); internal_static_context_LinkIdList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_LinkIdList_descriptor, new java.lang.String[] { "LinkIds" }); internal_static_context_LinkList_descriptor = getDescriptor().getMessageTypes().get(27); @@ -79870,7 +81259,9 @@ public final class ContextOuterClass { internal_static_context_EndPointId_descriptor = getDescriptor().getMessageTypes().get(56); internal_static_context_EndPointId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_EndPointId_descriptor, new java.lang.String[] { "TopologyId", "DeviceId", "EndpointUuid" }); internal_static_context_EndPoint_descriptor = getDescriptor().getMessageTypes().get(57); - internal_static_context_EndPoint_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_EndPoint_descriptor, new java.lang.String[] { "EndpointId", "Name", "EndpointType", "KpiSampleTypes", "EndpointLocation" }); + internal_static_context_EndPoint_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_EndPoint_descriptor, new java.lang.String[] { "EndpointId", "Name", "EndpointType", "KpiSampleTypes", "EndpointLocation", "Capabilities" }); + internal_static_context_EndPoint_CapabilitiesEntry_descriptor = internal_static_context_EndPoint_descriptor.getNestedTypes().get(0); + internal_static_context_EndPoint_CapabilitiesEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_EndPoint_CapabilitiesEntry_descriptor, new java.lang.String[] { "Key", "Value" }); internal_static_context_EndPointName_descriptor = getDescriptor().getMessageTypes().get(58); internal_static_context_EndPointName_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_EndPointName_descriptor, new java.lang.String[] { "EndpointId", "DeviceName", "EndpointName", "EndpointType" }); internal_static_context_EndPointIdList_descriptor = getDescriptor().getMessageTypes().get(59); @@ -79890,7 +81281,7 @@ public final class ContextOuterClass { internal_static_context_GPS_Position_descriptor = getDescriptor().getMessageTypes().get(66); internal_static_context_GPS_Position_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_GPS_Position_descriptor, new java.lang.String[] { "Latitude", "Longitude" }); internal_static_context_Location_descriptor = getDescriptor().getMessageTypes().get(67); - internal_static_context_Location_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Location_descriptor, new java.lang.String[] { "Region", "GpsPosition", "Location" }); + internal_static_context_Location_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Location_descriptor, new java.lang.String[] { "Region", "GpsPosition", "Interface", "CircuitPack", "Location" }); internal_static_context_Constraint_EndPointLocation_descriptor = getDescriptor().getMessageTypes().get(68); internal_static_context_Constraint_EndPointLocation_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_EndPointLocation_descriptor, new java.lang.String[] { "EndpointId", "Location" }); internal_static_context_Constraint_EndPointPriority_descriptor = getDescriptor().getMessageTypes().get(69); @@ -79905,28 +81296,41 @@ public final class ContextOuterClass { internal_static_context_Constraint_SLA_Isolation_level_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_SLA_Isolation_level_descriptor, new java.lang.String[] { "IsolationLevel" }); internal_static_context_Constraint_Exclusions_descriptor = getDescriptor().getMessageTypes().get(74); internal_static_context_Constraint_Exclusions_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_Exclusions_descriptor, new java.lang.String[] { "IsPermanent", "DeviceIds", "EndpointIds", "LinkIds" }); - internal_static_context_Constraint_descriptor = getDescriptor().getMessageTypes().get(75); - internal_static_context_Constraint_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_descriptor, new java.lang.String[] { "Action", "Custom", "Schedule", "EndpointLocation", "EndpointPriority", "SlaCapacity", "SlaLatency", "SlaAvailability", "SlaIsolation", "Exclusions", "Constraint" }); - internal_static_context_TeraFlowController_descriptor = getDescriptor().getMessageTypes().get(76); + internal_static_context_QoSProfileId_descriptor = getDescriptor().getMessageTypes().get(75); + internal_static_context_QoSProfileId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_QoSProfileId_descriptor, new java.lang.String[] { "QosProfileId" }); + internal_static_context_Constraint_QoSProfile_descriptor = getDescriptor().getMessageTypes().get(76); + internal_static_context_Constraint_QoSProfile_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_QoSProfile_descriptor, new java.lang.String[] { "QosProfileId", "QosProfileName" }); + internal_static_context_Constraint_descriptor = getDescriptor().getMessageTypes().get(77); + internal_static_context_Constraint_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Constraint_descriptor, new java.lang.String[] { "Action", "Custom", "Schedule", "EndpointLocation", "EndpointPriority", "SlaCapacity", "SlaLatency", "SlaAvailability", "SlaIsolation", "Exclusions", "QosProfile", "Constraint" }); + internal_static_context_TeraFlowController_descriptor = getDescriptor().getMessageTypes().get(78); internal_static_context_TeraFlowController_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_TeraFlowController_descriptor, new java.lang.String[] { "ContextId", "IpAddress", "Port" }); - internal_static_context_AuthenticationResult_descriptor = getDescriptor().getMessageTypes().get(77); + internal_static_context_AuthenticationResult_descriptor = getDescriptor().getMessageTypes().get(79); internal_static_context_AuthenticationResult_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_AuthenticationResult_descriptor, new java.lang.String[] { "ContextId", "Authenticated" }); - internal_static_context_OpticalConfigId_descriptor = getDescriptor().getMessageTypes().get(78); + internal_static_context_OpticalConfigId_descriptor = getDescriptor().getMessageTypes().get(80); internal_static_context_OpticalConfigId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalConfigId_descriptor, new java.lang.String[] { "OpticalconfigUuid" }); - internal_static_context_OpticalConfig_descriptor = getDescriptor().getMessageTypes().get(79); - internal_static_context_OpticalConfig_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalConfig_descriptor, new java.lang.String[] { "OpticalconfigId", "Config" }); - internal_static_context_OpticalConfigList_descriptor = getDescriptor().getMessageTypes().get(80); + internal_static_context_OpticalConfig_descriptor = getDescriptor().getMessageTypes().get(81); + internal_static_context_OpticalConfig_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalConfig_descriptor, new java.lang.String[] { "OpticalconfigId", "Config", "DeviceId" }); + internal_static_context_OpticalConfigList_descriptor = getDescriptor().getMessageTypes().get(82); internal_static_context_OpticalConfigList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalConfigList_descriptor, new java.lang.String[] { "Opticalconfigs" }); - internal_static_context_OpticalLinkId_descriptor = getDescriptor().getMessageTypes().get(81); - internal_static_context_OpticalLinkId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkId_descriptor, new java.lang.String[] { "OpticalLinkUuid" }); - internal_static_context_FiberId_descriptor = getDescriptor().getMessageTypes().get(82); - internal_static_context_FiberId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_FiberId_descriptor, new java.lang.String[] { "FiberUuid" }); - internal_static_context_Fiber_descriptor = getDescriptor().getMessageTypes().get(83); - internal_static_context_Fiber_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_Fiber_descriptor, new java.lang.String[] { "ID", "SrcPort", "DstPort", "LocalPeerPort", "RemotePeerPort", "CSlots", "LSlots", "SSlots", "Length", "Used", "FiberUuid" }); - internal_static_context_OpticalLinkDetails_descriptor = getDescriptor().getMessageTypes().get(84); - internal_static_context_OpticalLinkDetails_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkDetails_descriptor, new java.lang.String[] { "Length", "Source", "Target", "Fibers" }); - internal_static_context_OpticalLink_descriptor = getDescriptor().getMessageTypes().get(85); - internal_static_context_OpticalLink_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLink_descriptor, new java.lang.String[] { "Name", "Details", "OpticalLinkUuid" }); + internal_static_context_OpticalConfigEvent_descriptor = getDescriptor().getMessageTypes().get(83); + internal_static_context_OpticalConfigEvent_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalConfigEvent_descriptor, new java.lang.String[] { "Event", "OpticalconfigId" }); + internal_static_context_OpticalEndPointId_descriptor = getDescriptor().getMessageTypes().get(84); + internal_static_context_OpticalEndPointId_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalEndPointId_descriptor, new java.lang.String[] { "DeviceId", "EndpointUuid" }); + internal_static_context_OpticalLinkList_descriptor = getDescriptor().getMessageTypes().get(85); + internal_static_context_OpticalLinkList_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkList_descriptor, new java.lang.String[] { "OpticalLinks" }); + internal_static_context_OpticalLinkDetails_descriptor = getDescriptor().getMessageTypes().get(86); + internal_static_context_OpticalLinkDetails_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkDetails_descriptor, new java.lang.String[] { "Length", "SrcPort", "DstPort", "LocalPeerPort", "RemotePeerPort", "Used", "CSlots", "LSlots", "SSlots" }); + internal_static_context_OpticalLinkDetails_CSlotsEntry_descriptor = internal_static_context_OpticalLinkDetails_descriptor.getNestedTypes().get(0); + internal_static_context_OpticalLinkDetails_CSlotsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkDetails_CSlotsEntry_descriptor, new java.lang.String[] { "Key", "Value" }); + internal_static_context_OpticalLinkDetails_LSlotsEntry_descriptor = internal_static_context_OpticalLinkDetails_descriptor.getNestedTypes().get(1); + internal_static_context_OpticalLinkDetails_LSlotsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkDetails_LSlotsEntry_descriptor, new java.lang.String[] { "Key", "Value" }); + internal_static_context_OpticalLinkDetails_SSlotsEntry_descriptor = internal_static_context_OpticalLinkDetails_descriptor.getNestedTypes().get(2); + internal_static_context_OpticalLinkDetails_SSlotsEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLinkDetails_SSlotsEntry_descriptor, new java.lang.String[] { "Key", "Value" }); + internal_static_context_OpticalLink_descriptor = getDescriptor().getMessageTypes().get(87); + internal_static_context_OpticalLink_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_OpticalLink_descriptor, new java.lang.String[] { "Name", "OpticalDetails", "LinkId", "LinkEndpointIds" }); + internal_static_context_ServiceConfigRule_descriptor = getDescriptor().getMessageTypes().get(88); + internal_static_context_ServiceConfigRule_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(internal_static_context_ServiceConfigRule_descriptor, new java.lang.String[] { "ServiceId", "ConfigruleCustom" }); + com.google.protobuf.AnyProto.getDescriptor(); acl.Acl.getDescriptor(); kpi_sample_types.KpiSampleTypes.getDescriptor(); } diff --git a/src/ztp/target/generated-sources/grpc/context/ContextService.java b/src/ztp/target/generated-sources/grpc/context/ContextService.java index 32544e6be..d953e779f 100644 --- a/src/ztp/target/generated-sources/grpc/context/ContextService.java +++ b/src/ztp/target/generated-sources/grpc/context/ContextService.java @@ -98,13 +98,23 @@ public interface ContextService extends MutinyService { io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> setOpticalConfig(context.ContextOuterClass.OpticalConfig request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request); + + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request); - io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request); + + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request); + + io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request); - io.smallrye.mutiny.Uni<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request); + io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request); io.smallrye.mutiny.Multi<context.ContextOuterClass.ContextEvent> getContextEvents(context.ContextOuterClass.Empty request); diff --git a/src/ztp/target/generated-sources/grpc/context/ContextServiceBean.java b/src/ztp/target/generated-sources/grpc/context/ContextServiceBean.java index d3c1b6285..3809f8afb 100644 --- a/src/ztp/target/generated-sources/grpc/context/ContextServiceBean.java +++ b/src/ztp/target/generated-sources/grpc/context/ContextServiceBean.java @@ -409,6 +409,15 @@ public class ContextServiceBean extends MutinyContextServiceGrpc.ContextServiceI } } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + try { + return delegate.updateOpticalConfig(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + @Override public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { try { @@ -418,6 +427,24 @@ public class ContextServiceBean extends MutinyContextServiceGrpc.ContextServiceI } } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + try { + return delegate.deleteOpticalConfig(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + try { + return delegate.deleteOpticalChannel(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + @Override public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request) { try { @@ -428,7 +455,7 @@ public class ContextServiceBean extends MutinyContextServiceGrpc.ContextServiceI } @Override - public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request) { try { return delegate.getOpticalLink(request); } catch (UnsupportedOperationException e) { @@ -437,9 +464,27 @@ public class ContextServiceBean extends MutinyContextServiceGrpc.ContextServiceI } @Override - public io.smallrye.mutiny.Uni<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request) { + try { + return delegate.deleteOpticalLink(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request) { + try { + return delegate.getOpticalLinkList(request); + } catch (UnsupportedOperationException e) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { try { - return delegate.getFiber(request); + return delegate.deleteServiceConfigRule(request); } catch (UnsupportedOperationException e) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } diff --git a/src/ztp/target/generated-sources/grpc/context/ContextServiceClient.java b/src/ztp/target/generated-sources/grpc/context/ContextServiceClient.java index b1773578d..00e56c4f4 100644 --- a/src/ztp/target/generated-sources/grpc/context/ContextServiceClient.java +++ b/src/ztp/target/generated-sources/grpc/context/ContextServiceClient.java @@ -245,24 +245,49 @@ public class ContextServiceClient implements ContextService, MutinyClient<Mutiny return stub.setOpticalConfig(request); } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + return stub.updateOpticalConfig(request); + } + @Override public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { return stub.selectOpticalConfig(request); } + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + return stub.deleteOpticalConfig(request); + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + return stub.deleteOpticalChannel(request); + } + @Override public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request) { return stub.setOpticalLink(request); } @Override - public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request) { return stub.getOpticalLink(request); } @Override - public io.smallrye.mutiny.Uni<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request) { - return stub.getFiber(request); + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request) { + return stub.deleteOpticalLink(request); + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request) { + return stub.getOpticalLinkList(request); + } + + @Override + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { + return stub.deleteServiceConfigRule(request); } @Override diff --git a/src/ztp/target/generated-sources/grpc/context/ContextServiceGrpc.java b/src/ztp/target/generated-sources/grpc/context/ContextServiceGrpc.java index a03f7e949..73a440e7a 100644 --- a/src/ztp/target/generated-sources/grpc/context/ContextServiceGrpc.java +++ b/src/ztp/target/generated-sources/grpc/context/ContextServiceGrpc.java @@ -4,7 +4,8 @@ import static io.grpc.MethodDescriptor.generateFullMethodName; /** */ -@io.quarkus.grpc.common.Generated(value = "by gRPC proto compiler (version 1.38.1)", comments = "Source: context.proto") +@io.quarkus.grpc.common.Generated(value = "by gRPC proto compiler (version 1.55.1)", comments = "Source: context.proto") +@io.grpc.stub.annotations.GrpcGenerated public final class ContextServiceGrpc { private ContextServiceGrpc() { @@ -778,6 +779,21 @@ public final class ContextServiceGrpc { return getSetOpticalConfigMethod; } + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId> getUpdateOpticalConfigMethod; + + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "UpdateOpticalConfig", requestType = context.ContextOuterClass.OpticalConfig.class, responseType = context.ContextOuterClass.OpticalConfigId.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId> getUpdateOpticalConfigMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId> getUpdateOpticalConfigMethod; + if ((getUpdateOpticalConfigMethod = ContextServiceGrpc.getUpdateOpticalConfigMethod) == null) { + synchronized (ContextServiceGrpc.class) { + if ((getUpdateOpticalConfigMethod = ContextServiceGrpc.getUpdateOpticalConfigMethod) == null) { + ContextServiceGrpc.getUpdateOpticalConfigMethod = getUpdateOpticalConfigMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "UpdateOpticalConfig")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalConfig.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalConfigId.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("UpdateOpticalConfig")).build(); + } + } + } + return getUpdateOpticalConfigMethod; + } + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfig> getSelectOpticalConfigMethod; @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "SelectOpticalConfig", requestType = context.ContextOuterClass.OpticalConfigId.class, responseType = context.ContextOuterClass.OpticalConfig.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) @@ -793,6 +809,36 @@ public final class ContextServiceGrpc { return getSelectOpticalConfigMethod; } + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty> getDeleteOpticalConfigMethod; + + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "DeleteOpticalConfig", requestType = context.ContextOuterClass.OpticalConfigId.class, responseType = context.ContextOuterClass.Empty.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty> getDeleteOpticalConfigMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty> getDeleteOpticalConfigMethod; + if ((getDeleteOpticalConfigMethod = ContextServiceGrpc.getDeleteOpticalConfigMethod) == null) { + synchronized (ContextServiceGrpc.class) { + if ((getDeleteOpticalConfigMethod = ContextServiceGrpc.getDeleteOpticalConfigMethod) == null) { + ContextServiceGrpc.getDeleteOpticalConfigMethod = getDeleteOpticalConfigMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteOpticalConfig")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalConfigId.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Empty.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("DeleteOpticalConfig")).build(); + } + } + } + return getDeleteOpticalConfigMethod; + } + + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty> getDeleteOpticalChannelMethod; + + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "DeleteOpticalChannel", requestType = context.ContextOuterClass.OpticalConfig.class, responseType = context.ContextOuterClass.Empty.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty> getDeleteOpticalChannelMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty> getDeleteOpticalChannelMethod; + if ((getDeleteOpticalChannelMethod = ContextServiceGrpc.getDeleteOpticalChannelMethod) == null) { + synchronized (ContextServiceGrpc.class) { + if ((getDeleteOpticalChannelMethod = ContextServiceGrpc.getDeleteOpticalChannelMethod) == null) { + ContextServiceGrpc.getDeleteOpticalChannelMethod = getDeleteOpticalChannelMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteOpticalChannel")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalConfig.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Empty.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("DeleteOpticalChannel")).build(); + } + } + } + return getDeleteOpticalChannelMethod; + } + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.Empty> getSetOpticalLinkMethod; @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "SetOpticalLink", requestType = context.ContextOuterClass.OpticalLink.class, responseType = context.ContextOuterClass.Empty.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) @@ -808,34 +854,64 @@ public final class ContextServiceGrpc { return getSetOpticalLinkMethod; } - private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod; + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod; - @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "GetOpticalLink", requestType = context.ContextOuterClass.OpticalLinkId.class, responseType = context.ContextOuterClass.OpticalLink.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) - public static io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod() { - io.grpc.MethodDescriptor<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod; + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "GetOpticalLink", requestType = context.ContextOuterClass.LinkId.class, responseType = context.ContextOuterClass.OpticalLink.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink> getGetOpticalLinkMethod; if ((getGetOpticalLinkMethod = ContextServiceGrpc.getGetOpticalLinkMethod) == null) { synchronized (ContextServiceGrpc.class) { if ((getGetOpticalLinkMethod = ContextServiceGrpc.getGetOpticalLinkMethod) == null) { - ContextServiceGrpc.getGetOpticalLinkMethod = getGetOpticalLinkMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetOpticalLink")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalLinkId.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalLink.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("GetOpticalLink")).build(); + ContextServiceGrpc.getGetOpticalLinkMethod = getGetOpticalLinkMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetOpticalLink")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.LinkId.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalLink.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("GetOpticalLink")).build(); } } } return getGetOpticalLinkMethod; } - private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber> getGetFiberMethod; + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty> getDeleteOpticalLinkMethod; + + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "DeleteOpticalLink", requestType = context.ContextOuterClass.LinkId.class, responseType = context.ContextOuterClass.Empty.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty> getDeleteOpticalLinkMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty> getDeleteOpticalLinkMethod; + if ((getDeleteOpticalLinkMethod = ContextServiceGrpc.getDeleteOpticalLinkMethod) == null) { + synchronized (ContextServiceGrpc.class) { + if ((getDeleteOpticalLinkMethod = ContextServiceGrpc.getDeleteOpticalLinkMethod) == null) { + ContextServiceGrpc.getDeleteOpticalLinkMethod = getDeleteOpticalLinkMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteOpticalLink")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.LinkId.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Empty.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("DeleteOpticalLink")).build(); + } + } + } + return getDeleteOpticalLinkMethod; + } + + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList> getGetOpticalLinkListMethod; + + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "GetOpticalLinkList", requestType = context.ContextOuterClass.Empty.class, responseType = context.ContextOuterClass.OpticalLinkList.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList> getGetOpticalLinkListMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList> getGetOpticalLinkListMethod; + if ((getGetOpticalLinkListMethod = ContextServiceGrpc.getGetOpticalLinkListMethod) == null) { + synchronized (ContextServiceGrpc.class) { + if ((getGetOpticalLinkListMethod = ContextServiceGrpc.getGetOpticalLinkListMethod) == null) { + ContextServiceGrpc.getGetOpticalLinkListMethod = getGetOpticalLinkListMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetOpticalLinkList")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Empty.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.OpticalLinkList.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("GetOpticalLinkList")).build(); + } + } + } + return getGetOpticalLinkListMethod; + } + + private static volatile io.grpc.MethodDescriptor<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty> getDeleteServiceConfigRuleMethod; - @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "GetFiber", requestType = context.ContextOuterClass.FiberId.class, responseType = context.ContextOuterClass.Fiber.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) - public static io.grpc.MethodDescriptor<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber> getGetFiberMethod() { - io.grpc.MethodDescriptor<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber> getGetFiberMethod; - if ((getGetFiberMethod = ContextServiceGrpc.getGetFiberMethod) == null) { + @io.grpc.stub.annotations.RpcMethod(fullMethodName = SERVICE_NAME + '/' + "DeleteServiceConfigRule", requestType = context.ContextOuterClass.ServiceConfigRule.class, responseType = context.ContextOuterClass.Empty.class, methodType = io.grpc.MethodDescriptor.MethodType.UNARY) + public static io.grpc.MethodDescriptor<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty> getDeleteServiceConfigRuleMethod() { + io.grpc.MethodDescriptor<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty> getDeleteServiceConfigRuleMethod; + if ((getDeleteServiceConfigRuleMethod = ContextServiceGrpc.getDeleteServiceConfigRuleMethod) == null) { synchronized (ContextServiceGrpc.class) { - if ((getGetFiberMethod = ContextServiceGrpc.getGetFiberMethod) == null) { - ContextServiceGrpc.getGetFiberMethod = getGetFiberMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "GetFiber")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.FiberId.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Fiber.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("GetFiber")).build(); + if ((getDeleteServiceConfigRuleMethod = ContextServiceGrpc.getDeleteServiceConfigRuleMethod) == null) { + ContextServiceGrpc.getDeleteServiceConfigRuleMethod = getDeleteServiceConfigRuleMethod = io.grpc.MethodDescriptor.<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty>newBuilder().setType(io.grpc.MethodDescriptor.MethodType.UNARY).setFullMethodName(generateFullMethodName(SERVICE_NAME, "DeleteServiceConfigRule")).setSampledToLocalTracing(true).setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.ServiceConfigRule.getDefaultInstance())).setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(context.ContextOuterClass.Empty.getDefaultInstance())).setSchemaDescriptor(new ContextServiceMethodDescriptorSupplier("DeleteServiceConfigRule")).build(); } } } - return getGetFiberMethod; + return getDeleteServiceConfigRuleMethod; } /** @@ -882,299 +958,299 @@ public final class ContextServiceGrpc { /** */ - public static abstract class ContextServiceImplBase implements io.grpc.BindableService { + public interface AsyncService { /** */ - public void listContextIds(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ContextIdList> responseObserver) { + default void listContextIds(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ContextIdList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListContextIdsMethod(), responseObserver); } /** */ - public void listContexts(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ContextList> responseObserver) { + default void listContexts(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ContextList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListContextsMethod(), responseObserver); } /** */ - public void getContext(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Context> responseObserver) { + default void getContext(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Context> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetContextMethod(), responseObserver); } /** */ - public void setContext(context.ContextOuterClass.Context request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ContextId> responseObserver) { + default void setContext(context.ContextOuterClass.Context request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ContextId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetContextMethod(), responseObserver); } /** */ - public void removeContext(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + default void removeContext(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRemoveContextMethod(), responseObserver); } /** */ - public void getContextEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ContextEvent> responseObserver) { + default void getContextEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ContextEvent> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetContextEventsMethod(), responseObserver); } /** */ - public void listTopologyIds(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.TopologyIdList> responseObserver) { + default void listTopologyIds(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.TopologyIdList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListTopologyIdsMethod(), responseObserver); } /** */ - public void listTopologies(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.TopologyList> responseObserver) { + default void listTopologies(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.TopologyList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListTopologiesMethod(), responseObserver); } /** */ - public void getTopology(context.ContextOuterClass.TopologyId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Topology> responseObserver) { + default void getTopology(context.ContextOuterClass.TopologyId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Topology> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetTopologyMethod(), responseObserver); } /** */ - public void getTopologyDetails(context.ContextOuterClass.TopologyId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.TopologyDetails> responseObserver) { + default void getTopologyDetails(context.ContextOuterClass.TopologyId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.TopologyDetails> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetTopologyDetailsMethod(), responseObserver); } /** */ - public void setTopology(context.ContextOuterClass.Topology request, io.grpc.stub.StreamObserver<context.ContextOuterClass.TopologyId> responseObserver) { + default void setTopology(context.ContextOuterClass.Topology request, io.grpc.stub.StreamObserver<context.ContextOuterClass.TopologyId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetTopologyMethod(), responseObserver); } /** */ - public void removeTopology(context.ContextOuterClass.TopologyId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + default void removeTopology(context.ContextOuterClass.TopologyId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRemoveTopologyMethod(), responseObserver); } /** */ - public void getTopologyEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.TopologyEvent> responseObserver) { + default void getTopologyEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.TopologyEvent> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetTopologyEventsMethod(), responseObserver); } /** */ - public void listDeviceIds(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceIdList> responseObserver) { + default void listDeviceIds(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceIdList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListDeviceIdsMethod(), responseObserver); } /** */ - public void listDevices(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceList> responseObserver) { + default void listDevices(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListDevicesMethod(), responseObserver); } /** */ - public void getDevice(context.ContextOuterClass.DeviceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Device> responseObserver) { + default void getDevice(context.ContextOuterClass.DeviceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Device> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetDeviceMethod(), responseObserver); } /** */ - public void setDevice(context.ContextOuterClass.Device request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceId> responseObserver) { + default void setDevice(context.ContextOuterClass.Device request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetDeviceMethod(), responseObserver); } /** */ - public void removeDevice(context.ContextOuterClass.DeviceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + default void removeDevice(context.ContextOuterClass.DeviceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRemoveDeviceMethod(), responseObserver); } /** */ - public void getDeviceEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceEvent> responseObserver) { + default void getDeviceEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceEvent> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetDeviceEventsMethod(), responseObserver); } /** */ - public void selectDevice(context.ContextOuterClass.DeviceFilter request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceList> responseObserver) { + default void selectDevice(context.ContextOuterClass.DeviceFilter request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSelectDeviceMethod(), responseObserver); } /** */ - public void listEndPointNames(context.ContextOuterClass.EndPointIdList request, io.grpc.stub.StreamObserver<context.ContextOuterClass.EndPointNameList> responseObserver) { + default void listEndPointNames(context.ContextOuterClass.EndPointIdList request, io.grpc.stub.StreamObserver<context.ContextOuterClass.EndPointNameList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListEndPointNamesMethod(), responseObserver); } /** */ - public void listLinkIds(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.LinkIdList> responseObserver) { + default void listLinkIds(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.LinkIdList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListLinkIdsMethod(), responseObserver); } /** */ - public void listLinks(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.LinkList> responseObserver) { + default void listLinks(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.LinkList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListLinksMethod(), responseObserver); } /** */ - public void getLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Link> responseObserver) { + default void getLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Link> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetLinkMethod(), responseObserver); } /** */ - public void setLink(context.ContextOuterClass.Link request, io.grpc.stub.StreamObserver<context.ContextOuterClass.LinkId> responseObserver) { + default void setLink(context.ContextOuterClass.Link request, io.grpc.stub.StreamObserver<context.ContextOuterClass.LinkId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetLinkMethod(), responseObserver); } /** */ - public void removeLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + default void removeLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRemoveLinkMethod(), responseObserver); } /** */ - public void getLinkEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.LinkEvent> responseObserver) { + default void getLinkEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.LinkEvent> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetLinkEventsMethod(), responseObserver); } /** */ - public void listServiceIds(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceIdList> responseObserver) { + default void listServiceIds(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceIdList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListServiceIdsMethod(), responseObserver); } /** */ - public void listServices(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceList> responseObserver) { + default void listServices(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListServicesMethod(), responseObserver); } /** */ - public void getService(context.ContextOuterClass.ServiceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Service> responseObserver) { + default void getService(context.ContextOuterClass.ServiceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Service> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetServiceMethod(), responseObserver); } /** */ - public void setService(context.ContextOuterClass.Service request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId> responseObserver) { + default void setService(context.ContextOuterClass.Service request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetServiceMethod(), responseObserver); } /** */ - public void unsetService(context.ContextOuterClass.Service request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId> responseObserver) { + default void unsetService(context.ContextOuterClass.Service request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUnsetServiceMethod(), responseObserver); } /** */ - public void removeService(context.ContextOuterClass.ServiceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + default void removeService(context.ContextOuterClass.ServiceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRemoveServiceMethod(), responseObserver); } /** */ - public void getServiceEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceEvent> responseObserver) { + default void getServiceEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceEvent> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetServiceEventsMethod(), responseObserver); } /** */ - public void selectService(context.ContextOuterClass.ServiceFilter request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceList> responseObserver) { + default void selectService(context.ContextOuterClass.ServiceFilter request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ServiceList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSelectServiceMethod(), responseObserver); } /** */ - public void listSliceIds(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceIdList> responseObserver) { + default void listSliceIds(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceIdList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListSliceIdsMethod(), responseObserver); } /** */ - public void listSlices(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceList> responseObserver) { + default void listSlices(context.ContextOuterClass.ContextId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListSlicesMethod(), responseObserver); } /** */ - public void getSlice(context.ContextOuterClass.SliceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Slice> responseObserver) { + default void getSlice(context.ContextOuterClass.SliceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Slice> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetSliceMethod(), responseObserver); } /** */ - public void setSlice(context.ContextOuterClass.Slice request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceId> responseObserver) { + default void setSlice(context.ContextOuterClass.Slice request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetSliceMethod(), responseObserver); } /** */ - public void unsetSlice(context.ContextOuterClass.Slice request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceId> responseObserver) { + default void unsetSlice(context.ContextOuterClass.Slice request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUnsetSliceMethod(), responseObserver); } /** */ - public void removeSlice(context.ContextOuterClass.SliceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + default void removeSlice(context.ContextOuterClass.SliceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRemoveSliceMethod(), responseObserver); } /** */ - public void getSliceEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceEvent> responseObserver) { + default void getSliceEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceEvent> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetSliceEventsMethod(), responseObserver); } /** */ - public void selectSlice(context.ContextOuterClass.SliceFilter request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceList> responseObserver) { + default void selectSlice(context.ContextOuterClass.SliceFilter request, io.grpc.stub.StreamObserver<context.ContextOuterClass.SliceList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSelectSliceMethod(), responseObserver); } /** */ - public void listConnectionIds(context.ContextOuterClass.ServiceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ConnectionIdList> responseObserver) { + default void listConnectionIds(context.ContextOuterClass.ServiceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ConnectionIdList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListConnectionIdsMethod(), responseObserver); } /** */ - public void listConnections(context.ContextOuterClass.ServiceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ConnectionList> responseObserver) { + default void listConnections(context.ContextOuterClass.ServiceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ConnectionList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getListConnectionsMethod(), responseObserver); } /** */ - public void getConnection(context.ContextOuterClass.ConnectionId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Connection> responseObserver) { + default void getConnection(context.ContextOuterClass.ConnectionId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Connection> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetConnectionMethod(), responseObserver); } /** */ - public void setConnection(context.ContextOuterClass.Connection request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ConnectionId> responseObserver) { + default void setConnection(context.ContextOuterClass.Connection request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ConnectionId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetConnectionMethod(), responseObserver); } /** */ - public void removeConnection(context.ContextOuterClass.ConnectionId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + default void removeConnection(context.ContextOuterClass.ConnectionId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getRemoveConnectionMethod(), responseObserver); } /** */ - public void getConnectionEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ConnectionEvent> responseObserver) { + default void getConnectionEvents(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.ConnectionEvent> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetConnectionEventsMethod(), responseObserver); } @@ -1183,47 +1259,84 @@ public final class ContextServiceGrpc { * ------------------------------ Experimental ----------------------------- * </pre> */ - public void getOpticalConfig(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigList> responseObserver) { + default void getOpticalConfig(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigList> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetOpticalConfigMethod(), responseObserver); } /** */ - public void setOpticalConfig(context.ContextOuterClass.OpticalConfig request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId> responseObserver) { + default void setOpticalConfig(context.ContextOuterClass.OpticalConfig request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetOpticalConfigMethod(), responseObserver); } /** */ - public void selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfig> responseObserver) { + default void updateOpticalConfig(context.ContextOuterClass.OpticalConfig request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getUpdateOpticalConfigMethod(), responseObserver); + } + + /** + */ + default void selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfig> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSelectOpticalConfigMethod(), responseObserver); } /** */ - public void setOpticalLink(context.ContextOuterClass.OpticalLink request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + default void deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteOpticalConfigMethod(), responseObserver); + } + + /** + */ + default void deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteOpticalChannelMethod(), responseObserver); + } + + /** + */ + default void setOpticalLink(context.ContextOuterClass.OpticalLink request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getSetOpticalLinkMethod(), responseObserver); } /** */ - public void getOpticalLink(context.ContextOuterClass.OpticalLinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink> responseObserver) { + default void getOpticalLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetOpticalLinkMethod(), responseObserver); } /** */ - public void getFiber(context.ContextOuterClass.FiberId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Fiber> responseObserver) { - io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetFiberMethod(), responseObserver); + default void deleteOpticalLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteOpticalLinkMethod(), responseObserver); + } + + /** + */ + default void getOpticalLinkList(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLinkList> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetOpticalLinkListMethod(), responseObserver); } + /** + */ + default void deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteServiceConfigRuleMethod(), responseObserver); + } + } + + /** + * Base class for the server implementation of the service ContextService. + */ + public static abstract class ContextServiceImplBase implements io.grpc.BindableService, AsyncService { + @java.lang.Override public io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()).addMethod(getListContextIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextIdList>(this, METHODID_LIST_CONTEXT_IDS))).addMethod(getListContextsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextList>(this, METHODID_LIST_CONTEXTS))).addMethod(getGetContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Context>(this, METHODID_GET_CONTEXT))).addMethod(getSetContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Context, context.ContextOuterClass.ContextId>(this, METHODID_SET_CONTEXT))).addMethod(getRemoveContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_CONTEXT))).addMethod(getGetContextEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextEvent>(this, METHODID_GET_CONTEXT_EVENTS))).addMethod(getListTopologyIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyIdList>(this, METHODID_LIST_TOPOLOGY_IDS))).addMethod(getListTopologiesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyList>(this, METHODID_LIST_TOPOLOGIES))).addMethod(getGetTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Topology>(this, METHODID_GET_TOPOLOGY))).addMethod(getGetTopologyDetailsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyDetails>(this, METHODID_GET_TOPOLOGY_DETAILS))).addMethod(getSetTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Topology, context.ContextOuterClass.TopologyId>(this, METHODID_SET_TOPOLOGY))).addMethod(getRemoveTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_TOPOLOGY))).addMethod(getGetTopologyEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.TopologyEvent>(this, METHODID_GET_TOPOLOGY_EVENTS))).addMethod(getListDeviceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceIdList>(this, METHODID_LIST_DEVICE_IDS))).addMethod(getListDevicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceList>(this, METHODID_LIST_DEVICES))).addMethod(getGetDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Device>(this, METHODID_GET_DEVICE))).addMethod(getSetDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(this, METHODID_SET_DEVICE))).addMethod(getRemoveDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_DEVICE))).addMethod(getGetDeviceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceEvent>(this, METHODID_GET_DEVICE_EVENTS))).addMethod(getSelectDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceFilter, context.ContextOuterClass.DeviceList>(this, METHODID_SELECT_DEVICE))).addMethod(getListEndPointNamesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.EndPointIdList, context.ContextOuterClass.EndPointNameList>(this, METHODID_LIST_END_POINT_NAMES))).addMethod(getListLinkIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkIdList>(this, METHODID_LIST_LINK_IDS))).addMethod(getListLinksMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkList>(this, METHODID_LIST_LINKS))).addMethod(getGetLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Link>(this, METHODID_GET_LINK))).addMethod(getSetLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Link, context.ContextOuterClass.LinkId>(this, METHODID_SET_LINK))).addMethod(getRemoveLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_LINK))).addMethod(getGetLinkEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkEvent>(this, METHODID_GET_LINK_EVENTS))).addMethod(getListServiceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceIdList>(this, METHODID_LIST_SERVICE_IDS))).addMethod(getListServicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceList>(this, METHODID_LIST_SERVICES))).addMethod(getGetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Service>(this, METHODID_GET_SERVICE))).addMethod(getSetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(this, METHODID_SET_SERVICE))).addMethod(getUnsetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(this, METHODID_UNSET_SERVICE))).addMethod(getRemoveServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_SERVICE))).addMethod(getGetServiceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ServiceEvent>(this, METHODID_GET_SERVICE_EVENTS))).addMethod(getSelectServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceFilter, context.ContextOuterClass.ServiceList>(this, METHODID_SELECT_SERVICE))).addMethod(getListSliceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceIdList>(this, METHODID_LIST_SLICE_IDS))).addMethod(getListSlicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceList>(this, METHODID_LIST_SLICES))).addMethod(getGetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Slice>(this, METHODID_GET_SLICE))).addMethod(getSetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(this, METHODID_SET_SLICE))).addMethod(getUnsetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(this, METHODID_UNSET_SLICE))).addMethod(getRemoveSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_SLICE))).addMethod(getGetSliceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.SliceEvent>(this, METHODID_GET_SLICE_EVENTS))).addMethod(getSelectSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceFilter, context.ContextOuterClass.SliceList>(this, METHODID_SELECT_SLICE))).addMethod(getListConnectionIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionIdList>(this, METHODID_LIST_CONNECTION_IDS))).addMethod(getListConnectionsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionList>(this, METHODID_LIST_CONNECTIONS))).addMethod(getGetConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Connection>(this, METHODID_GET_CONNECTION))).addMethod(getSetConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Connection, context.ContextOuterClass.ConnectionId>(this, METHODID_SET_CONNECTION))).addMethod(getRemoveConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_CONNECTION))).addMethod(getGetConnectionEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ConnectionEvent>(this, METHODID_GET_CONNECTION_EVENTS))).addMethod(getGetOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalConfigList>(this, METHODID_GET_OPTICAL_CONFIG))).addMethod(getSetOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(this, METHODID_SET_OPTICAL_CONFIG))).addMethod(getSelectOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfig>(this, METHODID_SELECT_OPTICAL_CONFIG))).addMethod(getSetOpticalLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.Empty>(this, METHODID_SET_OPTICAL_LINK))).addMethod(getGetOpticalLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink>(this, METHODID_GET_OPTICAL_LINK))).addMethod(getGetFiberMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber>(this, METHODID_GET_FIBER))).build(); + return ContextServiceGrpc.bindService(this); } } /** + * A stub to allow clients to do asynchronous rpc calls to service ContextService. */ public static class ContextServiceStub extends io.grpc.stub.AbstractAsyncStub<ContextServiceStub> { @@ -1545,12 +1658,30 @@ public final class ContextServiceGrpc { io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getSetOpticalConfigMethod(), getCallOptions()), request, responseObserver); } + /** + */ + public void updateOpticalConfig(context.ContextOuterClass.OpticalConfig request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getUpdateOpticalConfigMethod(), getCallOptions()), request, responseObserver); + } + /** */ public void selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfig> responseObserver) { io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getSelectOpticalConfigMethod(), getCallOptions()), request, responseObserver); } + /** + */ + public void deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getDeleteOpticalConfigMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getDeleteOpticalChannelMethod(), getCallOptions()), request, responseObserver); + } + /** */ public void setOpticalLink(context.ContextOuterClass.OpticalLink request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { @@ -1559,18 +1690,31 @@ public final class ContextServiceGrpc { /** */ - public void getOpticalLink(context.ContextOuterClass.OpticalLinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink> responseObserver) { + public void getOpticalLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink> responseObserver) { io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getGetOpticalLinkMethod(), getCallOptions()), request, responseObserver); } /** */ - public void getFiber(context.ContextOuterClass.FiberId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Fiber> responseObserver) { - io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getGetFiberMethod(), getCallOptions()), request, responseObserver); + public void deleteOpticalLink(context.ContextOuterClass.LinkId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getDeleteOpticalLinkMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void getOpticalLinkList(context.ContextOuterClass.Empty request, io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLinkList> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getGetOpticalLinkListMethod(), getCallOptions()), request, responseObserver); + } + + /** + */ + public void deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + io.grpc.stub.ClientCalls.asyncUnaryCall(getChannel().newCall(getDeleteServiceConfigRuleMethod(), getCallOptions()), request, responseObserver); } } /** + * A stub to allow clients to do synchronous rpc calls to service ContextService. */ public static class ContextServiceBlockingStub extends io.grpc.stub.AbstractBlockingStub<ContextServiceBlockingStub> { @@ -1892,12 +2036,30 @@ public final class ContextServiceGrpc { return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getSetOpticalConfigMethod(), getCallOptions(), request); } + /** + */ + public context.ContextOuterClass.OpticalConfigId updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getUpdateOpticalConfigMethod(), getCallOptions(), request); + } + /** */ public context.ContextOuterClass.OpticalConfig selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getSelectOpticalConfigMethod(), getCallOptions(), request); } + /** + */ + public context.ContextOuterClass.Empty deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getDeleteOpticalConfigMethod(), getCallOptions(), request); + } + + /** + */ + public context.ContextOuterClass.Empty deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getDeleteOpticalChannelMethod(), getCallOptions(), request); + } + /** */ public context.ContextOuterClass.Empty setOpticalLink(context.ContextOuterClass.OpticalLink request) { @@ -1906,18 +2068,31 @@ public final class ContextServiceGrpc { /** */ - public context.ContextOuterClass.OpticalLink getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public context.ContextOuterClass.OpticalLink getOpticalLink(context.ContextOuterClass.LinkId request) { return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getGetOpticalLinkMethod(), getCallOptions(), request); } /** */ - public context.ContextOuterClass.Fiber getFiber(context.ContextOuterClass.FiberId request) { - return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getGetFiberMethod(), getCallOptions(), request); + public context.ContextOuterClass.Empty deleteOpticalLink(context.ContextOuterClass.LinkId request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getDeleteOpticalLinkMethod(), getCallOptions(), request); + } + + /** + */ + public context.ContextOuterClass.OpticalLinkList getOpticalLinkList(context.ContextOuterClass.Empty request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getGetOpticalLinkListMethod(), getCallOptions(), request); + } + + /** + */ + public context.ContextOuterClass.Empty deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { + return io.grpc.stub.ClientCalls.blockingUnaryCall(getChannel(), getDeleteServiceConfigRuleMethod(), getCallOptions(), request); } } /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service ContextService. */ public static class ContextServiceFutureStub extends io.grpc.stub.AbstractFutureStub<ContextServiceFutureStub> { @@ -2197,12 +2372,30 @@ public final class ContextServiceGrpc { return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getSetOpticalConfigMethod(), getCallOptions()), request); } + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getUpdateOpticalConfigMethod(), getCallOptions()), request); + } + /** */ public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getSelectOpticalConfigMethod(), getCallOptions()), request); } + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getDeleteOpticalConfigMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getDeleteOpticalChannelMethod(), getCallOptions()), request); + } + /** */ public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request) { @@ -2211,14 +2404,26 @@ public final class ContextServiceGrpc { /** */ - public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request) { return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getGetOpticalLinkMethod(), getCallOptions()), request); } /** */ - public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request) { - return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getGetFiberMethod(), getCallOptions()), request); + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getDeleteOpticalLinkMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getGetOpticalLinkListMethod(), getCallOptions()), request); + } + + /** + */ + public com.google.common.util.concurrent.ListenableFuture<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { + return io.grpc.stub.ClientCalls.futureUnaryCall(getChannel().newCall(getDeleteServiceConfigRuleMethod(), getCallOptions()), request); } } @@ -2324,21 +2529,31 @@ public final class ContextServiceGrpc { private static final int METHODID_SET_OPTICAL_CONFIG = 50; - private static final int METHODID_SELECT_OPTICAL_CONFIG = 51; + private static final int METHODID_UPDATE_OPTICAL_CONFIG = 51; + + private static final int METHODID_SELECT_OPTICAL_CONFIG = 52; - private static final int METHODID_SET_OPTICAL_LINK = 52; + private static final int METHODID_DELETE_OPTICAL_CONFIG = 53; - private static final int METHODID_GET_OPTICAL_LINK = 53; + private static final int METHODID_DELETE_OPTICAL_CHANNEL = 54; - private static final int METHODID_GET_FIBER = 54; + private static final int METHODID_SET_OPTICAL_LINK = 55; + + private static final int METHODID_GET_OPTICAL_LINK = 56; + + private static final int METHODID_DELETE_OPTICAL_LINK = 57; + + private static final int METHODID_GET_OPTICAL_LINK_LIST = 58; + + private static final int METHODID_DELETE_SERVICE_CONFIG_RULE = 59; private static final class MethodHandlers<Req, Resp> implements io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>, io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>, io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>, io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> { - private final ContextServiceImplBase serviceImpl; + private final AsyncService serviceImpl; private final int methodId; - MethodHandlers(ContextServiceImplBase serviceImpl, int methodId) { + MethodHandlers(AsyncService serviceImpl, int methodId) { this.serviceImpl = serviceImpl; this.methodId = methodId; } @@ -2500,17 +2715,32 @@ public final class ContextServiceGrpc { case METHODID_SET_OPTICAL_CONFIG: serviceImpl.setOpticalConfig((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId>) responseObserver); break; + case METHODID_UPDATE_OPTICAL_CONFIG: + serviceImpl.updateOpticalConfig((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId>) responseObserver); + break; case METHODID_SELECT_OPTICAL_CONFIG: serviceImpl.selectOpticalConfig((context.ContextOuterClass.OpticalConfigId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfig>) responseObserver); break; + case METHODID_DELETE_OPTICAL_CONFIG: + serviceImpl.deleteOpticalConfig((context.ContextOuterClass.OpticalConfigId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); + break; + case METHODID_DELETE_OPTICAL_CHANNEL: + serviceImpl.deleteOpticalChannel((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); + break; case METHODID_SET_OPTICAL_LINK: serviceImpl.setOpticalLink((context.ContextOuterClass.OpticalLink) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); break; case METHODID_GET_OPTICAL_LINK: - serviceImpl.getOpticalLink((context.ContextOuterClass.OpticalLinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink>) responseObserver); + serviceImpl.getOpticalLink((context.ContextOuterClass.LinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink>) responseObserver); + break; + case METHODID_DELETE_OPTICAL_LINK: + serviceImpl.deleteOpticalLink((context.ContextOuterClass.LinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); + break; + case METHODID_GET_OPTICAL_LINK_LIST: + serviceImpl.getOpticalLinkList((context.ContextOuterClass.Empty) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLinkList>) responseObserver); break; - case METHODID_GET_FIBER: - serviceImpl.getFiber((context.ContextOuterClass.FiberId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Fiber>) responseObserver); + case METHODID_DELETE_SERVICE_CONFIG_RULE: + serviceImpl.deleteServiceConfigRule((context.ContextOuterClass.ServiceConfigRule) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver); break; default: throw new AssertionError(); @@ -2527,6 +2757,10 @@ public final class ContextServiceGrpc { } } + public static io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()).addMethod(getListContextIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextIdList>(service, METHODID_LIST_CONTEXT_IDS))).addMethod(getListContextsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextList>(service, METHODID_LIST_CONTEXTS))).addMethod(getGetContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Context>(service, METHODID_GET_CONTEXT))).addMethod(getSetContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Context, context.ContextOuterClass.ContextId>(service, METHODID_SET_CONTEXT))).addMethod(getRemoveContextMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_CONTEXT))).addMethod(getGetContextEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextEvent>(service, METHODID_GET_CONTEXT_EVENTS))).addMethod(getListTopologyIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyIdList>(service, METHODID_LIST_TOPOLOGY_IDS))).addMethod(getListTopologiesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyList>(service, METHODID_LIST_TOPOLOGIES))).addMethod(getGetTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Topology>(service, METHODID_GET_TOPOLOGY))).addMethod(getGetTopologyDetailsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyDetails>(service, METHODID_GET_TOPOLOGY_DETAILS))).addMethod(getSetTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Topology, context.ContextOuterClass.TopologyId>(service, METHODID_SET_TOPOLOGY))).addMethod(getRemoveTopologyMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_TOPOLOGY))).addMethod(getGetTopologyEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.TopologyEvent>(service, METHODID_GET_TOPOLOGY_EVENTS))).addMethod(getListDeviceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceIdList>(service, METHODID_LIST_DEVICE_IDS))).addMethod(getListDevicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceList>(service, METHODID_LIST_DEVICES))).addMethod(getGetDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Device>(service, METHODID_GET_DEVICE))).addMethod(getSetDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(service, METHODID_SET_DEVICE))).addMethod(getRemoveDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_DEVICE))).addMethod(getGetDeviceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceEvent>(service, METHODID_GET_DEVICE_EVENTS))).addMethod(getSelectDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceFilter, context.ContextOuterClass.DeviceList>(service, METHODID_SELECT_DEVICE))).addMethod(getListEndPointNamesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.EndPointIdList, context.ContextOuterClass.EndPointNameList>(service, METHODID_LIST_END_POINT_NAMES))).addMethod(getListLinkIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkIdList>(service, METHODID_LIST_LINK_IDS))).addMethod(getListLinksMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkList>(service, METHODID_LIST_LINKS))).addMethod(getGetLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Link>(service, METHODID_GET_LINK))).addMethod(getSetLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Link, context.ContextOuterClass.LinkId>(service, METHODID_SET_LINK))).addMethod(getRemoveLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_LINK))).addMethod(getGetLinkEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkEvent>(service, METHODID_GET_LINK_EVENTS))).addMethod(getListServiceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceIdList>(service, METHODID_LIST_SERVICE_IDS))).addMethod(getListServicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceList>(service, METHODID_LIST_SERVICES))).addMethod(getGetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Service>(service, METHODID_GET_SERVICE))).addMethod(getSetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(service, METHODID_SET_SERVICE))).addMethod(getUnsetServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(service, METHODID_UNSET_SERVICE))).addMethod(getRemoveServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_SERVICE))).addMethod(getGetServiceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ServiceEvent>(service, METHODID_GET_SERVICE_EVENTS))).addMethod(getSelectServiceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceFilter, context.ContextOuterClass.ServiceList>(service, METHODID_SELECT_SERVICE))).addMethod(getListSliceIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceIdList>(service, METHODID_LIST_SLICE_IDS))).addMethod(getListSlicesMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceList>(service, METHODID_LIST_SLICES))).addMethod(getGetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Slice>(service, METHODID_GET_SLICE))).addMethod(getSetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(service, METHODID_SET_SLICE))).addMethod(getUnsetSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(service, METHODID_UNSET_SLICE))).addMethod(getRemoveSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_SLICE))).addMethod(getGetSliceEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.SliceEvent>(service, METHODID_GET_SLICE_EVENTS))).addMethod(getSelectSliceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceFilter, context.ContextOuterClass.SliceList>(service, METHODID_SELECT_SLICE))).addMethod(getListConnectionIdsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionIdList>(service, METHODID_LIST_CONNECTION_IDS))).addMethod(getListConnectionsMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionList>(service, METHODID_LIST_CONNECTIONS))).addMethod(getGetConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Connection>(service, METHODID_GET_CONNECTION))).addMethod(getSetConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Connection, context.ContextOuterClass.ConnectionId>(service, METHODID_SET_CONNECTION))).addMethod(getRemoveConnectionMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Empty>(service, METHODID_REMOVE_CONNECTION))).addMethod(getGetConnectionEventsMethod(), io.grpc.stub.ServerCalls.asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ConnectionEvent>(service, METHODID_GET_CONNECTION_EVENTS))).addMethod(getGetOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalConfigList>(service, METHODID_GET_OPTICAL_CONFIG))).addMethod(getSetOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(service, METHODID_SET_OPTICAL_CONFIG))).addMethod(getUpdateOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(service, METHODID_UPDATE_OPTICAL_CONFIG))).addMethod(getSelectOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfig>(service, METHODID_SELECT_OPTICAL_CONFIG))).addMethod(getDeleteOpticalConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty>(service, METHODID_DELETE_OPTICAL_CONFIG))).addMethod(getDeleteOpticalChannelMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty>(service, METHODID_DELETE_OPTICAL_CHANNEL))).addMethod(getSetOpticalLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.Empty>(service, METHODID_SET_OPTICAL_LINK))).addMethod(getGetOpticalLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink>(service, METHODID_GET_OPTICAL_LINK))).addMethod(getDeleteOpticalLinkMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(service, METHODID_DELETE_OPTICAL_LINK))).addMethod(getGetOpticalLinkListMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList>(service, METHODID_GET_OPTICAL_LINK_LIST))).addMethod(getDeleteServiceConfigRuleMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty>(service, METHODID_DELETE_SERVICE_CONFIG_RULE))).build(); + } + private static abstract class ContextServiceBaseDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { ContextServiceBaseDescriptorSupplier() { @@ -2571,7 +2805,7 @@ public final class ContextServiceGrpc { synchronized (ContextServiceGrpc.class) { result = serviceDescriptor; if (result == null) { - serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME).setSchemaDescriptor(new ContextServiceFileDescriptorSupplier()).addMethod(getListContextIdsMethod()).addMethod(getListContextsMethod()).addMethod(getGetContextMethod()).addMethod(getSetContextMethod()).addMethod(getRemoveContextMethod()).addMethod(getGetContextEventsMethod()).addMethod(getListTopologyIdsMethod()).addMethod(getListTopologiesMethod()).addMethod(getGetTopologyMethod()).addMethod(getGetTopologyDetailsMethod()).addMethod(getSetTopologyMethod()).addMethod(getRemoveTopologyMethod()).addMethod(getGetTopologyEventsMethod()).addMethod(getListDeviceIdsMethod()).addMethod(getListDevicesMethod()).addMethod(getGetDeviceMethod()).addMethod(getSetDeviceMethod()).addMethod(getRemoveDeviceMethod()).addMethod(getGetDeviceEventsMethod()).addMethod(getSelectDeviceMethod()).addMethod(getListEndPointNamesMethod()).addMethod(getListLinkIdsMethod()).addMethod(getListLinksMethod()).addMethod(getGetLinkMethod()).addMethod(getSetLinkMethod()).addMethod(getRemoveLinkMethod()).addMethod(getGetLinkEventsMethod()).addMethod(getListServiceIdsMethod()).addMethod(getListServicesMethod()).addMethod(getGetServiceMethod()).addMethod(getSetServiceMethod()).addMethod(getUnsetServiceMethod()).addMethod(getRemoveServiceMethod()).addMethod(getGetServiceEventsMethod()).addMethod(getSelectServiceMethod()).addMethod(getListSliceIdsMethod()).addMethod(getListSlicesMethod()).addMethod(getGetSliceMethod()).addMethod(getSetSliceMethod()).addMethod(getUnsetSliceMethod()).addMethod(getRemoveSliceMethod()).addMethod(getGetSliceEventsMethod()).addMethod(getSelectSliceMethod()).addMethod(getListConnectionIdsMethod()).addMethod(getListConnectionsMethod()).addMethod(getGetConnectionMethod()).addMethod(getSetConnectionMethod()).addMethod(getRemoveConnectionMethod()).addMethod(getGetConnectionEventsMethod()).addMethod(getGetOpticalConfigMethod()).addMethod(getSetOpticalConfigMethod()).addMethod(getSelectOpticalConfigMethod()).addMethod(getSetOpticalLinkMethod()).addMethod(getGetOpticalLinkMethod()).addMethod(getGetFiberMethod()).build(); + serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME).setSchemaDescriptor(new ContextServiceFileDescriptorSupplier()).addMethod(getListContextIdsMethod()).addMethod(getListContextsMethod()).addMethod(getGetContextMethod()).addMethod(getSetContextMethod()).addMethod(getRemoveContextMethod()).addMethod(getGetContextEventsMethod()).addMethod(getListTopologyIdsMethod()).addMethod(getListTopologiesMethod()).addMethod(getGetTopologyMethod()).addMethod(getGetTopologyDetailsMethod()).addMethod(getSetTopologyMethod()).addMethod(getRemoveTopologyMethod()).addMethod(getGetTopologyEventsMethod()).addMethod(getListDeviceIdsMethod()).addMethod(getListDevicesMethod()).addMethod(getGetDeviceMethod()).addMethod(getSetDeviceMethod()).addMethod(getRemoveDeviceMethod()).addMethod(getGetDeviceEventsMethod()).addMethod(getSelectDeviceMethod()).addMethod(getListEndPointNamesMethod()).addMethod(getListLinkIdsMethod()).addMethod(getListLinksMethod()).addMethod(getGetLinkMethod()).addMethod(getSetLinkMethod()).addMethod(getRemoveLinkMethod()).addMethod(getGetLinkEventsMethod()).addMethod(getListServiceIdsMethod()).addMethod(getListServicesMethod()).addMethod(getGetServiceMethod()).addMethod(getSetServiceMethod()).addMethod(getUnsetServiceMethod()).addMethod(getRemoveServiceMethod()).addMethod(getGetServiceEventsMethod()).addMethod(getSelectServiceMethod()).addMethod(getListSliceIdsMethod()).addMethod(getListSlicesMethod()).addMethod(getGetSliceMethod()).addMethod(getSetSliceMethod()).addMethod(getUnsetSliceMethod()).addMethod(getRemoveSliceMethod()).addMethod(getGetSliceEventsMethod()).addMethod(getSelectSliceMethod()).addMethod(getListConnectionIdsMethod()).addMethod(getListConnectionsMethod()).addMethod(getGetConnectionMethod()).addMethod(getSetConnectionMethod()).addMethod(getRemoveConnectionMethod()).addMethod(getGetConnectionEventsMethod()).addMethod(getGetOpticalConfigMethod()).addMethod(getSetOpticalConfigMethod()).addMethod(getUpdateOpticalConfigMethod()).addMethod(getSelectOpticalConfigMethod()).addMethod(getDeleteOpticalConfigMethod()).addMethod(getDeleteOpticalChannelMethod()).addMethod(getSetOpticalLinkMethod()).addMethod(getGetOpticalLinkMethod()).addMethod(getDeleteOpticalLinkMethod()).addMethod(getGetOpticalLinkListMethod()).addMethod(getDeleteServiceConfigRuleMethod()).build(); } } } diff --git a/src/ztp/target/generated-sources/grpc/context/MutinyContextServiceGrpc.java b/src/ztp/target/generated-sources/grpc/context/MutinyContextServiceGrpc.java index c6dbb1e92..b97952a61 100644 --- a/src/ztp/target/generated-sources/grpc/context/MutinyContextServiceGrpc.java +++ b/src/ztp/target/generated-sources/grpc/context/MutinyContextServiceGrpc.java @@ -216,20 +216,40 @@ public final class MutinyContextServiceGrpc implements io.quarkus.grpc.MutinyGrp return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::setOpticalConfig); } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::updateOpticalConfig); + } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::selectOpticalConfig); } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::deleteOpticalConfig); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::deleteOpticalChannel); + } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request) { return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::setOpticalLink); } - public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request) { return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::getOpticalLink); } - public io.smallrye.mutiny.Uni<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request) { - return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::getFiber); + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::deleteOpticalLink); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::getOpticalLinkList); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { + return io.quarkus.grpc.stubs.ClientCalls.oneToOne(request, delegateStub::deleteServiceConfigRule); } public io.smallrye.mutiny.Multi<context.ContextOuterClass.ContextEvent> getContextEvents(context.ContextOuterClass.Empty request) { @@ -456,19 +476,39 @@ public final class MutinyContextServiceGrpc implements io.quarkus.grpc.MutinyGrp throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfigId> updateOpticalConfig(context.ContextOuterClass.OpticalConfig request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalConfig> selectOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalConfig(context.ContextOuterClass.OpticalConfigId request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalChannel(context.ContextOuterClass.OpticalConfig request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> setOpticalLink(context.ContextOuterClass.OpticalLink request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } - public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.OpticalLinkId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLink> getOpticalLink(context.ContextOuterClass.LinkId request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } - public io.smallrye.mutiny.Uni<context.ContextOuterClass.Fiber> getFiber(context.ContextOuterClass.FiberId request) { + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteOpticalLink(context.ContextOuterClass.LinkId request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.OpticalLinkList> getOpticalLinkList(context.ContextOuterClass.Empty request) { + throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); + } + + public io.smallrye.mutiny.Uni<context.ContextOuterClass.Empty> deleteServiceConfigRule(context.ContextOuterClass.ServiceConfigRule request) { throw new io.grpc.StatusRuntimeException(io.grpc.Status.UNIMPLEMENTED); } @@ -502,7 +542,7 @@ public final class MutinyContextServiceGrpc implements io.quarkus.grpc.MutinyGrp @java.lang.Override public io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()).addMethod(context.ContextServiceGrpc.getListContextIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextIdList>(this, METHODID_LIST_CONTEXT_IDS, compression))).addMethod(context.ContextServiceGrpc.getListContextsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextList>(this, METHODID_LIST_CONTEXTS, compression))).addMethod(context.ContextServiceGrpc.getGetContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Context>(this, METHODID_GET_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getSetContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Context, context.ContextOuterClass.ContextId>(this, METHODID_SET_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getRemoveContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getGetContextEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextEvent>(this, METHODID_GET_CONTEXT_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListTopologyIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyIdList>(this, METHODID_LIST_TOPOLOGY_IDS, compression))).addMethod(context.ContextServiceGrpc.getListTopologiesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyList>(this, METHODID_LIST_TOPOLOGIES, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Topology>(this, METHODID_GET_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyDetailsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyDetails>(this, METHODID_GET_TOPOLOGY_DETAILS, compression))).addMethod(context.ContextServiceGrpc.getSetTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Topology, context.ContextOuterClass.TopologyId>(this, METHODID_SET_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getRemoveTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.TopologyEvent>(this, METHODID_GET_TOPOLOGY_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListDeviceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceIdList>(this, METHODID_LIST_DEVICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListDevicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceList>(this, METHODID_LIST_DEVICES, compression))).addMethod(context.ContextServiceGrpc.getGetDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Device>(this, METHODID_GET_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getSetDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(this, METHODID_SET_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getGetDeviceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceEvent>(this, METHODID_GET_DEVICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceFilter, context.ContextOuterClass.DeviceList>(this, METHODID_SELECT_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getListEndPointNamesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.EndPointIdList, context.ContextOuterClass.EndPointNameList>(this, METHODID_LIST_END_POINT_NAMES, compression))).addMethod(context.ContextServiceGrpc.getListLinkIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkIdList>(this, METHODID_LIST_LINK_IDS, compression))).addMethod(context.ContextServiceGrpc.getListLinksMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkList>(this, METHODID_LIST_LINKS, compression))).addMethod(context.ContextServiceGrpc.getGetLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Link>(this, METHODID_GET_LINK, compression))).addMethod(context.ContextServiceGrpc.getSetLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Link, context.ContextOuterClass.LinkId>(this, METHODID_SET_LINK, compression))).addMethod(context.ContextServiceGrpc.getRemoveLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetLinkEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkEvent>(this, METHODID_GET_LINK_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListServiceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceIdList>(this, METHODID_LIST_SERVICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListServicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceList>(this, METHODID_LIST_SERVICES, compression))).addMethod(context.ContextServiceGrpc.getGetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Service>(this, METHODID_GET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getSetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(this, METHODID_SET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getUnsetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(this, METHODID_UNSET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getGetServiceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ServiceEvent>(this, METHODID_GET_SERVICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceFilter, context.ContextOuterClass.ServiceList>(this, METHODID_SELECT_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getListSliceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceIdList>(this, METHODID_LIST_SLICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListSlicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceList>(this, METHODID_LIST_SLICES, compression))).addMethod(context.ContextServiceGrpc.getGetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Slice>(this, METHODID_GET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getSetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(this, METHODID_SET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getUnsetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(this, METHODID_UNSET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_SLICE, compression))).addMethod(context.ContextServiceGrpc.getGetSliceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.SliceEvent>(this, METHODID_GET_SLICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceFilter, context.ContextOuterClass.SliceList>(this, METHODID_SELECT_SLICE, compression))).addMethod(context.ContextServiceGrpc.getListConnectionIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionIdList>(this, METHODID_LIST_CONNECTION_IDS, compression))).addMethod(context.ContextServiceGrpc.getListConnectionsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionList>(this, METHODID_LIST_CONNECTIONS, compression))).addMethod(context.ContextServiceGrpc.getGetConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Connection>(this, METHODID_GET_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getSetConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Connection, context.ContextOuterClass.ConnectionId>(this, METHODID_SET_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getRemoveConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getGetConnectionEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ConnectionEvent>(this, METHODID_GET_CONNECTION_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getGetOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalConfigList>(this, METHODID_GET_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getSetOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(this, METHODID_SET_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getSelectOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfig>(this, METHODID_SELECT_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getSetOpticalLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.Empty>(this, METHODID_SET_OPTICAL_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetOpticalLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLinkId, context.ContextOuterClass.OpticalLink>(this, METHODID_GET_OPTICAL_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetFiberMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.FiberId, context.ContextOuterClass.Fiber>(this, METHODID_GET_FIBER, compression))).build(); + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()).addMethod(context.ContextServiceGrpc.getListContextIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextIdList>(this, METHODID_LIST_CONTEXT_IDS, compression))).addMethod(context.ContextServiceGrpc.getListContextsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextList>(this, METHODID_LIST_CONTEXTS, compression))).addMethod(context.ContextServiceGrpc.getGetContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Context>(this, METHODID_GET_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getSetContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Context, context.ContextOuterClass.ContextId>(this, METHODID_SET_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getRemoveContextMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_CONTEXT, compression))).addMethod(context.ContextServiceGrpc.getGetContextEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ContextEvent>(this, METHODID_GET_CONTEXT_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListTopologyIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyIdList>(this, METHODID_LIST_TOPOLOGY_IDS, compression))).addMethod(context.ContextServiceGrpc.getListTopologiesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.TopologyList>(this, METHODID_LIST_TOPOLOGIES, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Topology>(this, METHODID_GET_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyDetailsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.TopologyDetails>(this, METHODID_GET_TOPOLOGY_DETAILS, compression))).addMethod(context.ContextServiceGrpc.getSetTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Topology, context.ContextOuterClass.TopologyId>(this, METHODID_SET_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getRemoveTopologyMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.TopologyId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_TOPOLOGY, compression))).addMethod(context.ContextServiceGrpc.getGetTopologyEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.TopologyEvent>(this, METHODID_GET_TOPOLOGY_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListDeviceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceIdList>(this, METHODID_LIST_DEVICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListDevicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceList>(this, METHODID_LIST_DEVICES, compression))).addMethod(context.ContextServiceGrpc.getGetDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Device>(this, METHODID_GET_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getSetDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(this, METHODID_SET_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getGetDeviceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.DeviceEvent>(this, METHODID_GET_DEVICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectDeviceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceFilter, context.ContextOuterClass.DeviceList>(this, METHODID_SELECT_DEVICE, compression))).addMethod(context.ContextServiceGrpc.getListEndPointNamesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.EndPointIdList, context.ContextOuterClass.EndPointNameList>(this, METHODID_LIST_END_POINT_NAMES, compression))).addMethod(context.ContextServiceGrpc.getListLinkIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkIdList>(this, METHODID_LIST_LINK_IDS, compression))).addMethod(context.ContextServiceGrpc.getListLinksMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkList>(this, METHODID_LIST_LINKS, compression))).addMethod(context.ContextServiceGrpc.getGetLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Link>(this, METHODID_GET_LINK, compression))).addMethod(context.ContextServiceGrpc.getSetLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Link, context.ContextOuterClass.LinkId>(this, METHODID_SET_LINK, compression))).addMethod(context.ContextServiceGrpc.getRemoveLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetLinkEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.LinkEvent>(this, METHODID_GET_LINK_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getListServiceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceIdList>(this, METHODID_LIST_SERVICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListServicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.ServiceList>(this, METHODID_LIST_SERVICES, compression))).addMethod(context.ContextServiceGrpc.getGetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Service>(this, METHODID_GET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getSetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(this, METHODID_SET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getUnsetServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Service, context.ContextOuterClass.ServiceId>(this, METHODID_UNSET_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getGetServiceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ServiceEvent>(this, METHODID_GET_SERVICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectServiceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceFilter, context.ContextOuterClass.ServiceList>(this, METHODID_SELECT_SERVICE, compression))).addMethod(context.ContextServiceGrpc.getListSliceIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceIdList>(this, METHODID_LIST_SLICE_IDS, compression))).addMethod(context.ContextServiceGrpc.getListSlicesMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ContextId, context.ContextOuterClass.SliceList>(this, METHODID_LIST_SLICES, compression))).addMethod(context.ContextServiceGrpc.getGetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Slice>(this, METHODID_GET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getSetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(this, METHODID_SET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getUnsetSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Slice, context.ContextOuterClass.SliceId>(this, METHODID_UNSET_SLICE, compression))).addMethod(context.ContextServiceGrpc.getRemoveSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_SLICE, compression))).addMethod(context.ContextServiceGrpc.getGetSliceEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.SliceEvent>(this, METHODID_GET_SLICE_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getSelectSliceMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.SliceFilter, context.ContextOuterClass.SliceList>(this, METHODID_SELECT_SLICE, compression))).addMethod(context.ContextServiceGrpc.getListConnectionIdsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionIdList>(this, METHODID_LIST_CONNECTION_IDS, compression))).addMethod(context.ContextServiceGrpc.getListConnectionsMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceId, context.ContextOuterClass.ConnectionList>(this, METHODID_LIST_CONNECTIONS, compression))).addMethod(context.ContextServiceGrpc.getGetConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Connection>(this, METHODID_GET_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getSetConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Connection, context.ContextOuterClass.ConnectionId>(this, METHODID_SET_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getRemoveConnectionMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ConnectionId, context.ContextOuterClass.Empty>(this, METHODID_REMOVE_CONNECTION, compression))).addMethod(context.ContextServiceGrpc.getGetConnectionEventsMethod(), asyncServerStreamingCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.ConnectionEvent>(this, METHODID_GET_CONNECTION_EVENTS, compression))).addMethod(context.ContextServiceGrpc.getGetOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalConfigList>(this, METHODID_GET_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getSetOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(this, METHODID_SET_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getUpdateOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.OpticalConfigId>(this, METHODID_UPDATE_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getSelectOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.OpticalConfig>(this, METHODID_SELECT_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getDeleteOpticalConfigMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfigId, context.ContextOuterClass.Empty>(this, METHODID_DELETE_OPTICAL_CONFIG, compression))).addMethod(context.ContextServiceGrpc.getDeleteOpticalChannelMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalConfig, context.ContextOuterClass.Empty>(this, METHODID_DELETE_OPTICAL_CHANNEL, compression))).addMethod(context.ContextServiceGrpc.getSetOpticalLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.OpticalLink, context.ContextOuterClass.Empty>(this, METHODID_SET_OPTICAL_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetOpticalLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.OpticalLink>(this, METHODID_GET_OPTICAL_LINK, compression))).addMethod(context.ContextServiceGrpc.getDeleteOpticalLinkMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.LinkId, context.ContextOuterClass.Empty>(this, METHODID_DELETE_OPTICAL_LINK, compression))).addMethod(context.ContextServiceGrpc.getGetOpticalLinkListMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Empty, context.ContextOuterClass.OpticalLinkList>(this, METHODID_GET_OPTICAL_LINK_LIST, compression))).addMethod(context.ContextServiceGrpc.getDeleteServiceConfigRuleMethod(), asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.ServiceConfigRule, context.ContextOuterClass.Empty>(this, METHODID_DELETE_SERVICE_CONFIG_RULE, compression))).build(); } } @@ -608,13 +648,23 @@ public final class MutinyContextServiceGrpc implements io.quarkus.grpc.MutinyGrp private static final int METHODID_SET_OPTICAL_CONFIG = 50; - private static final int METHODID_SELECT_OPTICAL_CONFIG = 51; + private static final int METHODID_UPDATE_OPTICAL_CONFIG = 51; + + private static final int METHODID_SELECT_OPTICAL_CONFIG = 52; + + private static final int METHODID_DELETE_OPTICAL_CONFIG = 53; - private static final int METHODID_SET_OPTICAL_LINK = 52; + private static final int METHODID_DELETE_OPTICAL_CHANNEL = 54; - private static final int METHODID_GET_OPTICAL_LINK = 53; + private static final int METHODID_SET_OPTICAL_LINK = 55; - private static final int METHODID_GET_FIBER = 54; + private static final int METHODID_GET_OPTICAL_LINK = 56; + + private static final int METHODID_DELETE_OPTICAL_LINK = 57; + + private static final int METHODID_GET_OPTICAL_LINK_LIST = 58; + + private static final int METHODID_DELETE_SERVICE_CONFIG_RULE = 59; private static final class MethodHandlers<Req, Resp> implements io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>, io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>, io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>, io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> { @@ -787,17 +837,32 @@ public final class MutinyContextServiceGrpc implements io.quarkus.grpc.MutinyGrp case METHODID_SET_OPTICAL_CONFIG: io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId>) responseObserver, compression, serviceImpl::setOpticalConfig); break; + case METHODID_UPDATE_OPTICAL_CONFIG: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfigId>) responseObserver, compression, serviceImpl::updateOpticalConfig); + break; case METHODID_SELECT_OPTICAL_CONFIG: io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalConfigId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalConfig>) responseObserver, compression, serviceImpl::selectOpticalConfig); break; + case METHODID_DELETE_OPTICAL_CONFIG: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalConfigId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, compression, serviceImpl::deleteOpticalConfig); + break; + case METHODID_DELETE_OPTICAL_CHANNEL: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalConfig) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, compression, serviceImpl::deleteOpticalChannel); + break; case METHODID_SET_OPTICAL_LINK: io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalLink) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, compression, serviceImpl::setOpticalLink); break; case METHODID_GET_OPTICAL_LINK: - io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.OpticalLinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink>) responseObserver, compression, serviceImpl::getOpticalLink); + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.LinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLink>) responseObserver, compression, serviceImpl::getOpticalLink); + break; + case METHODID_DELETE_OPTICAL_LINK: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.LinkId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, compression, serviceImpl::deleteOpticalLink); + break; + case METHODID_GET_OPTICAL_LINK_LIST: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.Empty) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.OpticalLinkList>) responseObserver, compression, serviceImpl::getOpticalLinkList); break; - case METHODID_GET_FIBER: - io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.FiberId) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Fiber>) responseObserver, compression, serviceImpl::getFiber); + case METHODID_DELETE_SERVICE_CONFIG_RULE: + io.quarkus.grpc.stubs.ServerCalls.oneToOne((context.ContextOuterClass.ServiceConfigRule) request, (io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty>) responseObserver, compression, serviceImpl::deleteServiceConfigRule); break; default: throw new java.lang.AssertionError(); diff --git a/src/ztp/target/generated-sources/grpc/device/Device.java b/src/ztp/target/generated-sources/grpc/device/Device.java index 93bd49040..53ac328d6 100644 --- a/src/ztp/target/generated-sources/grpc/device/Device.java +++ b/src/ztp/target/generated-sources/grpc/device/Device.java @@ -18,35 +18,59 @@ public final class Device { com.google.protobuf.MessageOrBuilder { /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> * @return Whether the kpiId field is set. */ boolean hasKpiId(); /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> * @return The kpiId. */ monitoring.Monitoring.KpiId getKpiId(); /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> */ monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder(); /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> * @return Whether the kpiDescriptor field is set. */ boolean hasKpiDescriptor(); /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> * @return The kpiDescriptor. */ monitoring.Monitoring.KpiDescriptor getKpiDescriptor(); /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> */ monitoring.Monitoring.KpiDescriptorOrBuilder getKpiDescriptorOrBuilder(); @@ -86,80 +110,6 @@ public final class Device { return new MonitoringSettings(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private MonitoringSettings(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - monitoring.Monitoring.KpiId.Builder subBuilder = null; - if (kpiId_ != null) { - subBuilder = kpiId_.toBuilder(); - } - kpiId_ = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(kpiId_); - kpiId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - monitoring.Monitoring.KpiDescriptor.Builder subBuilder = null; - if (kpiDescriptor_ != null) { - subBuilder = kpiDescriptor_.toBuilder(); - } - kpiDescriptor_ = input.readMessage(monitoring.Monitoring.KpiDescriptor.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(kpiDescriptor_); - kpiDescriptor_ = subBuilder.buildPartial(); - } - break; - } - case 29: - { - samplingDurationS_ = input.readFloat(); - break; - } - case 37: - { - samplingIntervalS_ = input.readFloat(); - break; - } - default: - { - if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { - done = true; - } - break; - } - } - } - } catch (com.google.protobuf.InvalidProtocolBufferException e) { - throw e.setUnfinishedMessage(this); - } catch (java.io.IOException e) { - throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this); - } finally { - this.unknownFields = unknownFields.build(); - makeExtensionsImmutable(); - } - } - public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { return device.Device.internal_static_device_MonitoringSettings_descriptor; } @@ -174,6 +124,10 @@ public final class Device { private monitoring.Monitoring.KpiId kpiId_; /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> * @return Whether the kpiId field is set. */ @@ -183,6 +137,10 @@ public final class Device { } /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> * @return The kpiId. */ @@ -192,11 +150,15 @@ public final class Device { } /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> */ @java.lang.Override public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() { - return getKpiId(); + return kpiId_ == null ? monitoring.Monitoring.KpiId.getDefaultInstance() : kpiId_; } public static final int KPI_DESCRIPTOR_FIELD_NUMBER = 2; @@ -204,6 +166,10 @@ public final class Device { private monitoring.Monitoring.KpiDescriptor kpiDescriptor_; /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> * @return Whether the kpiDescriptor field is set. */ @@ -213,6 +179,10 @@ public final class Device { } /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> * @return The kpiDescriptor. */ @@ -222,16 +192,20 @@ public final class Device { } /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> */ @java.lang.Override public monitoring.Monitoring.KpiDescriptorOrBuilder getKpiDescriptorOrBuilder() { - return getKpiDescriptor(); + return kpiDescriptor_ == null ? monitoring.Monitoring.KpiDescriptor.getDefaultInstance() : kpiDescriptor_; } public static final int SAMPLING_DURATION_S_FIELD_NUMBER = 3; - private float samplingDurationS_; + private float samplingDurationS_ = 0F; /** * <code>float sampling_duration_s = 3;</code> @@ -244,7 +218,7 @@ public final class Device { public static final int SAMPLING_INTERVAL_S_FIELD_NUMBER = 4; - private float samplingIntervalS_; + private float samplingIntervalS_ = 0F; /** * <code>float sampling_interval_s = 4;</code> @@ -276,13 +250,13 @@ public final class Device { if (kpiDescriptor_ != null) { output.writeMessage(2, getKpiDescriptor()); } - if (samplingDurationS_ != 0F) { + if (java.lang.Float.floatToRawIntBits(samplingDurationS_) != 0) { output.writeFloat(3, samplingDurationS_); } - if (samplingIntervalS_ != 0F) { + if (java.lang.Float.floatToRawIntBits(samplingIntervalS_) != 0) { output.writeFloat(4, samplingIntervalS_); } - unknownFields.writeTo(output); + getUnknownFields().writeTo(output); } @java.lang.Override @@ -297,13 +271,13 @@ public final class Device { if (kpiDescriptor_ != null) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getKpiDescriptor()); } - if (samplingDurationS_ != 0F) { + if (java.lang.Float.floatToRawIntBits(samplingDurationS_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(3, samplingDurationS_); } - if (samplingIntervalS_ != 0F) { + if (java.lang.Float.floatToRawIntBits(samplingIntervalS_) != 0) { size += com.google.protobuf.CodedOutputStream.computeFloatSize(4, samplingIntervalS_); } - size += unknownFields.getSerializedSize(); + size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; } @@ -333,7 +307,7 @@ public final class Device { return false; if (java.lang.Float.floatToIntBits(getSamplingIntervalS()) != java.lang.Float.floatToIntBits(other.getSamplingIntervalS())) return false; - if (!unknownFields.equals(other.unknownFields)) + if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -357,7 +331,7 @@ public final class Device { hash = (53 * hash) + java.lang.Float.floatToIntBits(getSamplingDurationS()); hash = (37 * hash) + SAMPLING_INTERVAL_S_FIELD_NUMBER; hash = (53 * hash) + java.lang.Float.floatToIntBits(getSamplingIntervalS()); - hash = (29 * hash) + unknownFields.hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; } @@ -451,32 +425,24 @@ public final class Device { // Construct using device.Device.MonitoringSettings.newBuilder() private Builder() { - maybeForceBuilderInitialization(); } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); - maybeForceBuilderInitialization(); - } - - private void maybeForceBuilderInitialization() { - if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { - } } @java.lang.Override public Builder clear() { super.clear(); - if (kpiIdBuilder_ == null) { - kpiId_ = null; - } else { - kpiId_ = null; + bitField0_ = 0; + kpiId_ = null; + if (kpiIdBuilder_ != null) { + kpiIdBuilder_.dispose(); kpiIdBuilder_ = null; } - if (kpiDescriptorBuilder_ == null) { - kpiDescriptor_ = null; - } else { - kpiDescriptor_ = null; + kpiDescriptor_ = null; + if (kpiDescriptorBuilder_ != null) { + kpiDescriptorBuilder_.dispose(); kpiDescriptorBuilder_ = null; } samplingDurationS_ = 0F; @@ -506,50 +472,27 @@ public final class Device { @java.lang.Override public device.Device.MonitoringSettings buildPartial() { device.Device.MonitoringSettings result = new device.Device.MonitoringSettings(this); - if (kpiIdBuilder_ == null) { - result.kpiId_ = kpiId_; - } else { - result.kpiId_ = kpiIdBuilder_.build(); - } - if (kpiDescriptorBuilder_ == null) { - result.kpiDescriptor_ = kpiDescriptor_; - } else { - result.kpiDescriptor_ = kpiDescriptorBuilder_.build(); + if (bitField0_ != 0) { + buildPartial0(result); } - result.samplingDurationS_ = samplingDurationS_; - result.samplingIntervalS_ = samplingIntervalS_; onBuilt(); return result; } - @java.lang.Override - public Builder clone() { - return super.clone(); - } - - @java.lang.Override - public Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.setField(field, value); - } - - @java.lang.Override - public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { - return super.clearField(field); - } - - @java.lang.Override - public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { - return super.clearOneof(oneof); - } - - @java.lang.Override - public Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { - return super.setRepeatedField(field, index, value); - } - - @java.lang.Override - public Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { - return super.addRepeatedField(field, value); + private void buildPartial0(device.Device.MonitoringSettings result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.kpiId_ = kpiIdBuilder_ == null ? kpiId_ : kpiIdBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.kpiDescriptor_ = kpiDescriptorBuilder_ == null ? kpiDescriptor_ : kpiDescriptorBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.samplingDurationS_ = samplingDurationS_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.samplingIntervalS_ = samplingIntervalS_; + } } @java.lang.Override @@ -577,7 +520,7 @@ public final class Device { if (other.getSamplingIntervalS() != 0F) { setSamplingIntervalS(other.getSamplingIntervalS()); } - this.mergeUnknownFields(other.unknownFields); + this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; } @@ -589,33 +532,89 @@ public final class Device { @java.lang.Override public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { - device.Device.MonitoringSettings parsedMessage = null; + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } try { - parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch(tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getKpiIdFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } + // case 10 + case 18: + { + input.readMessage(getKpiDescriptorFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } + // case 18 + case 29: + { + samplingDurationS_ = input.readFloat(); + bitField0_ |= 0x00000004; + break; + } + // case 29 + case 37: + { + samplingIntervalS_ = input.readFloat(); + bitField0_ |= 0x00000008; + break; + } + // case 37 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + // was an endgroup tag + done = true; + } + break; + } + } + // switch (tag) + } + // while (!done) } catch (com.google.protobuf.InvalidProtocolBufferException e) { - parsedMessage = (device.Device.MonitoringSettings) e.getUnfinishedMessage(); throw e.unwrapIOException(); } finally { - if (parsedMessage != null) { - mergeFrom(parsedMessage); - } + onChanged(); } + // finally return this; } + private int bitField0_; + private monitoring.Monitoring.KpiId kpiId_; private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> kpiIdBuilder_; /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> * @return Whether the kpiId field is set. */ public boolean hasKpiId() { - return kpiIdBuilder_ != null || kpiId_ != null; + return ((bitField0_ & 0x00000001) != 0); } /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> * @return The kpiId. */ @@ -628,6 +627,10 @@ public final class Device { } /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> */ public Builder setKpiId(monitoring.Monitoring.KpiId value) { @@ -636,66 +639,90 @@ public final class Device { throw new NullPointerException(); } kpiId_ = value; - onChanged(); } else { kpiIdBuilder_.setMessage(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> */ public Builder setKpiId(monitoring.Monitoring.KpiId.Builder builderForValue) { if (kpiIdBuilder_ == null) { kpiId_ = builderForValue.build(); - onChanged(); } else { kpiIdBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> */ public Builder mergeKpiId(monitoring.Monitoring.KpiId value) { if (kpiIdBuilder_ == null) { - if (kpiId_ != null) { - kpiId_ = monitoring.Monitoring.KpiId.newBuilder(kpiId_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000001) != 0) && kpiId_ != null && kpiId_ != monitoring.Monitoring.KpiId.getDefaultInstance()) { + getKpiIdBuilder().mergeFrom(value); } else { kpiId_ = value; } - onChanged(); } else { kpiIdBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000001; + onChanged(); return this; } /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> */ public Builder clearKpiId() { - if (kpiIdBuilder_ == null) { - kpiId_ = null; - onChanged(); - } else { - kpiId_ = null; + bitField0_ = (bitField0_ & ~0x00000001); + kpiId_ = null; + if (kpiIdBuilder_ != null) { + kpiIdBuilder_.dispose(); kpiIdBuilder_ = null; } + onChanged(); return this; } /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> */ public monitoring.Monitoring.KpiId.Builder getKpiIdBuilder() { + bitField0_ |= 0x00000001; onChanged(); return getKpiIdFieldBuilder().getBuilder(); } /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> */ public monitoring.Monitoring.KpiIdOrBuilder getKpiIdOrBuilder() { @@ -707,6 +734,10 @@ public final class Device { } /** + * <pre> + * to be migrated to: "kpi_manager.KpiId" + * </pre> + * * <code>.monitoring.KpiId kpi_id = 1;</code> */ private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiId, monitoring.Monitoring.KpiId.Builder, monitoring.Monitoring.KpiIdOrBuilder> getKpiIdFieldBuilder() { @@ -722,14 +753,22 @@ public final class Device { private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiDescriptor, monitoring.Monitoring.KpiDescriptor.Builder, monitoring.Monitoring.KpiDescriptorOrBuilder> kpiDescriptorBuilder_; /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> * @return Whether the kpiDescriptor field is set. */ public boolean hasKpiDescriptor() { - return kpiDescriptorBuilder_ != null || kpiDescriptor_ != null; + return ((bitField0_ & 0x00000002) != 0); } /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> * @return The kpiDescriptor. */ @@ -742,6 +781,10 @@ public final class Device { } /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> */ public Builder setKpiDescriptor(monitoring.Monitoring.KpiDescriptor value) { @@ -750,66 +793,90 @@ public final class Device { throw new NullPointerException(); } kpiDescriptor_ = value; - onChanged(); } else { kpiDescriptorBuilder_.setMessage(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> */ public Builder setKpiDescriptor(monitoring.Monitoring.KpiDescriptor.Builder builderForValue) { if (kpiDescriptorBuilder_ == null) { kpiDescriptor_ = builderForValue.build(); - onChanged(); } else { kpiDescriptorBuilder_.setMessage(builderForValue.build()); } + bitField0_ |= 0x00000002; + onChanged(); return this; } /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> */ public Builder mergeKpiDescriptor(monitoring.Monitoring.KpiDescriptor value) { if (kpiDescriptorBuilder_ == null) { - if (kpiDescriptor_ != null) { - kpiDescriptor_ = monitoring.Monitoring.KpiDescriptor.newBuilder(kpiDescriptor_).mergeFrom(value).buildPartial(); + if (((bitField0_ & 0x00000002) != 0) && kpiDescriptor_ != null && kpiDescriptor_ != monitoring.Monitoring.KpiDescriptor.getDefaultInstance()) { + getKpiDescriptorBuilder().mergeFrom(value); } else { kpiDescriptor_ = value; } - onChanged(); } else { kpiDescriptorBuilder_.mergeFrom(value); } + bitField0_ |= 0x00000002; + onChanged(); return this; } /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> */ public Builder clearKpiDescriptor() { - if (kpiDescriptorBuilder_ == null) { - kpiDescriptor_ = null; - onChanged(); - } else { - kpiDescriptor_ = null; + bitField0_ = (bitField0_ & ~0x00000002); + kpiDescriptor_ = null; + if (kpiDescriptorBuilder_ != null) { + kpiDescriptorBuilder_.dispose(); kpiDescriptorBuilder_ = null; } + onChanged(); return this; } /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> */ public monitoring.Monitoring.KpiDescriptor.Builder getKpiDescriptorBuilder() { + bitField0_ |= 0x00000002; onChanged(); return getKpiDescriptorFieldBuilder().getBuilder(); } /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> */ public monitoring.Monitoring.KpiDescriptorOrBuilder getKpiDescriptorOrBuilder() { @@ -821,6 +888,10 @@ public final class Device { } /** + * <pre> + * to be migrated to: "kpi_manager.KpiDescriptor" + * </pre> + * * <code>.monitoring.KpiDescriptor kpi_descriptor = 2;</code> */ private com.google.protobuf.SingleFieldBuilderV3<monitoring.Monitoring.KpiDescriptor, monitoring.Monitoring.KpiDescriptor.Builder, monitoring.Monitoring.KpiDescriptorOrBuilder> getKpiDescriptorFieldBuilder() { @@ -849,6 +920,7 @@ public final class Device { */ public Builder setSamplingDurationS(float value) { samplingDurationS_ = value; + bitField0_ |= 0x00000004; onChanged(); return this; } @@ -858,6 +930,7 @@ public final class Device { * @return This builder for chaining. */ public Builder clearSamplingDurationS() { + bitField0_ = (bitField0_ & ~0x00000004); samplingDurationS_ = 0F; onChanged(); return this; @@ -881,6 +954,7 @@ public final class Device { */ public Builder setSamplingIntervalS(float value) { samplingIntervalS_ = value; + bitField0_ |= 0x00000008; onChanged(); return this; } @@ -890,6 +964,7 @@ public final class Device { * @return This builder for chaining. */ public Builder clearSamplingIntervalS() { + bitField0_ = (bitField0_ & ~0x00000008); samplingIntervalS_ = 0F; onChanged(); return this; @@ -922,7 +997,17 @@ public final class Device { @java.lang.Override public MonitoringSettings parsePartialFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - return new MonitoringSettings(input, extensionRegistry); + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); } }; diff --git a/src/ztp/target/generated-sources/grpc/device/DeviceServiceGrpc.java b/src/ztp/target/generated-sources/grpc/device/DeviceServiceGrpc.java index a6886d8d6..7e0cf9a8b 100644 --- a/src/ztp/target/generated-sources/grpc/device/DeviceServiceGrpc.java +++ b/src/ztp/target/generated-sources/grpc/device/DeviceServiceGrpc.java @@ -4,7 +4,8 @@ import static io.grpc.MethodDescriptor.generateFullMethodName; /** */ -@io.quarkus.grpc.common.Generated(value = "by gRPC proto compiler (version 1.38.1)", comments = "Source: device.proto") +@io.quarkus.grpc.common.Generated(value = "by gRPC proto compiler (version 1.55.1)", comments = "Source: device.proto") +@io.grpc.stub.annotations.GrpcGenerated public final class DeviceServiceGrpc { private DeviceServiceGrpc() { @@ -132,45 +133,52 @@ public final class DeviceServiceGrpc { /** */ - public static abstract class DeviceServiceImplBase implements io.grpc.BindableService { + public interface AsyncService { /** */ - public void addDevice(context.ContextOuterClass.Device request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceId> responseObserver) { + default void addDevice(context.ContextOuterClass.Device request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getAddDeviceMethod(), responseObserver); } /** */ - public void configureDevice(context.ContextOuterClass.Device request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceId> responseObserver) { + default void configureDevice(context.ContextOuterClass.Device request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceId> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getConfigureDeviceMethod(), responseObserver); } /** */ - public void deleteDevice(context.ContextOuterClass.DeviceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + default void deleteDevice(context.ContextOuterClass.DeviceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getDeleteDeviceMethod(), responseObserver); } /** */ - public void getInitialConfig(context.ContextOuterClass.DeviceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceConfig> responseObserver) { + default void getInitialConfig(context.ContextOuterClass.DeviceId request, io.grpc.stub.StreamObserver<context.ContextOuterClass.DeviceConfig> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getGetInitialConfigMethod(), responseObserver); } /** */ - public void monitorDeviceKpi(device.Device.MonitoringSettings request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { + default void monitorDeviceKpi(device.Device.MonitoringSettings request, io.grpc.stub.StreamObserver<context.ContextOuterClass.Empty> responseObserver) { io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall(getMonitorDeviceKpiMethod(), responseObserver); } + } + + /** + * Base class for the server implementation of the service DeviceService. + */ + public static abstract class DeviceServiceImplBase implements io.grpc.BindableService, AsyncService { @java.lang.Override public io.grpc.ServerServiceDefinition bindService() { - return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()).addMethod(getAddDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(this, METHODID_ADD_DEVICE))).addMethod(getConfigureDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(this, METHODID_CONFIGURE_DEVICE))).addMethod(getDeleteDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Empty>(this, METHODID_DELETE_DEVICE))).addMethod(getGetInitialConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceConfig>(this, METHODID_GET_INITIAL_CONFIG))).addMethod(getMonitorDeviceKpiMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<device.Device.MonitoringSettings, context.ContextOuterClass.Empty>(this, METHODID_MONITOR_DEVICE_KPI))).build(); + return DeviceServiceGrpc.bindService(this); } } /** + * A stub to allow clients to do asynchronous rpc calls to service DeviceService. */ public static class DeviceServiceStub extends io.grpc.stub.AbstractAsyncStub<DeviceServiceStub> { @@ -215,6 +223,7 @@ public final class DeviceServiceGrpc { } /** + * A stub to allow clients to do synchronous rpc calls to service DeviceService. */ public static class DeviceServiceBlockingStub extends io.grpc.stub.AbstractBlockingStub<DeviceServiceBlockingStub> { @@ -259,6 +268,7 @@ public final class DeviceServiceGrpc { } /** + * A stub to allow clients to do ListenableFuture-style rpc calls to service DeviceService. */ public static class DeviceServiceFutureStub extends io.grpc.stub.AbstractFutureStub<DeviceServiceFutureStub> { @@ -314,11 +324,11 @@ public final class DeviceServiceGrpc { private static final class MethodHandlers<Req, Resp> implements io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>, io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>, io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>, io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> { - private final DeviceServiceImplBase serviceImpl; + private final AsyncService serviceImpl; private final int methodId; - MethodHandlers(DeviceServiceImplBase serviceImpl, int methodId) { + MethodHandlers(AsyncService serviceImpl, int methodId) { this.serviceImpl = serviceImpl; this.methodId = methodId; } @@ -357,6 +367,10 @@ public final class DeviceServiceGrpc { } } + public static io.grpc.ServerServiceDefinition bindService(AsyncService service) { + return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor()).addMethod(getAddDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(service, METHODID_ADD_DEVICE))).addMethod(getConfigureDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.Device, context.ContextOuterClass.DeviceId>(service, METHODID_CONFIGURE_DEVICE))).addMethod(getDeleteDeviceMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.Empty>(service, METHODID_DELETE_DEVICE))).addMethod(getGetInitialConfigMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<context.ContextOuterClass.DeviceId, context.ContextOuterClass.DeviceConfig>(service, METHODID_GET_INITIAL_CONFIG))).addMethod(getMonitorDeviceKpiMethod(), io.grpc.stub.ServerCalls.asyncUnaryCall(new MethodHandlers<device.Device.MonitoringSettings, context.ContextOuterClass.Empty>(service, METHODID_MONITOR_DEVICE_KPI))).build(); + } + private static abstract class DeviceServiceBaseDescriptorSupplier implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier { DeviceServiceBaseDescriptorSupplier() { diff --git a/src/ztp/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java b/src/ztp/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java index 9621efb4b..2a8a62593 100644 --- a/src/ztp/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java +++ b/src/ztp/target/generated-sources/grpc/kpi_sample_types/KpiSampleTypes.java @@ -95,6 +95,38 @@ public final class KpiSampleTypes { * <code>KPISAMPLETYPE_SERVICE_LATENCY_MS = 701;</code> */ KPISAMPLETYPE_SERVICE_LATENCY_MS(701), + /** + * <pre> + * output KPIs + * </pre> + * + * <code>KPISAMPLETYPE_PACKETS_TRANSMITTED_AGG_OUTPUT = 1101;</code> + */ + KPISAMPLETYPE_PACKETS_TRANSMITTED_AGG_OUTPUT(1101), + /** + * <code>KPISAMPLETYPE_PACKETS_RECEIVED_AGG_OUTPUT = 1102;</code> + */ + KPISAMPLETYPE_PACKETS_RECEIVED_AGG_OUTPUT(1102), + /** + * <code>KPISAMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT = 1103;</code> + */ + KPISAMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT(1103), + /** + * <code>KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_OUTPUT = 1201;</code> + */ + KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_OUTPUT(1201), + /** + * <code>KPISAMPLETYPE_BYTES_RECEIVED_AGG_OUTPUT = 1202;</code> + */ + KPISAMPLETYPE_BYTES_RECEIVED_AGG_OUTPUT(1202), + /** + * <code>KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT = 1203;</code> + */ + KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT(1203), + /** + * <code>KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT = 1701;</code> + */ + KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT(1701), UNRECOGNIZED(-1); /** @@ -190,6 +222,45 @@ public final class KpiSampleTypes { */ public static final int KPISAMPLETYPE_SERVICE_LATENCY_MS_VALUE = 701; + /** + * <pre> + * output KPIs + * </pre> + * + * <code>KPISAMPLETYPE_PACKETS_TRANSMITTED_AGG_OUTPUT = 1101;</code> + */ + public static final int KPISAMPLETYPE_PACKETS_TRANSMITTED_AGG_OUTPUT_VALUE = 1101; + + /** + * <code>KPISAMPLETYPE_PACKETS_RECEIVED_AGG_OUTPUT = 1102;</code> + */ + public static final int KPISAMPLETYPE_PACKETS_RECEIVED_AGG_OUTPUT_VALUE = 1102; + + /** + * <code>KPISAMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT = 1103;</code> + */ + public static final int KPISAMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT_VALUE = 1103; + + /** + * <code>KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_OUTPUT = 1201;</code> + */ + public static final int KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_OUTPUT_VALUE = 1201; + + /** + * <code>KPISAMPLETYPE_BYTES_RECEIVED_AGG_OUTPUT = 1202;</code> + */ + public static final int KPISAMPLETYPE_BYTES_RECEIVED_AGG_OUTPUT_VALUE = 1202; + + /** + * <code>KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT = 1203;</code> + */ + public static final int KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT_VALUE = 1203; + + /** + * <code>KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT = 1701;</code> + */ + public static final int KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT_VALUE = 1701; + public final int getNumber() { if (this == UNRECOGNIZED) { throw new java.lang.IllegalArgumentException("Can't get the number of an unknown enum value."); @@ -247,6 +318,20 @@ public final class KpiSampleTypes { return KPISAMPLETYPE_L3_SECURITY_STATUS_CRYPTO; case 701: return KPISAMPLETYPE_SERVICE_LATENCY_MS; + case 1101: + return KPISAMPLETYPE_PACKETS_TRANSMITTED_AGG_OUTPUT; + case 1102: + return KPISAMPLETYPE_PACKETS_RECEIVED_AGG_OUTPUT; + case 1103: + return KPISAMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT; + case 1201: + return KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_OUTPUT; + case 1202: + return KPISAMPLETYPE_BYTES_RECEIVED_AGG_OUTPUT; + case 1203: + return KPISAMPLETYPE_BYTES_DROPPED_AGG_OUTPUT; + case 1701: + return KPISAMPLETYPE_SERVICE_LATENCY_MS_AGG_OUTPUT; default: return null; } @@ -304,7 +389,7 @@ public final class KpiSampleTypes { private static com.google.protobuf.Descriptors.FileDescriptor descriptor; static { - java.lang.String[] descriptorData = { "\n\026kpi_sample_types.proto\022\020kpi_sample_typ" + "es*\260\005\n\rKpiSampleType\022\031\n\025KPISAMPLETYPE_UN" + "KNOWN\020\000\022%\n!KPISAMPLETYPE_PACKETS_TRANSMI" + "TTED\020e\022\"\n\036KPISAMPLETYPE_PACKETS_RECEIVED" + "\020f\022!\n\035KPISAMPLETYPE_PACKETS_DROPPED\020g\022$\n" + "\037KPISAMPLETYPE_BYTES_TRANSMITTED\020\311\001\022!\n\034K" + "PISAMPLETYPE_BYTES_RECEIVED\020\312\001\022 \n\033KPISAM" + "PLETYPE_BYTES_DROPPED\020\313\001\022+\n&KPISAMPLETYP" + "E_LINK_TOTAL_CAPACITY_GBPS\020\255\002\022*\n%KPISAMP" + "LETYPE_LINK_USED_CAPACITY_GBPS\020\256\002\022 \n\033KPI" + "SAMPLETYPE_ML_CONFIDENCE\020\221\003\022*\n%KPISAMPLE" + "TYPE_OPTICAL_SECURITY_STATUS\020\365\003\022)\n$KPISA" + "MPLETYPE_L3_UNIQUE_ATTACK_CONNS\020\331\004\022*\n%KP" + "ISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS\020\332\004\022&" + "\n!KPISAMPLETYPE_L3_UNIQUE_ATTACKERS\020\333\004\0220" + "\n+KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CL" + "IENTS\020\334\004\022,\n\'KPISAMPLETYPE_L3_SECURITY_ST" + "ATUS_CRYPTO\020\335\004\022%\n KPISAMPLETYPE_SERVICE_" + "LATENCY_MS\020\275\005b\006proto3" }; + java.lang.String[] descriptorData = { "\n\026kpi_sample_types.proto\022\020kpi_sample_typ" + "es*\200\010\n\rKpiSampleType\022\031\n\025KPISAMPLETYPE_UN" + "KNOWN\020\000\022%\n!KPISAMPLETYPE_PACKETS_TRANSMI" + "TTED\020e\022\"\n\036KPISAMPLETYPE_PACKETS_RECEIVED" + "\020f\022!\n\035KPISAMPLETYPE_PACKETS_DROPPED\020g\022$\n" + "\037KPISAMPLETYPE_BYTES_TRANSMITTED\020\311\001\022!\n\034K" + "PISAMPLETYPE_BYTES_RECEIVED\020\312\001\022 \n\033KPISAM" + "PLETYPE_BYTES_DROPPED\020\313\001\022+\n&KPISAMPLETYP" + "E_LINK_TOTAL_CAPACITY_GBPS\020\255\002\022*\n%KPISAMP" + "LETYPE_LINK_USED_CAPACITY_GBPS\020\256\002\022 \n\033KPI" + "SAMPLETYPE_ML_CONFIDENCE\020\221\003\022*\n%KPISAMPLE" + "TYPE_OPTICAL_SECURITY_STATUS\020\365\003\022)\n$KPISA" + "MPLETYPE_L3_UNIQUE_ATTACK_CONNS\020\331\004\022*\n%KP" + "ISAMPLETYPE_L3_TOTAL_DROPPED_PACKTS\020\332\004\022&" + "\n!KPISAMPLETYPE_L3_UNIQUE_ATTACKERS\020\333\004\0220" + "\n+KPISAMPLETYPE_L3_UNIQUE_COMPROMISED_CL" + "IENTS\020\334\004\022,\n\'KPISAMPLETYPE_L3_SECURITY_ST" + "ATUS_CRYPTO\020\335\004\022%\n KPISAMPLETYPE_SERVICE_" + "LATENCY_MS\020\275\005\0221\n,KPISAMPLETYPE_PACKETS_T" + "RANSMITTED_AGG_OUTPUT\020\315\010\022.\n)KPISAMPLETYP" + "E_PACKETS_RECEIVED_AGG_OUTPUT\020\316\010\022-\n(KPIS" + "AMPLETYPE_PACKETS_DROPPED_AGG_OUTPUT\020\317\010\022" + "/\n*KPISAMPLETYPE_BYTES_TRANSMITTED_AGG_O" + "UTPUT\020\261\t\022,\n\'KPISAMPLETYPE_BYTES_RECEIVED" + "_AGG_OUTPUT\020\262\t\022+\n&KPISAMPLETYPE_BYTES_DR" + "OPPED_AGG_OUTPUT\020\263\t\0220\n+KPISAMPLETYPE_SER" + "VICE_LATENCY_MS_AGG_OUTPUT\020\245\rb\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); } // @@protoc_insertion_point(outer_class_scope) diff --git a/src/ztp/target/generated-sources/grpc/monitoring/Monitoring.java b/src/ztp/target/generated-sources/grpc/monitoring/Monitoring.java index 4c80f4a06..2f98ce3eb 100644 --- a/src/ztp/target/generated-sources/grpc/monitoring/Monitoring.java +++ b/src/ztp/target/generated-sources/grpc/monitoring/Monitoring.java @@ -211,160 +211,6 @@ public final class Monitoring { return new KpiDescriptor(); } - @java.lang.Override - public final com.google.protobuf.UnknownFieldSet getUnknownFields() { - return this.unknownFields; - } - - private KpiDescriptor(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { - this(); - if (extensionRegistry == null) { - throw new java.lang.NullPointerException(); - } - int mutable_bitField0_ = 0; - com.google.protobuf.UnknownFieldSet.Builder unknownFields = com.google.protobuf.UnknownFieldSet.newBuilder(); - try { - boolean done = false; - while (!done) { - int tag = input.readTag(); - switch(tag) { - case 0: - done = true; - break; - case 10: - { - monitoring.Monitoring.KpiId.Builder subBuilder = null; - if (kpiId_ != null) { - subBuilder = kpiId_.toBuilder(); - } - kpiId_ = input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(kpiId_); - kpiId_ = subBuilder.buildPartial(); - } - break; - } - case 18: - { - java.lang.String s = input.readStringRequireUtf8(); - kpiDescription_ = s; - break; - } - case 26: - { - if (!((mutable_bitField0_ & 0x00000001) != 0)) { - kpiIdList_ = new java.util.ArrayList<monitoring.Monitoring.KpiId>(); - mutable_bitField0_ |= 0x00000001; - } - kpiIdList_.add(input.readMessage(monitoring.Monitoring.KpiId.parser(), extensionRegistry)); - break; - } - case 32: - { - int rawValue = input.readEnum(); - kpiSampleType_ = rawValue; - break; - } - case 42: - { - context.ContextOuterClass.DeviceId.Builder subBuilder = null; - if (deviceId_ != null) { - subBuilder = deviceId_.toBuilder(); - } - deviceId_ = input.readMessage(context.ContextOuterClass.DeviceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(deviceId_); - deviceId_ = subBuilder.buildPartial(); - } - break; - } - case 50: - { - context.ContextOuterClass.EndPointId.Builder subBuilder = null; - if (endpointId_ != null) { - subBuilder = endpointId_.toBuilder(); - } - endpointId_ = input.readMessage(context.ContextOuterClass.EndPointId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(endpointId_); - endpointId_ = subBuilder.buildPartial(); - } - break; - } - case 58: - { - context.ContextOuterClass.ServiceId.Builder subBuilder = null; - if (serviceId_ != null) { - subBuilder = serviceId_.toBuilder(); - } - serviceId_ = input.readMessage(context.ContextOuterClass.ServiceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(serviceId_); - serviceId_ = subBuilder.buildPartial(); - } - break; - } - case 66: - { - context.ContextOuterClass.SliceId.Builder subBuilder = null; - if (sliceId_ != null) { - subBuilder = sliceId_.toBuilder(); - } - sliceId_ = input.readMessage(context.ContextOuterClass.SliceId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(sliceId_); - sliceId_ = subBuilder.buildPartial(); - } - break; - } - case 74: - { - context.ContextOuterClass.ConnectionId.Builder subBuilder = null; - if (connectionId_ != null) { - subBuilder = connectionId_.toBuilder(); - } - connectionId_ = input.readMessage(context.ContextOuterClass.ConnectionId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(connectionId_); - connectionId_ = subBuilder.buildPartial(); - } - break; - } - case 82: - { - context.ContextOuterClass.LinkId.Builder subBuilder = null; - if (linkId_ != null) { - subBuilder = linkId_.toBuilder(); - } - linkId_ = input.readMessage(context.ContextOuterClass.LinkId.parser(), extensionRegistry); - if (subBuilder != null) { - subBuilder.mergeFrom(link